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

云图指标(Ichimoku)编程数据的获取

云图指标(Ichimoku Kinko Hyo)是一种用于衡量市场趋势和支持/阻力水平的技术分析指标。这个指标是由日本记者Goichi Hosoda在1960年代创立的。云图指标包括五条线:转折线(Tenkan-sen)、基准线(Kijun-sen)、前行云(Senkou Span A)、后行云(Senkou Span B)以及迟滞线(Chikou Span)。

云图指标是MT4自带的技术指标之一,你可以在MT4菜单栏中依次点击“插入-技术指标-趋势指标-Ichimoku Kinko Hyo”,在出现的指标属性框中设置好相关参数后,点击“确定”就可以将云图指标插入到当前图表中。

云图指标(Ichimoku)

在MT4平台上,要获取云图指标数据,可以使用iIchimoku()函数。

iIchimoku()函数的结构如下:

double iIchimoku(
string symbol, // 交易品种名称 
int timeframe, // 图表时间周期 
int tenkan_sen, // 转折线的周期 
int kijun_sen, // 基准线的周期 
int senkou_span_b, // 后行云的周期 
int mode, // 模式(MODE_TENKANSEN, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHIKOUSPAN), 
int shift // 指标索引/序号 ); 

其中各参数的说明:

  1. symbol:交易品种名称,当前窗口货币对为 Symbol(),如果你想自行定义参数,可以参考 input string symname = “USDJPY”; 之类。
  2. timeframe:图表周期,指从一分钟 M1 到月线 MN1 共有 9 个图表周期。如果你想自行定义参数,可以使用 int 或者 ENUM_TIMEFRAMES,如:input ENUM_TIMEFRAMES Period_x = PERIOD_CURRENT;。在这里,0 和 PERIOD_CURRENT 都代表当前图表周期。
  3. tenkan_sen:转折线的周期,此参数默认为9,你可以使用 int 来自行定义参数,如 input int tenkan_sen_period = 9;
  4. kijun_sen:基准线的周期,此参数默认为26,你可以使用 int 来自行定义参数,如 input int kijun_sen_period = 26;
  5. senkou_span_b:后行云的周期,此参数默认为52,你可以使用 int 来自行定义参数,如 input int senkou_span_b_period = 52;
  6. mode:获取指标线的类型,有 MODE_TENKANSEN(转折线)、MODE_KIJUNSEN(基准线)、MODE_SENKOUSPANA(前行云)、MODE_SENKOUSPANB(后行云)、MODE_CHIKOUSPAN(迟滞线)。
  7. shift:获取对应指标线的索引/序号,0指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…,按照这种规则排序。

例如,获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的转折线、基准线、前行云、后行云和迟滞线的值,可以参考以下代码:

double TenkanSen_1 = iIchimoku(Symbol(), 0, 9, 26, 52, MODE_TENKANSEN, 1); // 转折线
double KijunSen_1 = iIchimoku(Symbol(), 0, 9, 26, 52, MODE_KIJUNSEN, 1); // 基准线
double SenkouSpanA_1 = iIchimoku(Symbol(), 0, 9, 26, 52, MODE_SENKOUSPANA, 1); // 前行云
double SenkouSpanB_1 = iIchimoku(Symbol(), 0, 9, 26, 52, MODE_SENKOUSPANB, 1); // 后行云
double ChikouSpan_1 = iIchimoku(Symbol(), 0, 9, 26, 52, MODE_CHIKOUSPAN, 1); // 迟滞线

跨图表获取美元兑日元 USDJPY 三十分钟 M30 图表中最新 0 号 K 线对应的转折线、基准线、前行云、后行云和迟滞线的值,参考代码:

double USDJPYTenkanSen_0 = iIchimoku("USDJPY", PERIOD_M30, 9, 26, 52, MODE_TENKANSEN, 0); // 转折线
double USDJPYKijunSen_0 = iIchimoku("USDJPY", PERIOD_M30, 9, 26, 52, MODE_KIJUNSEN, 0); // 基准线
double USDJPYSenkouSpanA_0 = iIchimoku("USDJPY", PERIOD_M30, 9, 26, 52, MODE_SENKOUSPANA, 0); // 前行云
double USDJPYSenkouSpanB_0 = iIchimoku("USDJPY", PERIOD_M30, 9, 26, 52, MODE_SENKOUSPANB, 0); // 后行云
double USDJPYChikouSpan_0 = iIchimoku("USDJPY", PERIOD_M30, 9, 26, 52, MODE_CHIKOUSPAN, 0); // 迟滞线

如果要获取多个单位的转折线、基准线、前行云、后行云和迟滞线指标的值,可以定义数组并结合 for() 循环来编写。总的来说,云图指标的编程也不是很复杂,只需要根据需要调整 iIchimoku() 函数的参数即可。

未经允许不得转载:ea编程网 » 云图指标(Ichimoku)编程数据的获取