Обсуждение статьи "Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру" - страница 4

 
jelagins возможна потеря данных из-за преобразования типа из 'long' в 'int' eposvoltest.mq5 426 20 , возможна потеря данных из-за преобразования типа из 'long' в 'datetime' eposvoltest.mq5 439 32, возможна потеря данных из-за преобразования типа из 'long' в 'int' eposvoltest.mq5 456 26, возможна потеря данных из-за преобразования типа из 'long' в 'int' eposvoltest.mq5 491 23, возвращаемое значение 'OrderSend' должно быть проверено eposvoltest.mq5 236 4, возвращаемое значение 'OrderSend' должно быть проверено eposvoltest.mq5 268 4, '-' - выражение не boolean eposvoltest.mq5 279 14, 'MQL5_TESTING' устарело, используйте 'MQL_TESTER' вместо него eposvoltest.mq5 335 23, 'MQL5_TESTING' устарело, используйте 'MQL_TESTER' вместо него eposvoltest.mq5 346 23

10.09.2025

Это неудивительно, учитывая, что код датируется 2010 годом!

 
В коде была ошибка.
bool fOpSell(string aSymbol,double aVolume=0.1,int aSlippage=0,int aMagic=0,string aComment="",string aMessage="",bool aSound=false)
  {
   request.symbol=aSymbol;
   request.action=TRADE_ACTION_DEAL;
   request.type=ORDER_TYPE_SELL;
   request.volume=aVolume;
   request.price=SymbolInfoDouble(aSymbol,SYMBOL_BID);
   request.sl=0;
   request.tp=0;
   request.deviation=aSlippage;
   request.type_filling=ORDER_FILLING_FOK;
   request.comment=aComment;
   request.magic=aMagic;
   if(aMessage!="")Print(aMessage);
   if(aSound)PlaySound("expert");
   OrderSend(request,result);
   if(result.retcode==TRADE_RETCODE_DONE)
     {
      Print("...удачно (#"+IntegerToString(result.order)+")");
      if(aSound)PlaySound("ok");
      return(1);
     }
   else
     {
      Print("...ошибка "+IntegerToString(result.retcode)+" - "+fTradeRetCode(result.retcode));
      if(aSound)PlaySound("timeout");
      return(-1);
     }
  }

Исправленный вариант в прицепе.

Файлы:
eposvoltest.mq5  19 kb