rotu Posted May 2, 2016 Report Share Posted May 2, 2016 (edited) Hallo, ich bin auf der Suche nach einem Skript für Mt4, welches einen take profit - von einer pending oder einer schon ausgeführten order - so modifiziert, dass dieser genauso viele Pips von der Order entfernt ist, wie der gesetzte stop loss und somit ein Chance-Risiko-Verhältnis von 1:1 erzielt werden kann. Ich habe ein "modify take profit" Skript gefunden, dessen Code so aussieht: //+------------------------------------------------------------------+ //| 0-A-TP-2000 | //| Copyright 2012, File45. | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, File45" #property link "http://codebase.mql4.com/en/author/file45" #property show_inputs //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ extern string _ = "Key in TP points below"; extern int Take_Profit = 0; double itotal,pp; int start() { itotal=OrdersTotal(); for(int cnt=itotal-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol()==Symbol() && OrderType()==OP_BUY) { if (Take_Profit == 0) { ModifyTakeProfit(0); } else { ModifyTakeProfit(OrderOpenPrice() + Take_Profit*Point); } } if (OrderSymbol()==Symbol() && OrderType()==OP_SELL) { if (Take_Profit == 0) { ModifyTakeProfit(0); } else { ModifyTakeProfit(OrderOpenPrice() - Take_Profit*Point); } } } return(0); } void ModifyTakeProfit(double idTakeProfit) { bool fmTP; fmTP=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),idTakeProfit,0,CLR_NONE); } Leider weiß ich aufgrund mangelnder mql-Kenntnisse nicht, wie ich in dem Skript einstellen kann, dass der Takeprofit genauso weit von der Order weggesetzt wird, wie der stop loss. Kann mir jemand konkret sagen, wie das Skript geändert werden müsste, damit ich mein oben beschriebenes Vorhaben realisieren kann (falls das mit diesem Skript überhaupt möglich ist)? Vielen Dank im Voraus. Viele Grüße. Edited May 2, 2016 by rotu Quote Link to comment Share on other sites More sharing options...
conglom-o Posted May 2, 2016 Report Share Posted May 2, 2016 1. Durchlaufen aller offenen Positionen mittels for Schleife2. Auslesen des OrderOpenPrice und des Order StoppLoss3. Berechnung der Differenz4. Modifizierung der Order und Setzen des TakeProfit 1. und 4. ist bereits vorhanden. Was noch fehlt ist 2. und 3. .Die ModifyTakeProfit müssten bspw. geändert werden in: ModifyTakeProfit(2*OrderOpenPrice()-OrderStopLoss());Der externe TakeProfit kann dann natürlich weg und die else Bedingung wird dadurch auch hinfällig. Quote Link to comment Share on other sites More sharing options...
rotu Posted May 6, 2016 Author Report Share Posted May 6, 2016 Skript läuft. Auf conglom-o ist immer Verlass! Vielen Dank : ) 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.