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

分形指标(iFractals)编程数据的获取

分形指标(Fractals)是由比尔·威廉姆斯(Bill Williams)在其混沌交易理论中开发的一种技术分析指标,主要用于识别图表上的分形形状。分形形状是一种独特的价格形态,表现为局部的最高价或最低价。分形指标包括两种形状:上分形和下分形。

分形指标是MT4自带的技术指标之一。在MT4上方菜单栏依次点击-插入-技术指标-比尔·威廉姆-Fractals,在出现的指标属性框中设置好相关参数后,点击“确定”,即可将分形指标插入到当前图表中。如下图所示:

分形指标(Fractals)

在MT4平台上,要获取分形指标数据,可以使用iFractals()函数。

iFractals()函数的结构如下:

double iFractals(
   string symbol,   // 交易品种名称 
   int timeframe,   // 图表时间周期 
   int mode,        // 模式(MODE_UPPER, MODE_LOWER),也就是获取哪个分形点
   int shift        // 指标索引/序号
);

其中参数说明:

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

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

double UpperFractal_1 = iFractals(Symbol(), 0, MODE_UPPER, 1); //上分形 
double LowerFractal_1 = iFractals(Symbol(), 0, MODE_LOWER, 1); //下分形

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

double XAUUSDUpperFractal_0 = iFractals("XAUUSD", PERIOD_H1, MODE_UPPER, 0); //上分形
double XAUUSDLowerFractal_0 = iFractals("XAUUSD", PERIOD_H1, MODE_LOWER, 0); //下分形

我们还可以获取美元兑日元 USDJPY 三十分钟 M30 图表中最新 0 号 K 线对应的上分形和下分形的值:

double USDJPYUpperFractal_0 = iFractals("USDJPY", PERIOD_M30, MODE_UPPER, 0); //上分形 
double USDJPYLowerFractal_0 = iFractals("USDJPY", PERIOD_M30, MODE_LOWER, 0); //下分形

如果要获取多个单位的分形指标的值,可以定义数组并结合 for() 循环来编写。例如,要获取最近五个单位的分形指标的值,可以这样编写:

double UpperFractalArray[5];
double LowerFractalArray[5];
for(int i=0; i<5; i++)
{
    UpperFractalArray[i] = iFractals(Symbol(), 0, MODE_UPPER, i);
    LowerFractalArray[i] = iFractals(Symbol(), 0, MODE_LOWER, i);
}

总的来说,分形指标的编程并不复杂,实际的外汇 EA 编程开发中根据需要调整 iFractals() 函数的参数即可。

未经允许不得转载:ea编程网 » 分形指标(iFractals)编程数据的获取