大师已经开始打基础了。好极了!伟大的变革即将到来)
还没有什么变化。图书馆。
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/zh/code/32430 int OnInit() { return(!EventSetTimer(1)); } void OnTimer() { CALENDAR Calendar; string Currencies[2]; // 获取当前字符的货币。 Currencies[0] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE); Currencies[1] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT); // 按符号货币显示即将发生的重要事件。 Calendar.Set(Currencies); Comment(Calendar.ToString(0, 5, true)); // 打印出来。 }
错过重要新闻的可能性大大降低。
这种从零开始的斧式调用在 0.6 毫秒内即可执行。当然,也有可能减少到零消耗。
Stanislav Korotky:
ИМХО, все же не хватает более подробной документации. Понятно, что можно заглянуть в код, но тогда вместо разбирания в чужом коде можно и свой написать ;-).
在 mqh 中按 ALT+M。这些方法的名称似乎很合理。
尤其不清楚的是,是否可以在不执行 Set 的情况下调用 Get,以及是否可以回滚过滤器(据我所知,不可以)。
Set - 用事件填充对象。对它的访问就像访问数组中的元素 一样。
从上述示例中,我们还不清楚是否有更方便的方法来跟踪事件的发生--特别是,如果我理解正确的话,您需要比较 change_id,而不是 TimeCurrent 的发生,因为数据更新并不一定与事件开始的时间完全一致。
如果我们谈论的是回溯测试,就没有也不可能有 change_id。
至于实时性,这一功能将在稍后的库中添加。
过滤器回滚与其他地方一样:在过滤器之前复制一个对象。
在结构上,它可以以解析器的形式嵌入其他数据源。为此,甚至还有一个 EVENT::Source 字段,现在只等于一个值 "MetaTrader5"。
因此,有了堆叠日历的功能。假设它从多个来源获取数据,然后将它们合并到一个地方。
如果我们说的是回溯测试,那么就没有也不可能有 change_id。
这是一个值得商榷的细微差别:在现实生活中,事件会发生变化,如果测试人员(通过库)不能重现历史变化,测试的充分性就会下降。这里的一些主题已经提到过类似的话题:事件中的在线指标是相同的,然后它们会被修正。如果我们使用修正后的值进行测试,就无法获得专家 "即时 "分析的结果。好吧,或者是我误解了获取更新的情况。
这是一个值得商榷的细微差别:在现实生活中,事件会发生变化,如果测试人员(通过库)不能重现历史变化,测试的充分性就会下降。这里的一些主题已经提到过类似的话题:事件中的在线指标是相同的,然后它们会被修正。如果我们使用修正后的值进行测试,就无法获得专家 "即时 "分析的结果。好吧,或者是我误解了获取更新的情况。
日历包含每个事件的四个值:
- 当前(实际)--新闻发布后收到的第一个值。
- 预测值--新闻发布前的预测值(由谁预测?
- 前值--上次发布同一日历新闻后最先收到的值。即等于前一次的实际值:Previous[i] = Actual[i-1]。
- 修订值 - 上一次实际值的调整值。日历中不存储此次更新的时间(和次数)。
在所有 HTML 日历中(包括标准 日历和终端日历),三重(实际值、预测值、上一个 值)= (实际值、预测值、修订 值)。因此,在下一个相关事件发生之前,不能在历史记录中使用已修订字段。其他字段可以使用。
没有(也不可能有)关于接收实际值的滞后值的信息,或者更准确地说,没有关于特定 交易服务器和新闻源不同步的信息。这就是为什么在回溯测试中不考虑它的原因。这一细微差别是显而易见的。
考虑到上述情况,在回溯测试中将 TimeTradeServer 与事件发生时间进行比较是完全合法的。使用事件发生前的 值(前值, 预测值,修正 值), 以及事件发生后的 值 (实际 值 , 预测值,前值)。

日历:
日历 - 历史和实时基本面分析。
Author: fxsaber