错误、漏洞、问题 - 页 163

 
stringo:
你能实际地证明表达式x = x++; 你想说什么?为什么不使用没有后续赋值的增量x++;,因为它通常被使用。
一不小心就出来了--不是每天都能用类C语言写作的,我忘了还有x++。我本来以为x=x+1。其结果是有趣的...
 
GODZILLA:

不,不是的!嗯,没有数据,我又问了一遍...我在第五次请求时得到了它,然后去了,但它是无声的,就是这样!!!。

对于专家顾问和自定义指标,最好使用 事件驱动的 处理模式 如果对事件OnTick()或OnCalculate()的处理没有成功地获得所有需要的数据你应该退出事件处理程序,期望在下一次处理程序被调用时能够获得数据。

我也看了这个,也是这么想的,但下面是这个代码给出的,比如说。

int handle;
datetime inittime;
void OnInit(){

  
  handle = iCustom( "GBPUSD", PERIOD_M2, "examples\ATR", 14 );
  Print("Handle=", handle);
  inittime = TimeCurrent();
}
bool isfirst = true;
void OnTick()
  {
    double val[1];
    int start_pos = 1;
    if( isfirst || TimeCurrent()-5*60 > inittime ){
      int n = CopyBuffer( handle, 0, start_pos , 1, val );
      Print("Получено n=", n, 
        (n==-1)?" ошибка при получении данных из индикатора, ":" нет ошибки при получении данных из индикатора",
        " значение ", val[0] );
    }
    isfirst = false; 
  }

我等了5分钟,之后我得到了每个刻度的指标值(我剪掉了部分日志)。

2010.10.14 15:47:09 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:47:03 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:47:02 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:47:02 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:47:01 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:47:01 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:46:59 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:46:59 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:46:58 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:46:58 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:11 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:11 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:10 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:05 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:03 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:03 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:02 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:01 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:45:00 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:58 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:56 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:56 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:54 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:08 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:05 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:44:05 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:27 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:25 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:24 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:23 23 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:04 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:43:01 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:59 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:58 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:58 tstincl (EURJPY,M1) n=1 在接收指标值0.0006792857142856462的数据时没有收到错误。
2010.10.14 15:42:51 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:47 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:43 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:42:04 tstincl (EURJPY,M1) 在接收指标值0.0006792857142856462的数据时,收到n=1没有错误。
2010.10.14 15:41:25 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:41:22 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:41:05 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:41:05 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:41:01 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:59 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:57 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:54 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:41 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:40 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:38 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:36 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:26 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:21 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:21 tstincl (EURJPY,M1) 在接收指标值0.0007028571428570865的数据时,收到n=1没有错误。
2010.10.14 15:40:18 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:40:14 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:40:13 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:40:07 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:40:04 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:40:02 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:40:02 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:59 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:56 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:54 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:52 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:51 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:50 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:49 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:46 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:45 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:45 tstincl (EURJPY,M1) 在接收指标值0.0007364285714285289的数据时,收到n=1没有错误。
2010.10.14 15:39:43 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:42 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 在接收指标值0.0007364285714285289的数据时没有收到错误。
2010.10.14 15:39:39 tstincl (EURJPY,M1) n=1 从指标接收数据时没有收到错误,数值为0.0007364285714285289
2010.10.14 15:34:38 tstincl (EURJPY,M1) 在接收指标值0.0007357142857142544的数据时,收到n=1没有错误。
2010.10.14 15:34:35 tstincl (EURJPY,M1) Handle=10

这应该每两分钟改变一次,正如你所看到的,从45分钟左右开始,m2上的新条就不能用了,第一次、第二次或第十次调用后都不能用。

也许你有类似的东西?

向开发者提问:如何正确调用CopyBuffer?那么你需要知道哪个时间序列和哪个字符指的是句柄启动器,为了知道这一点,你需要在某个地方存储并将这些信息传送到所有你调用CopyBuffer的地方:代码变得复杂而杂乱。

 

关于测试器的问题。

测试员合格证的结果多久存储一次?

日志显示,如果结果存储在缓存中,就会从那里提取,而不需要重新计算,从而节省了时间。我面临的情况是,一台电脑在长时间的优化运行中崩溃了(原因并不重要)。用同样的专家顾问和同样的参数进行 的下一次优化运行 显示,没有任何东西被保存--时间被浪费了。当然,有一个安全措施--每隔一段时间就停止并重新启动优化,但这并不是很方便。建于342年。

 
Ashes:

关于测试器的问题。

测试员合格证的结果多久存储一次?

日志显示,如果结果存储在缓存中,就会从那里提取,而不需要重新计算,从而节省了时间。我面临的情况是,一台电脑在长时间的优化运行中崩溃了(原因并不重要)。用同样的专家顾问和同样的参数进行的下一次优化运行显示,没有任何东西被保存--时间被浪费了。当然,有一个安全措施--每隔一段时间就停止并重新启动优化,但这并不是很方便。建于342年。

优化结果在优化完成后被写入文件。在紧急关机的情况下,结果不会被记住。

我们将考虑可以做什么。

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
stringo:

优化完成后,优化结果被写入文件。在紧急关机的情况下,结果不会被记住。

我们将考虑可以做什么。

这将是一个好主意。

顺便说一下,我希望以某种可用的形式保存优化结果,而不仅仅是图片。或者,也许我还没有找到正确的按钮?

 
Ashes:

这将是一个好主意。

顺便说一下,我想把优化的结果以某种适合处理的形式保存下来,而不仅仅是图片。或者,也许我还没有找到正确的按钮?

tester/cache<ea_name>.<symbol>.<period>.< mode>.xml
 
Ashes:

这将是一个好主意。

顺便说一下,我想把优化的结果以某种适合处理的形式保存下来,而不仅仅是图片。或者,也许我还没有找到正确的按钮?

我也有一个问题,在强制停止后如何继续优化,我在帮助中没有找到任何关于这个问题的内容。
 

sergey1294:
и у меня вопрос тоже есть, как продолжить оптимизацию после принудительного останова, в справке что-то не нашел по этому поводу ни чего.

只需按下启动按钮。
 
stringo:
tester/cache<ea_name>.<symbol>.<period>.<mode>.xml

还有另一篇MQL5 文章:专家顾问测试和优化指南

优化完成后,你可以在 "MQL5/Tester/cache "文件夹中找到cci_ma_ea.EURUSD.H1.2.xml文件,其中包含所有参数的数值和作为优化结果获得的特征。

优化结果保存在文件:ExpertName.SYMBOL.PERIOD.GenerationMode.xml,其中。

  • ExpertName - 要优化的专家顾问的名称。
  • SYMBOL - 符号。
  • PERIOD - 时间框架(M1,H1,...)。

这个文件可以在Excel中打开进行进一步分析。

 
stringo:
你只需按下启动按钮。
因此,测试人员应该自动将过去的运行列表加载到"优化结果"选项卡中,并从它离开的地方继续进行优化?