源码与编译
MQL5 CopyBuffer:指标句柄与已收盘 K 线
指标句柄指向一项指标计算,CopyBuffer 则读取计算结果。分清这两个步骤,有助于写出容易理解和测试的 EA。
创建并检查句柄
常见做法是在初始化阶段创建指标句柄,并检查 INVALID_HANDLE。记录句柄对应的参数和周期。每个 Tick 都重复创建同一指标,会增加不必要的工作,也不利于清晰处理错误。
确认数据已准备好
BarsCalculated 返回已完成计算的数据数量。CopyBuffer 返回实际复制数量或错误结果。读取目标数组前,确认复制数量满足请求;尚未准备好的数据不能被默认为有效交易信号。
明确选择哪根 K 线
按位置调用 CopyBuffer 时,起始位置 0 指当前形成中的 K 线,基于已收盘 K 线的规则通常读取位置 1。只复制一个元素时较直观;复制多个元素时,还需要确认数组排列顺序,不能默认与程序中其他数组一致。
建立小型诊断案例
- 只选一个指标和一个明确周期。
- 以受控频率记录 K 线时间与读取值。
- 将结果与终端指标显示比较。
- 分别测试历史尚在加载的启动阶段和后续普通 K 线。
用 MQLume 开启你的定制
MQLume 把阅读源码变成实践学习路径。浏览 My AI Gold MT5,在独立副本中研究并完善自己理解的指标逻辑。