诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

资金流量指标(Money Flow Index)编程数据的获取

资金流量指数(Money Flow Index,MFI)是一种量价合一的技术分析工具,它可以反映价格和成交量的变化情况,用于预测市场的供需关系和价格趋势。它是由Gene Quong和Avrum Soudack于1970年代创立的。MFI的主要目的是确定市场的过度买入或过度卖出状态。

MFI指标是MT4自带的技术指标之一,在MT4上方菜单栏依次点击-插入-技术指标-成交量指标-Money Flow Index,然后在弹出的指标属性框中设置好相关参数后,点击“确定”即可将MFI插入到当前图表中。

资金流量指标(Money Flow Index)

在MT4平台上,要获取MFI指标数据,可以使用iMFI()函数。iMFI()函数的结构如下:

double iMFI(
   string symbol,  // 交易品种名称 
   int    timeframe,  // 图表时间周期 
   int    period,  // 指标计算的平均周期值
   int    shift  // 指标索引/序号
);

其中参数说明:

  • symbol:交易品种名称,当前窗口货币对为 Symbol()。要自行定义参数,可以参考 input string symname = “XAUUSD “; 之类。
  • timeframe:图表周期,指一分钟 M1 到月线 MN1 共 9 个图表周期。要自行定义参数,可以参考用 int 或者 ENUM_TIMEFRAMES,如:input ENUM_TIMEFRAMES Period_x = PERIOD_CURRENT; 0 和 PERIOD_CURRENT 都代表当前图表周期。
  • period:指标计算的平均周期值参数,默认 14,要自行定义参数,用 int 就可以,如 input int mfi_period = 14;
  • shift:获取对应指标线的索引/序号,0指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…,这种规则排序。

获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的 MFI值,参考代码:

double MFI_1 = iMFI(Symbol(), 0, 14, 1);

跨图表获取黄金 XAUUSD 一小时 H1 图表中最新 0 号 K 线对应的 MFI值,参考代码:

double XAUUSDMFI_0 = iMFI("XAUUSD", PERIOD_H1, 14, 0);

我们还可以获取美元兑日元 USDJPY 三十分钟 M30 图表中最新 0 号 K 线对应的 MFI值,参考代码:

double USDJPYMFI_0 = iMFI("USDJPY", PERIOD_M30, 14, 0);

如果要获取多个单位的MFI指标的值,可以定义数组并结合 for() 循环来编写。如下面的代码段,获取过去五根K线的MFI值:

double MFIArray[5];
for(int i = 0; i < 5; i++){
    MFIArray[i] = iMFI(Symbol(), 0, 14, i);
}

总的来说,MFI指标的编程不是很复杂,在实际的外汇ea编程开发中只需根据需要变化iMFI()函数的参数即可。

未经允许不得转载:ea编程网 » 资金流量指标(Money Flow Index)编程数据的获取