|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA für Trailing Stop
Hi Leute, ich bin echt am verzweifeln. Ich habe jetzt schon sämtliche EA's versucht die einen Trailing Stop tätigen. Leider ist nichts passendes dabei.
Ich hoffe Ihr könnt mir helfen. ich erkläre mal kurz den Bedarf: Der EA soll in mehreren Steps den SL nachziehen (3-4 Steps), also nicht wie beim Trailing Stop, wo der SL ständig nachgezogen wird, sondern nach einem bestimmten erreichten + Pips Also so z.B: 1. Step: wenn Gewinn bei + 10 Pips liegt zieht der EA den SL auf +1 Pips 2. Step: wenn Gewinn bei + 30 Pips liegt zieht der EA den SL auf +20 Pips 3. Step: wenn Gewinn bei + 50 Pips liegt zieht der EA den SL auf +40 Pips 4. Step: wenn Gewinn bei + 100 Pips liegt zieht der EA den SL auf +90 Pips Ich hoffe ihr versteht mich, wie ich das meine und kann mir etwas empfehlen oder programmieren (ich zahle auch) Danke |
|
|||
Hallo Uagnet,
für Step1 könntest Du eine Braekeven Routine nutzen und für Step 2-4 TrailingStop mit TrailingStep, dadurch wird der SL Immer nur in einen bestimmten Step hinter her gezogen. Gruß Steve |
|
|||
Zitat:
1. Breakeven Routine ? Gibt es da einen EA oder indikator oder kann ich das im MT4 eistellen ? 2. ich habe in meinem MT4 nur den Standard Trailingstop ! Gibt es wo einen Trailingstop mit trailingstep ? habe auch schon mal im Web danach gesucht aber leider keinen gefunden. Sorry für meine Unwissenheit :-( |
|
|||
Also für Breakeven wirst Du sicher im Netz was finden.
Sieht in etwa so aus : void MoveBreakEven() { int cnt,total=OrdersTotal(); for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { if(BreakEven>0) { if(NormalizeDouble((Bid-OrderOpenPrice()),Digits)>BreakEven*Point) { if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),Digits)<0) { OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(OrderOpenPrice()+0*Point,Digits),OrderTak eProfit(),0,Blue); return(0); } } } } else { if(BreakEven>0) { if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>BreakEven*Point) { if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),Digits)<0) { OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(OrderOpenPrice()-0*Point,Digits),OrderTakeProfit(),0,Red); return(0); } } } } } } } Und für TrailingStep etwa so: void TrailingPositions(int trailingStopLoss, int trailingStep, int magicNumber) { double bid = 0; double ask = 0; for (int i = 0; i < OrdersTotal(); i++) { if (!(OrderSelect(i, SELECT_BY_POS)) || OrderSymbol() != Symbol() || OrderMagicNumber() != magicNumber) { continue; } bid = MarketInfo(OrderSymbol(), MODE_BID); ask = MarketInfo(OrderSymbol(), MODE_ASK); if (OrderType() == OP_BUY) { if (bid - OrderOpenPrice() > trailingStopLoss * Point) { if (OrderStopLoss() < bid - (trailingStopLoss + trailingStep) * Point || OrderStopLoss() == 0) { OrderModify(OrderTicket(), OrderOpenPrice(), bid - trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration()); } } } else if (OrderType() == OP_SELL) { if (OrderOpenPrice() - ask > trailingStopLoss * Point) { if (OrderStopLoss() > ask + (trailingStopLoss + trailingStep) * Point || OrderStopLoss() == 0) { OrderModify(OrderTicket(), OrderOpenPrice(), ask + trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration()); } } } } } Falls Du hilfe brauchst, dann gib bescheid. |
|
|||
danke dir, werde das gleich mal testen
|
|
|||
Hallo, ich habe mir auch mal die Freiheit genommen den Trailing Stop auszuprobieren. Ich bekomme aber immer die Warnung :
"return value of 'OrderModify' should be checked" bei der Zeile: OrderModify(OrderTicket(), OrderOpenPrice(), bid - trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration()); sowie OrderModify(OrderTicket(), OrderOpenPrice(), ask + trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration()); kann mir jemand einen Tipp geben wie ich das beheben kann? liegt das vielleicht an der neuen Version des MetaEditors? vielen Dank schon mal mike |
Lesezeichen |
Stichworte |
ea, expert adviosor, mql4, programmierung, programmierung metatrader, trailing stop |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|