Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 02.11.12
muruki muruki ist offline
Neues Mitglied
 
Registriert seit: Nov 2012
Beiträge: 7
muruki befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von bonenkai Beitrag anzeigen
Ich kann dir nur ein Stück MQL4-Code als Beispiel anbieten, welches bei mir funktioniert.
In "ticket" erhältst du die Ticketnummer als Antwort der OrderSend-Funktion, die du dann in der OrderModify-Funktion einsetzen kannst. Alle anderen Variablen musst du natürlich auf deinen Code anpassen und mit für dich vernünftigen Werten versehen.


//**********************************************
ticket = OrderSend(symbol,OP_BUY,myLotSize,ask,orderslip,0, 0);
send_err = GetLastError();
if (send_err == 0)
{
OrderModify(ticket,bid,stoploss,takeprofit,0);
mod_err = GetLastError();
}

Bei MQL 5 ist es nun wohl anders.
OrderModify() kennt er beim Kompilieren nicht (Funktion nicht definiert) --> oder muss ich noch was bestimmtest includen?

verwende ich:
datetime to_date = 0; //TimeCurrent();
m_Trade.OrderModify(ticket, aktTickkursBid, sl, tp, ORDER_TIME_GTC, to_date, 0.0);

dann bringt er mir folgende Meldung:
2012.11.02 10:23:02 CTrade::OrderSend: modify #23355496 at 1.28741 (sl: 1.28541 tp: 1.28941) [invalid request]

Im Testlauf kommt diese Meldung: 2012.11.02 10:37:22 2012.10.16 14:44:39 failed modify order #41 buy 0.00 at market sl: 0.00000 tp: 0.00000 -> 1.30448, sl: 1.30248 tp: 1.30648 [Invalid request]

Was ist denn da ungültig?
Das darf doch nicht so schwer sein den TakeProfit zu updaten.
Wenn man das manuell macht gehts ja auch ganz einfach

Aber erst die Order senden und dann updaten scheint richtig zu sein. Nur ist irgendwas noch ungültig.
Danke für eure weitere Hilfe.