源码与编译
MQL5 OnTick 与 OnTimer:如何组织 EA 事件
EA 是事件驱动程序。把初始化、市场决策和维护工作分清楚,人和 AI 编程助手都更容易完成范围明确的修改。
让各事件职责明确
OnInit 用于初始化和参数检查,OnDeinit 用于清理。OnTick 接收图表品种的新报价事件,订阅定时器后由 OnTimer 处理定时事件。这些入口也是阅读陌生项目时很有用的结构地图。
保持事件队列响应及时
MQL5 对同一程序的事件依次处理。如果 NewTick 已在队列中或正在执行,就不会再加入另一个 NewTick。因此,应留意处理函数中的长时间阻塞。无限循环等待条件,不能代替合理的事件设计。
有目的地安排定时工作
定时器适合状态面板或周期性维护。过短周期也可能增加回测工作量,应选择真正有用途的频率。定时事件不保证此刻有最新行情,也不会自动改善交易执行质量。
修改前画出执行流程
- 列出只需启动时做一次的工作。
- 列出每个相关报价都需要执行的工作。
- 列出只需定期刷新的工作。
- 定义数据不可用时的处理方式。
- 同时测试正常运行、退出和重新初始化。
用 MQLume 开启你的定制
为下一次定制建立清晰结构。MQLume 的项目可供阅读、编译和改进,包括 Quantum Titan MT5。