13.06.22
|
Elite Mitglied
|
|
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
|
|
Was zum Teufel ist daran falsch
Der EA öffnet eine Long Order, ich habe keinen Mindest SL.
Danach setzt er einen SL (sollte er eigentlich) von 15 Punkten (die sind schon normalisiert). Trotzdem krieg ich einen 130 Error. (Im umgekehrten Fall bei Sell funktioniert alles, obwohl da eigentlich nur die Vorzeichen umgedreht werden.)
Code:
Code:
if(op_tkt>0) //OrderSendSuccess
{
rq_open=OrderOpenPrice();
if(OrderSelect(op_tkt,SELECT_BY_TICKET,MODE_TRADES) ) //SelectTicket
{
rq_sl=_Norm(rq_open-StopLoss); //AbsoluteSL
if(TakeProfit>0) rq_tp=_Norm(rq_open+TakeProfit); //AbsoluteTP
Print(__FUNCTION__,
" rq_open=",DoubleToStr(rq_open,_Digits),
" StopLoss=",DoubleToStr(StopLoss,_Digits),
" rq_sl=",DoubleToStr(rq_sl,_Digits)
);
// Print Ausgabe:
// _OpenOrderMkt: rq_open=13561.60 StopLoss=15.00 rq_sl=13546.60
// Die Zahlen stimmen also.
// ========================================================== add SL
if(StopLoss>0)
{
if(!OrderModify(op_tkt,OrderOpenPrice(), //CurrentTicket
rq_sl, //ChangeSL
OrderTakeProfit(),0,ARROWREDCOLOR) ) //UseRed
{
Print(__FUNCTION__," failed Buy SL =",_LastError); //SLError
Play(WavErr);
return(false);
}//SLvisible
}//SLwanted
Ich kann absolut keinen Fehler sehen. Irgendeine Idee?
Danke. AVT
|