danke für den Hinweis... bin bereits seit 2 Stunden auf der Suche , hab aber noch nichts Passendes gefunden.
Aber ich gebe nicht auf :-)
Würde mich trotzdem freuen, falls es jemand bereits weiß oder zumindest sagen kann, wo es GENAU steht.
gruß an alle
Zum Beispiel auf der ersten Seite der Artikel in deutsch: "Entwicklung eines plattformübergreifenden Expert Advisors zur Festlegung von StopLoss und TakeProfit basierend auf den Risikoeinstellungen." Nicht gefunden - oder nicht gesucht?
Außerdem gibt es die Artikelserie (ist aber noch nicht ganz fertig): "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und der Aktivierung von Pending-Orders".
Riskiere mal einen Blick hinein und ans Ende...
Danke für deine Hilfe.
Habe mir die Artikel durchgelesen, allerdings verstehe ich v. Programmieren null-Komma-nichts.
Ich bin vielmehr davon ausgegangen, dass man im MT4 mit 3-4 Mausklicks die entsprechenden Eingabe-Felder findet und sie dann auch simple mit den gewünschten Parametern bedienen kann.
Danke für deine Hilfe.
Habe mir die Artikel durchgelesen, allerdings verstehe ich v. Programmieren null-Komma-nichts.
Ich bin vielmehr davon ausgegangen, dass man im MT4 mit 3-4 Mausklicks die entsprechenden Eingabe-Felder findet und sie dann auch
simple mit den gewünschten Parametern bedienen kann.
Ich hab zwar schon lange nix mehr für den MT4 geproggt, im MT5 ist das alles viel leichter, aber .......
Siehe dazu den Link https://www.youtube.com/watch?v=IT2WinT4yjY
//+------------------------------------------------------------------+ //| Auto_SLTP.mq4 | //| Copyright © 2019 Ing. Otto Pauser | //| https://www.mql5.com/de/users/kronenchakra | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019 Ing. Otto Pauser" #property link "https://www.mql5.com/de/users/kronenchakra" #property version "1.00" #property strict input int inp_SL = 20; // SL(points) input int inp_TP = 20; // TP(points) double slDistance, tpDistance; double SL,TP; int OnInit() { slDistance=inp_SL*_Point; // sl as price distance tpDistance=inp_TP*_Point; // tp as price distance return(INIT_SUCCEEDED); } void OnTick() { int total=OrdersTotal(); for(int pos=0;pos<total;pos++) if(OrderSelect(pos,SELECT_BY_POS)) if(OrderSymbol()==_Symbol) { if(OrderType()==OP_BUY) { SL=OrderOpenPrice()-slDistance; TP=OrderOpenPrice()+slDistance; if(OrderStopLoss()==NULL) OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),OrderExpiration()); if(OrderTakeProfit()==NULL) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,OrderExpiration()); } if(OrderType()==OP_SELL) { SL=OrderOpenPrice()+slDistance; TP=OrderOpenPrice()-slDistance; if(OrderStopLoss()==NULL) OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),OrderExpiration()); if(OrderTakeProfit()==NULL) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,OrderExpiration()); } } }
Ist nicht getestet, sollte aber funktionieren. Ich teste das wenn der Markt wieder offen ist.
Und für die Interessierten, so sieht das in MQL5 aus:
//+------------------------------------------------------------------+ //| Auto_SLTP.mq5 | //| Copyright © 2019, Ing. Otto Pauser | //| https://www.mql5.com/de/users/kronenchakra | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Ing. Otto Pauser" #property link "https://www.mql5.com/de/users/kronenchakra" #property version "1.00" #include <Trade\TradeExt.mqh> input int inp_SL = 20; // SL(points) input int inp_TP = 20; // TP(points) double slDistance, tpDistance; int OnInit() { slDistance=inp_SL*_Point; // sl as price distance tpDistance=inp_TP*_Point; // tp as price distance return(INIT_SUCCEEDED); } void OnTick() { if(!Trade.OnTick()) return; if(Trade.PosOpened) switch(Trade.PosType) { case POSITION_TYPE_BUY : if(Trade.PosSL==NULL) Trade.DoModifyBuySL(slDistance); if(Trade.PosTP==NULL) Trade.DoModifyBuyTP(tpDistance); break; case POSITION_TYPE_SELL : if(Trade.PosSL==NULL) Trade.DoModifySellSL(slDistance); if(Trade.PosTP==NULL) Trade.DoModifySellTP(tpDistance); break; } }
Allerdings benötigt das eine Erweiterung der Systemlibrary (TradeExt.mqh).
Die war aber zu viel Arbeit um sie zu verschenken - sorry.
Kleines Update zu Auto_SLTP
SL, TP werden, falls nicht gesetzt jetzt gleichzeitig gesetzt.
Zu beachten ist, daß der Spread nicht mit gerechnet ist.
Also SL 7 bei einem Spread von 10 geht nicht. Das geht so wie so nicht!
SL und TP können erst nach dem Eintreffen eines neuen Ticks auf diese Art berechnet werden.
extern int TP_pips=100;//TP in Point extern int SL_pips=100;//SL in Point void OnTick() { /////////////////// SEND TP ///////////////////////////////// if(TP_pips>0) { for(int i = 0; i<=OrdersTotal()-1; i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol() && OrderTakeProfit()==0 && OrderMagicNumber()==Magic ) { if(OrderType() == OP_BUY) { TP=OrderOpenPrice()+TP_pips*Point; if(TP<Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { TP=Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; } res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,0,Green); Print(">>>>>>>>>>>>>>>>>>>>>>>>> Send TP for BUY. Ticket="+IntegerToString(OrderTicket())); } if(OrderType() == OP_SELL) { TP=OrderOpenPrice()-TP_pips*Point; if(TP>Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { TP=Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; } res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,0,Green); Print(">>>>>>>>>>>>>>>>>>>>>>>>> Send TP for SELL. Ticket="+IntegerToString(OrderTicket())); } } } } /////////////////// SEND SL ///////////////////////////////// if(SL_pips>0) { for(int i = 0; i<=OrdersTotal()-1; i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol() && OrderStopLoss()==0 && OrderMagicNumber()==Magic ) { if(OrderType() == OP_BUY) { SL=OrderOpenPrice()-SL_pips*Point; if(SL>Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { SL=Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; } res=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Green); Print(">>>>>>>>>>>>>>>>>>>>>>>>> Send SL for BUY. Ticket="+IntegerToString(OrderTicket())); } if(OrderType() == OP_SELL) { SL=OrderOpenPrice()+SL_pips*Point; if(SL<Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { SL=Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; } res=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Green); Print(">>>>>>>>>>>>>>>>>>>>>>>>> Send SL for SELL. Ticket="+IntegerToString(OrderTicket())); } } } } }
Das ist ein Teil von meinem Muster.
Falls noch was zum Fragen - gerne!
MfG.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
hallo
brauche eure Hlfe :-)
Wie/wo kann ich fixe SL und TP einrichten? Diese Einstellung soll mir ermöglichen, dass ich bei jeder Positionseröffnung (Ein-Klick Handel) automatisch ein von mir vorgegebenes SL und TP habe.
Dies ist beim Scalping enorm wichtig.