Почему так??? - страница 3

 

Доброго времени суток) Этот товарищ я )

вот кусок кода, в котором постоянно вылетает ошибка при попытке модификации ордера. Использую стандартную библиотеку CTrade и для нормализации значений стоплосса и тейка, использую класс CSymbolInfo. Ордер открывается по рынку, а затем я пытаюсь его модифицировать, чтобы установить SL и TP. И получаю ошибку.

вот кусок кода:

int  COrderHelper::modifyPosition(ulong _ticket, double tp, double sl) {
   tp = sif.NormalizePrice(tp);
   sl = sif.NormalizePrice(sl);

   int res=0;
   if (!PositionSelect(_Symbol))  return 1;
   ulong mn= PositionGetInteger(POSITION_MAGIC);
   if (mn!=magic_number) return 2;
   ulong tik = PositionGetInteger(POSITION_TICKET);
   ulong retcode=-1;
   int try = 0;
   do {
      ResetLastError();
      pTrade.PositionModify(tik,sl,tp);
      res=GetLastError();
      retcode = pTrade.ResultRetcode();
      try++;
   }
   while(res!=0&&(retcode!=10009||retcode==10016)&&try<10);
      if (!pTrade.PositionModify(tik,sl,tp)) { 
         res=GetLastError();
         retcode = pTrade.ResultRetcode();
         Print("ZHOPA="+retcode);
   }
   return res;
}

А вот что выводится в консоль:

2021.09.09 11:31:35.326 2017.03.31 17:50:40   deal #2 buy 13 DUK.US at 82.41 done (based on order #2)
2021.09.09 11:31:35.326 2017.03.31 17:50:40   deal performed [#2 buy 13 DUK.US at 82.41]
2021.09.09 11:31:35.326 2017.03.31 17:50:40   order performed buy 13 at 82.41 [#2 buy 13 DUK.US at 82.41]
2021.09.09 11:31:35.330 2017.03.31 17:50:40   retcode=10009  deal=2  order=2
2021.09.09 11:32:15.915 2017.03.31 17:50:40   failed modify #2 buy 13 DUK.US sl: 80.86, tp: 112.99 -> sl: 80.86, tp: 112.99 [Invalid stops]
2021.09.09 11:32:15.915 2017.03.31 17:50:40   CTrade::OrderSend: modify DUK.US (sl: 80.86, tp: 112.99) [invalid stops]

 
elanser #:

Доброго времени суток) Этот товарищ я )

вот кусок кода, в котором постоянно вылетает ошибка при попытке модификации ордера. Использую стандартную библиотеку CTrade и для нормализации значений стоплосса и тейка, использую класс CSymbolInfo. Ордер открывается по рынку, а затем я пытаюсь его модифицировать, чтобы установить SL и TP. И получаю ошибку.

вот кусок кода:

А вот что выводится в консоль:


типичные ошибки: проверьте стоп-левел. Если не задан (0), считайте что он 2 спреда

 
Maxim Kuznetsov #:

типичные ошибки: проверьте стоп-левел. Если не задан (0), считайте что он 2 спреда

Спасибо, проверю.