Position mit Ctrade aktualisieren

 
Hallo.

Ich möchte eine Position mit der CTrade Klasse aktualisieren. Folgender Code funktioniert nun auch nach ausprobieren soweit...

if(!trade.PositionModify(ticketid,0,0)){ Print("RESET TO ZERO FAILED"); }
if(!trade.PositionModify(ticketid, sl, tp)){ Print("Reset to SL:",sl," TP:",tp," FAILED");}
Wenn ich jedoch den ersten Teil weg lasse also direkt
if(!trade.PositionModify(ticketid, sl, tp)){ Print("Reset to SL:",sl," TP:",tp," FAILED");}
den Versuch starte die Position mit dem neuen SL und TP zu befüllen, erhalte ich die Meldung
".... [invalid stops] "

Wie hängt das zusammen. Muss man wirklich zuerst die Werte auf Null setzen bevor ich Sie neu übermitteln kann?
 
ReLor:
Hallo.

Ich möchte eine Position mit der CTrade Klasse aktualisieren. Folgender Code funktioniert nun auch nach ausprobieren soweit...

Wenn ich jedoch den ersten Teil weg lasse also direkt
den Versuch starte die Position mit dem neuen SL und TP zu befüllen, erhalte ich die Meldung
".... [invalid stops] "

Wie hängt das zusammen. Muss man wirklich zuerst die Werte auf Null setzen bevor ich Sie neu übermitteln kann?

Bei [invalid stops] muss man SL und TP und Bid und Ask ausdrucken und vergleichen.

Bitte bei Fragen zu Fehlern alles gut dokumentieren! Wie soll man helfen, bei "Das geht nicht" oder "[invalid stops]" ohne Daten?

Übrigens kann man auch selber suchen: https://www.mql5.com/en/search#!keyword=invalid%20stops&module=mql5_module_forum