Ich versteh die Broker nicht mehr, an dem Code wurde nix geändert, der lief. Und nun plötzlich:
1. hin und wieder wird eine Order gesendet
2. dann andauernd ein 130 Error (ERR_INVALID_STOPS)
Code (Beispiel Long Order, nur der relevante Teil):
Code:
// wir machen einen Loop über alle Objekte
// öffnet Long, wenn Entry Linie getroffen wird, SL aus StopLoss Linie
rq_esname=obj_name; //FullNameESline
rq_esprice=ObjectGetDouble(0,obj_name,OBJPROP_PRICE); //PriceOfESline
rq_slname=EStoSLname(obj_name); //FullNameSLline
rq_slprice=ObjectGetDouble(0,rq_slname,OBJPROP_PRICE); //PriceSLline
StopLoss=NormalizeDouble(rq_slprice,_Digits); //StopLoss
// ========== Buy Orders =============================================
if(rq_dirletter=="B") //AllBuyOrders
{
rq_dirprice=MarketInfo(_Symbol,MODE_ASK); //RequiredBuyPrice
// ======= Buy 4. sending a buy order if ES is hit
if(rq_dirprice>=rq_esprice) //AskHitsEntryLine
{
_Debug(__FUNCTION__,__LINE__,
" rq_dirprice="+DoubleToStr(rq_dirprice,_Digits)
+" StopLoss="+DoubleToStr(StopLoss,_Digits) );
rq_tktno=OrderSend(_Symbol,OP_BUY,LotSize, //GetTicketSendingOrder
rq_dirprice,Slippage,StopLoss,TakeProfit,
rq_comment,MagicNumber,ColorArrowLong);
if(rq_tktno>0) //OrderSendSuccess
{ //GetStatistics
}
else //OrderSendError
{
_Debug(__FUNCTION__,__LINE__,IntegerToString(_LastError) );
}
}
}
// Debug sagt:
// rq_dirprice=11959.95 StopLoss=11942.52 ( das sind 17,43 oder 1743p unter Kaufpreis)
// _LastError=130 (ERR_INVALID_STOPS)
// MarketInfo(_Symbol,MODE_STOPLEVEL) liefert: 0
Die Order wird zum aktuellen ASK geöffnet, der SL-Wert entspricht exakt dem der SL Linie, deren Preis wurde mit NormalizeDouble angepaßt und er liegt verdammt weit unter dem Entry. SL Begrenzung liegt bei 0, wenn es floating wäre, dann hätte es einen Wert.
So, und nun
- hat jemand eine Idee? Danke. AVT