🐣
从零写第一个 EA:MA+ADX 分步指南
用 MA+ADX 范例,从向导建壳到测试器跑通第一个 EA
#EA#入门#MA#ADX#分步
本文用 MA-8 趋势 + ADX 过滤做范例:先人工定义买卖条件,再逐步代码化,适合零基础。
一、先定策略,再写代码
别一上来就抠语法。先把“什么时候买、什么时候卖”用自然语言写清楚,再翻译成代码,效率最高。
二、用向导搭骨架
- Ctrl+N → 选 Expert Advisor → 填名称/作者;
- 生成 OnInit/OnDeinit/OnTick 骨架;
- 用 input 暴露止损、获利、周期等可调参数。
三、初始化与反初始化
OnInit 里取指标句柄(iMA、iADX)、按 _Digits 调整止损止盈点数;OnDeinit 用 IndicatorRelease 释放句柄,避免泄漏。
✦ 三大基石
指标句柄、幻数(Magic)、新柱判断(static datetime Old_Time)是 EA 三大基石,先吃透再堆逻辑。
四、OnTick 核心逻辑
- 柱数 < 60 退出;
- 比对新柱;
- CopyBuffer 取 ADX/MA 值到数组;
- PositionSelect 查有无同方向仓;
- 5 位数品种止损乘 10,用 NormalizeDouble 标准化。
五、买卖条件
- 买入:MA 递增(0>1>2) 且前收 > MA 且 ADX > 22 且 +DI > -DI;
- 卖出:对称;
- 仅新柱检查、同方向无仓才开,一次一仓。
⚠ 教学值别照抄
固定 30 点止损、100 点获利只是教学值;实盘必须把止损距离与账户风险、品种波动挂钩,别照抄数字。
六、调试与测试
MetaEditor 设断点(F9)单步(F10/F11)监视变量;Strategy Tester(Ctrl+R)选品种/周期/日期,看图形与报表;可调周期、止损再优化。
常见问题
能。文章是分步向导建壳再填空的模式,先把骨架跑通,再理解每一段,比一上来啃语法书高效。
避免同一根 K 内重复触发开仓,既省算力也防止一根柱里连开多单,逻辑更干净。
ADX 衡量趋势强度,22 是常用门槛;低于它说明震荡市,趋势策略容易挨耳光,所以用来过滤。
点位(_Point)在 5 位平台是 0.00001,而 30 点止损通常指 30 个报价点 = 0.00030,要把输入参数乘 10 换算。
不能。教学 EA 未做样本外验证与风控,先前向测试、小仓位试,确认稳健再放大。