被错误困扰的是没有交易业务 - 页 4

 
Alexey Viktorov:

电脑是个白痴。© M.M. Botvinnik.

所以,假装是一个白痴,并尝试从一个白痴的角度,用一个白痴设置的参数来通过算法。正是从这个角度来看,自流井适合。注意 "反馈"。专家顾问是否会通知你有关错误?

我终于想明白了,也许有人可以帮助,在一般情况下,苏联只有当MM被检查的最小手数,所以硬核设置手数=0.01,好了,在验证器存款原来是1美元(发现这个信息在一个主题),分别使用手数0.001(或左右)进行交易,因为我总是在一个地方是手数0.01,分别,他缺乏的手段和机器人不交易)

 
Roman Gergert:

我终于想明白了,也许有人会帮助,一般来说,董事会只有当MM被检查的最小手数,所以硬核设置手数=0.01,好了,在验证器存款原来是1美元(发现这个信息在一个主题),分别使用手数0.001(或左右)交易,因为我总是在一个地方有很多0.01,分别,他缺乏资金,机器人不交易)

我想再次提出来。你的回答对我没有帮助。我有一个体积计算,如果所有东西都不合适,就用最小体积

SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN)

最后,在没有任何计算的情况下,立即把最小的体积。然后是保证金支票...而没有交易业务。

昨天我偶然看到一个论坛的答案,说有时一个相同的代码在一段时间后可以发送,而且会通过。时间已经过去了,它没有被发送。

怎么办,2周前这个音量检测功能通过了,从那时起,它没有任何变化!!!。

 
Evgeniy Scherbina:

我想再次提出来。你的回答对我没有帮助。我有一个体积计算,如果所有东西都不合适,那么就用最小的体积

最后,不经任何计算,马上把最小量放进去。然后是保证金支票...而没有交易业务。

昨天我偶然看到一个论坛的答案,说有时一个相同的代码在一段时间后可以发送,而且会通过。时间已经过去了,它没有发送。

怎么办,2周前这个音量检测功能出现了问题,从那时起,它没有任何变化!!。

我将成为一个老前辈。有了这样的评价,头像下的数字,有了问题,你不知为何没有看到讨论它的主题。而这也是找到解决方案的地方。

Автоматический валидатор - проблемы
Автоматический валидатор - проблемы
  • 2019.04.26
  • www.mql5.com
Пытаюсь обновить версию советника и получаю ошибку. Тот же советник в тестере стратегий. Паралельно пишу советники и для MT4, там все ОК...
 
Alexey Viktorov:

我将成为一个老前辈。有了这样的评价,头像下的数字,有了问题,你不知为何没有看到讨论它的主题。在这里,你已经找到了一个解决方案。

在俄罗斯各民族中,有的人向异教神明祈祷,有的人回答说
 
Evgeniy Scherbina:
在俄罗斯各民族中,有向异教神灵祈祷的人,也有回答

我回答说,但我不是异教徒的神。我想这是一个临时性的问题解决方案,希望它能很快得到解决。

 
注意--这条评论可能更多的是为我自己在下次寻找 "没有交易操作 "的错误时提出的。
在有疑问的地方使用了ForceStop。此外,它还会在报告中显示为除以零,以及这个错误的确切位置。
以我的情况为例。
//+------------------------------------------------------------------+
//|  Проверяет объем ордера на корректность                          |
//+------------------------------------------------------------------+
int ForceStop=0;
int sstop=0;
bool CheckVolumeValue(double volume,string &description)
  {
  
//--- минимально допустимый объем для торговых операций
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
     {     
      description=StringFormat("Volume is less than the minimum allowable SYMBOL_VOLUME_MIN=%.2f",min_volume);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }

//--- максимально допустимый объем для торговых операций
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
     {
      description=StringFormat("Volume is greater than the maximum allowable SYMBOL_VOLUME_MAX=%.2f",max_volume);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }

//--- получим минимальную градацию объема
   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
     {
      description=StringFormat("The volume is not a multiple of the minimum gradation SYMBOL_VOLUME_STEP=%.2f, Closest correct volume %.2f",
                               volume_step,ratio*volume_step);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }
   description="Correct value of volume";
   return(true);
  }
 

兄弟,它帮助我把所有的变量移到了代码头里。

空白的OnDeinit

{
Alert(GetLastError())。

}

而在ResetLastError()的启动中。

我不知道是什么起了作用,但类似这样的事情

 

它可以帮助我简单地改变(编辑)代码中的几行。
或者只是添加空行,然后再重新编译。

我想这是服务器上的某种错误。

 
Taras Slobodyanik:

或者只是添加空行,然后再重新编译。

证实了这一点,有时只要重新编译就可以了。

 
Nauris Zukas:

确认了,有时只要重新编译就能通过。

这不是因为我重新编译了它,而是因为测试是从不同的日期开始的。我注意到这样一个错误,如果你滑倒了已经滑倒的东西,那么测试就不会发生,而是立即给出以前的测试结果。因此,不要被这种拐杖所迷惑。试着让它变得正常。如果有东西丢失或参数无效,通过打印 报告,一切都会正确。