请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
310
等级:
(9)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

这是算法书籍 中介绍的CalendarForDates.mq5 脚本的扩展版本。

输入变量允许您指定国家代码、当前代码和时间范围,以筛选所需的记录。如果输入为空,则可以请求完整的日历(如果在终端启动后首次请求日历,则下载其基础信息可能需要一段时间,甚至会超时而没有结果--这时请再次运行脚本)。

因此,您将得到一个 CSV 文件,其中包含日历记录和最重要的字段(并非所有字段都会导出--请根据自己的需要调整源代码)。

还可以选择输入*.cal 文件(特定时间的日历存档副本),该文件由书中介绍的 指示器CalendarMonitorCached.mq5 创建,现在已经过时,取而代之的是其扩展版本CalendarMonitorCachedTZ.mq5(推荐使用,也是下一步介绍的新功能所必需的)。

CSV 格式的 MetaTrader 经济日历


最有趣的功能:脚本演示了如何使用TimeServerDST.mqh 根据服务器过去的时区变化调整历史事件的时间戳,这些变化会持续反映在蜡烛的时间戳中。将 "FixCachedTimesBySymbolHistory " 输入设置为"true " 即可启用该模式。

将修正和未修正的事件保存到 CSV 文件中,可以方便地比较时间修正对历史记录的影响。

为正确使用该功能,建议在 XAUUSD 或 EURUSD H1 图表上运行脚本。编程使用时,应将这些符号传递给TimeServerDST 的函数。

在指标CalendarMonitorCachedTZ.mq5 中也使用了同样的方法,将经过时间校正的日历事件导出到存档的 cal 文件中,以便从测试器内部加载,从而确保新闻机器人的精确回溯测试和优化。

执行时间校正的日期范围仅限于 H1 时帧图表上的最大条数。这就是TimeServerDST.mqh 中使用的经验方法的特殊性。

让我们考虑一个特定的事件类型,最好是对市场有重大影响的事件,如美国非农就业数据(NFP)的发布。

在使用 DST 计划的欧洲服务器(MQ 演示)上,冬季的时间是 14:30,夏季的时间是 15:30。在下面的截图中,您可以并排看到导出为 CSV 文件的完整日历历史的两个版本,其中特定的夏季日期为 2023.08.04。两次导出都是在 11 月 8 日(冬季,标准时间)进行的,因此所有事件都默认应用了 GMT+2 偏移,包括 2023 年夏季(以及其他季节和年份)。在未进行校正的情况下(如右图所示),导出的夏季 NFP 时间为 14:30。这是不正确的。

带有校正时间戳的经济日历事件

根据经验自动检测服务器的时区(夏季时区有效)后,程序库在导出日历时进行了时间校正(如左图所示)。因此,夏季 NFP 被移到了 15:30,这是应该的。您可以查看这一时期的图表,以确保校正是适当的。

欧元兑美元 H1 图表上的非农就业人数

这种具体情况并不那么戏剧化,因为未修正的公布时间 14:30 在 15:30 之前,所以专家顾问可以继续等待消息并开仓交易。但是当服务器时区切换到夏季时,日历中登记的所有冬季事件的时间戳都会延迟 1 小时(!)。

该功能仍处于试验阶段。欢迎提出反馈意见。

我们计划进一步研究时间修正对新闻交易的影响。敬请期待。


所附的 mqh 文件(CalendarFilter.mqh、CalendarCache.mqh、QuickSortStructT(Ref).mqh)包含与书中原始版本相比的错误修正和改进。



04.10.2024 - 在 cal 文件和 csv 文件中添加了写入/读取服务器时区偏移的功能。

10.11.2024 - 增加了一个选项,可根据服务器时区的追溯变化修正历史记录中事件的时间戳。

11.11.2024 - CalendarCache.mqh 和 CalendarFilter.mqh 中的小 bug 修复和改进。

22.11.2024 - CalendarCache.mqh 中的小错误修复和改进。


由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/52977

Swap Monitor Swap Monitor

该服务定期检查预定义符号的掉期,并将检测到的变化保存到 CSV 文件中,以便进一步分析和潜在重放(此处未实施)。此外,它还监控现有头寸的掉期变化并发出警报。

MT5-BuildYourGridEA MT5-BuildYourGridEA

该专家系统可帮助任何交易者建立订单网格。

Sample pine script stochastic divergence Sample pine script stochastic divergence

转换为 MQL 的松木代码示例

Push Notification for Opened / Closed Trades (Netting) Push Notification for Opened / Closed Trades (Netting)

该代码提供了一个简单的功能,可在 MetaTrader 5 开仓或平仓时向移动设备发送推送通知。它专为净额结算账户(每个符号只允许一个仓位)设计。