MQL5 数组超出范围:找到第一个无效索引

数组索引必须引用实际存在的元素。编译成功并不能证明每个运行时循环都使用有效的索引。从第一个报告的行开始,而不是立即修补所有循环。

写下界限

对于具有五个元素的一维数组,有效的从零开始的索引是零到四。如果循环访问索引 5,就会越界。读取 i+1 时,为该额外元素留出空间。

检查您收到的数据

如果您请求许多K线但收到的数量较少,则请求的计数不是安全循环界限。记录复制的计数、数组长度和失败索引。决定当历史记录尚未准备好时 EA 应该做什么。

重现一个小案例

尝试前几根K线、空结果和最小回顾。这些案例通常比另一次全年运行更快地揭示边界错误。保留失败的输入,以便再次检查更正情况。

保持修复范围窄

不要压制消息并继续使用虚构价格。有用的修复建立有效边界或等待有效数据。可编辑的源代码使这些小的、有针对性的改进成为可能,而无需改变整个策略。

参考和进一步阅读

从免费的可编辑 EA 项目开始·探索MQLume源代码

返回顶部

查看源码项目

核对每款商品的交付版本、参数说明和已有测试范围。

Quantum Titan MT5The Gold Reaper MT5My AI Gold MT5Ultimate Breakout System MT5Quantum Commander MT5MoonDog EA MT5EA Super Trend XAUUSD MT5Gold Beaver MT5Smart Gold Hunter MT5

购物车

每个项目一份个人使用许可,同一商品仅加入一次。

购物车还是空的

选择一个源码项目,开始浏览。

继续选购