記事"指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法"についてのディスカッション - ページ 4

 
jelagins データ損失の可能性 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.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