Ошибка валидации

 

Добрый день.

Попробовал сделать проверку валидации для Маркета. В отчете 1 ошибка - нет торговых операций. В советнике нет никаких ограничений по трейдингу, советник одновалютный, используется хеджинг на скореллированной паре ( для тестера указывается пара на которой тестируется) , советник не новостной.

Что может быть причиной?

Огромное спасибо за каждую подсказку.

Скрины результата валидации и теста в тестере прикреплены.

Файлы:
error.png  49 kb
tester.png  126 kb
 
Piotr Storozenko:

Добрый день.

Вставьте проверки на достаточность средств. Проверяйте размер лота. Нормализуйте цену выставления и объем сделки.

   double Ask_=MarketInfo(Symbol(),MODE_ASK);
   double Bid_=MarketInfo(Symbol(),MODE_BID);
   int Digits_=(int)MarketInfo(Symbol(),MODE_DIGITS);

   if(MarketInfo(Symbol(),MODE_MARGINREQUIRED)*Lot()>AccountBalance())
      return;
   if(AccountFreeMarginCheck(Symbol(),OP_SELL,Lot())<0.0)
      return;

   if(AccountFreeMarginCheck(Symbol(),OP_SELL,Lot())>0.0 && GetLastError()!=134)
     {
OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lot(),2),NormalizeDouble(Bid_,Digits_),50,0.0,0.0,"",0);
     }


OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid_,Digits_),50)) {};
        
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double OutLot=0.01;

   double LotMin=MarketInfo(Symbol(),MODE_MINLOT);
   double LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);

   OutLot=MathFloor(OutLot/LotStep)*LotStep;

   if(OutLot<LotMin)
      OutLot=LotMin;

   return NormalizeDouble((double)OutLot);
  }


 

 
Vladimir Tkach:

Вставьте проверки на достаточность средств. Проверяйте размер лота. Нормализуйте цену выставления и объем сделки.


 

Спасибо, проверки о которых пишите в коде присутствуют, но попробую еще покомбинироварь с ними.