Отсутствие контроля валидности хэндла
现在,我们应该谈谈使用句柄缓存的一个巨大危险:在用户缓存中无法控制句柄的存在。也就是说,当指标句柄被删除时,不会以任何方式进行处理。
这个问题并不存在,因为 MQL4-style 并不提供句柄的删除功能--那里没有这个概念。但在一般情况下,删除总是通过缓存包装器进行的。
结论
对不同指标访问方式的测试结果表明,MQL5-style 指标访问方式领先于任何 MQL4-style(不含句柄缓存和含句柄缓存)。
MQL5 风格假定用户事先知道他将使用哪些指标(及其输入参数)。这些是最原始的 TS!
一般来说,TS 调用经过计算的(非严格定义的)输入参数指标。在这里,您不能没有 MQL4-style+ 缓存。
我认为在 KB 中找到这种级别的 MT4-advisor 并不难。将其转换为文章中所谓的 MQL5 风格是不可能的。
因此,文章中的结论只适用于最原始的 TS,仅用于教育目的。
S
这篇文章将
| 69 | "如何将任何指标的计算部分转移到智能交易系统代码中"NEW #957 | Dmitriy Gizlyk |
То есть если два эксперта на одинаковых графиках (одинаковые символ и таймфрейм) создают индикаторы с одинаковыми входными параметрами — MQL5 в своём внутреннем учёте будет идентифицировать их как два разных хэндла.
句柄是相同的,id 也是相同的这一事实也证实了这一点。
第一个 "true "结果只表明句柄引用次数减少了。
这是一个完全错误的结论。手柄是一样的,而且 ID 也是一致的。
第一个真实结果只表明句柄引用次数减少了。
不同的解释是指
MQL5 在其内部核算中会 将它们识别为两个不同的句柄。
不同的解释是指
这就是我所说的解释
"内部会计 "解释为计数器。坦率地说,我不明白为什么文章的第一部分是关于手柄的?似乎一切都已经被咀嚼过不止一次,并以更方便的方式呈现出来。在没有开放图表的终端中执行指标的原因。
我们走吧
太夸张了
不争论太夸张了。
没有争论。继续倡导原始 TC。
新文章 自置缓存的指标速度比较已发布:
本文将经典的 MQL5 指标访问方法与 MQL4 风格的替代方法进行比较。 研究若干种 MQL4 风格的指标访问方法: 带有和未带有指标句柄缓存。 还会研究分析 MQL5 核心内部的指标句柄。
在比较结果时,请注意测试 EA 的任务相当复杂:
现在我们来进行测试: 仅调用一个指标 (对于两个 EA, MQL5 test.mq5 和 Cache test.mq5, Use indicator... 参数为 "true", 而对于 Cache test.mq5, Use Timer 为 "0")
图例 5. 用于访问一个指标的时间
作者:Vladimir Karputov