2015.10.1114:44:01.672 test (USDCAD,M5) 02015.10.1114:44:01.681 test (USDCAD,M5) 12015.10.1114:44:01.682 test (USDCAD,M5) Расчитано 16518 баров за 0 секунд
2015.10.1114:44:01.705 test (USDCAD,M5) 22015.10.1114:44:01.705 test (USDCAD,M5) Расчитано 16518 баров за 0 секунд
在按下 "刷新 "键后,一切都被计算出来了。如果在inite中创建的指标数据在第一次调用OnCalculate/OnTimer 等之前被计算出来,那就更方便了。
如果有可能在指标内部的循环中初始化后等待它们的计算,那就很有用了。
为了计算指标,用户应该在图表上按几次 "刷新"。他是否需要它。尽管MT5有一些优势,但他还是会记得老式的MT4并继续使用它。
指标中的任何计算都必须 只在OnCalculate()中完成。
在这种情况下,我说的是石牧指标的读数。我说的是在当前使用 的指标读数,即OnCalculate。所以它们在调用OnCalculate 之前就被计算了,就像在MT4中那样。
在这种情况下,我说的是石牧指标的读数。我说的是在当前使用的 指标读数,即在OnCalculate中。所以它们在调用OnCalculate 之前就被计算了,就像在MT4中那样。或者可以在OnCalculate中等待他们的计算。否则,用户将不得不多次按更新键来建立一个指标。因为不是所有的指标都是建立在1秒内的整个历史上,有一些复杂的指标需要更长的时间来计算。所有这些时间,用户将不得不在 "刷新 "按钮上等待,而在MT4中,你只需等待它被绘制。
这个问题在论坛上时常出现。不幸的是,在OnTimer()中调用OnCalculate()并不能解决这个问题。
但你可以试试。在这篇文章中可以找到一个例子:MQL5配方--在MQL5中开发多货币波动指标。
之后,你就可以写出它是否有效。
OnInit()为指标的交易环境做准备。而只有在OnCalculate()中你才能使用 指标数据。
这个问题在论坛上时常出现。不幸的是,在OnTimer()中调用OnCalculate()并不能解决这个问题。
但你可以试试。在这篇文章中可以找到一个例子:MQL5配方--在MQL5中开发多货币波动指标。
事后写出是否成功,如果不是太麻烦的话。
事实证明,如果该指标使用其他符号和/或tf的其他指标,你不能不在图表上按一次或几次 "更新 "按钮(或等待1/few ticks)。
而如果你更仔细地看一下我给出的代码的工作原理?特别是对专家?在周末重新启动终端后。
你完全可以看到,只有在第二次调用OnCaalculate()时才会进行计算。所以没有人取消程序员的检查责任:在OncalCulate()中检查CopyBuffer()的结果--如果该函数没有返回任何东西,必须在OnCalculate()的下一个输入中检查。
这个问题在论坛上时常出现。不幸的是,在OnTimer()中调用OnCalculate()并不能解决这个问题。
但你可以试试。在这篇文章中可以找到一个例子:MQL5配方--在MQL5中开发多货币波动指标。
如果不是太麻烦的话,请以后再写,是否成功。
我还没有读过这篇文章,但它在OnTimer上运行良好
我有一张奇怪的图片,显示从OnTimer调用OnCalculate的工作)我需要在时间序列中添加正确的值
还没看文章,但用OnTimer的接收效果不错
还没看文章,但用OnTimer的接收效果不错
使用 "造型器"--它更有利于识别错误。
在退出OnCalculate()之前增加计数变量--在这种情况下,这个变量将正确计算OnCalculate中的所有运行。