iCustom的详细解释 - 页 5

 
William Roeder:
延续#23,并将其封装在一个函数#26 中,我现在展示了一个在MT4和MT5上都能使用的结构。(为了便于后期构建600,我改变了变量名中无效的点(#29),并将ints 改为标准枚举。)
未编译,未测试。未编译,未测试。

你好,William & Co.

如果你对一个给定的指标用相同的符号和时间框架多次调用iCustom,是重复执行完整的指标代码,还是MQL4在幕后做了一些聪明的事情来缓存结果缓冲区?希望是后者,特别是对于更多的重磅指标......我的理解是,MQL5通过使用句柄来改善这种情况,处理指标类似于打开/关闭文件的情况。

此外,当编程EA时,我有兴趣使用标准库中的Indicator派生类,与内置函数(iCustom, iMACD, iBands等)相比,它可能提供更大的控制(和可扩展性),更不用说理论上应该在MT4和MT5两个平台上提供类似的编程语义。然而,我还没有亲自尝试过,并且仍然对MQL4和MQL5(Include/Indicators/*.mqh)之间 源代码的重大差异感到困惑。请您根据您对这些功能/库的理解和经验,提供您对利弊的见解,好吗?

 
Dima Diall: 如果您为一个给定的指标多次调用iCustom,并使用相同的符号和时间框架,是重复执行完整的指标代码,还是MQL4在幕后做了一些聪明的事情来缓存结果缓冲区?
  1. 如果特定的符号/TF图表不存在,它将被无形地创建。
  2. 如果特定的指标/参数组合不在符号/TF图表上,它将被无形地添加。
  3. 然后它从请求的缓冲区[index]中读取。
 
William Roeder:
  1. 如果特定的符号/TF图表不存在,它将被无形地创建。
  2. 如果特定的指标/参数组合不在符号/TF图表上,它将被无形地添加。
  3. 然后它从请求的缓冲区[index]中读取。

非常感谢你的快速回复,威廉 -- 这的确是个有趣的方法......当EA终止时,这种隐形创建的指标会自动销毁吗?我想是的,至少在MQL4中是这样;也许在MQL5中,也许需要 为EA所使用的指标句柄明确地调用 IndicatorRelease()。

PS:你对标准库中 的指标类有什么经验吗?我一直在网上搜索代码样本,除了http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator(或内置帮助系统)的少量参考资料外,找不到什么。

PPS: 是否有办法在这个论坛上启用电子邮件通知?我在我的账户设置中找了一圈,没有找到任何东西。

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
MQL5 Standard Library is written in MQL5 and is designed to facilitate writing programs (indicators, scripts, experts) for end users. Library provides convenient access to the most of the internal MQL5 functions.
 
  1. 既然未使用的图表在10分钟后被清除,我想未使用的指标也是如此。
  2. 我没有研究过MT5。看看类中的代码吧。
  3. 我并不清楚。我只是用火狐浏览器和更新扫描器的插件。
原因: