Discussão do artigo "O método ideal para calcular o volume da posição total pelo número mágico especificado" - página 4

 
jelagins possível perda de dados devido à conversão de tipo de 'long' para 'int' eposvoltest.mq5 426 20 , possível perda de dados devido à conversão de tipo de 'long' para 'datetime' eposvoltest.mq5 439 32, possível perda de dados devido à conversão de tipo de 'long' para 'int' eposvoltest.mq5 456 26, possível perda de dados devido à conversão de tipo de 'long' para 'int' eposvoltest.mq5 491 23, valor de retorno de 'OrderSend' deve ser verificado eposvoltest.mq5 236 4, valor de retorno de 'OrderSend' deve ser verificado eposvoltest.mq5 268 4, '-' - expressão não booleana eposvoltest.mq5 279 14, 'MQL5_TESTING' está obsoleto, use 'MQL_TESTER' em seu lugar eposvoltest.mq5 335 23, 'MQL5_TESTING' está obsoleto, use 'MQL_TESTER' em seu lugar eposvoltest.mq5 346 23

10.09.2025

Isso não é surpreendente, considerando que o código data de 2010!

 
Houve um erro no código.
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("...sorte (#"+IntegerToString(result.order)+")");
      if(aSound)PlaySound("ok");
      return(1);
     }
   else
     {
      Print("...erro "+IntegerToString(result.retcode)+" - "+fTradeRetCode(result.retcode));
      if(aSound)PlaySound("timeout");
      return(-1);
     }
  }

A versão corrigida está no trailer.

Arquivos anexados:
eposvoltest.mq5  19 kb