MT5 EMA交叉+马丁格尔策略EA报错:iMA参数数量错误求助
MT5 EA编译错误:
iMA 参数数量错误解决办法 错误根源:第19、20行调用
iMA时,传入的参数数量与MT5内置函数要求的6个参数不匹配,要么少传了必要参数,要么多传了冗余参数。内置
iMA参数详解:函数要求的6个参数依次为:const string:交易品种名称(例如"EURUSD")ENUM_TIMEFRAMES:时间周期(例如PERIOD_H1代表1小时图)int:均线周期(比如9对应EMA9)int:均线计算所用的价格类型(例如PRICE_CLOSE用收盘价计算)ENUM_MA_METHOD:均线类型(MODE_EMA对应指数移动平均)int:均线偏移值(通常填0,代表无偏移)
修正后的代码示例:
// 初始化EMA9句柄 int ema9_handle = iMA(_Symbol, _Period, 9, PRICE_CLOSE, MODE_EMA, 0); // 初始化EMA20句柄 int ema20_handle = iMA(_Symbol, _Period, 20, PRICE_CLOSE, MODE_EMA, 0);注:用
_Symbol和_Period可以自动获取当前图表的品种和周期,无需硬编码。后续数值获取:拿到句柄后,需通过
CopyBuffer提取均线的具体数值,示例如下:double ema9_data[]; double ema20_data[]; // 复制最新1根K线的EMA数值到数组 CopyBuffer(ema9_handle, 0, 0, 1, ema9_data); CopyBuffer(ema20_handle, 0, 0, 1, ema20_data); // ema9_data[0]即为最新的EMA9数值,ema20_data[0]为最新EMA20数值
内容的提问来源于stack exchange,提问作者VLCIAGA
相关产品推荐
相关产品推荐

