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

鳄鱼震荡指标(Gator Oscillator)编程数据获取

鳄鱼震荡指标(Gator Oscillator)是由比尔·威廉姆斯(Bill Williams)开发的一种技术分析指标。它是一种补充鳄鱼指标(Alligator Indicator)的工具,通过衡量鳄鱼线之间的收敛和发散,帮助投资者判断市场是在趋势行情还是盘整行情。

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

鳄鱼震荡指标(Gator Oscillator)

在MT4平台上,要获取鳄鱼震荡指标的数据,可以使用iGator()函数。iGator()函数的结构如下:

double iGator( 
   string symbol,            // 金融工具的标识符(例如,"EURUSD", "GOLD"等)
   int timeframe,            //图表的时间周期(例如,PERIOD_M1, PERIOD_M5, PERIOD_H1等)
   int jaw_period,           // 用于计算鳄鱼线指标中的颚线(Jaw line)的期数
   int jaw_shift,            // 颚线向右移动的期数
   int teeth_period,         //用于计算鳄鱼线指标中的牙线(Teeth line)的期数
   int teeth_shift,          //牙线向右移动的期数
   int lips_period,          //用于计算鳄鱼线指标中的唇线(Lips line)的期数
   int lips_shift,           //唇线向右移动的期数
   int ma_method,            //平均方法,用于计算鳄鱼线指标中的各线条(例如,MODE_SMA, MODE_EMA, MODE_SMMA, MODE_LWMA)
   int applied_price,        //应用价格,用于计算鳄鱼线指标的价格类型(例如,PRICE_CLOSE, PRICE_OPEN, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_TYPICAL, PRICE_WEIGHTED)
   int mode,                 //线条索引,用于选择鳄鱼震荡指标中的上柱线(MODE_GATORJAW - 颚线,MODE_GATORTEETH - 牙线,MODE_GATORLIPS - 唇线)
   int shift                 //移动,用于从当前柱子向左移动的柱子数
   );

其中个参数说明:

  1. symbol:交易品种的标识符,例如 “EURUSD” 或 “GOLD”。
  2. timeframe:图表的时间周期,例如 PERIOD_M1(1分钟),PERIOD_M5(5分钟),PERIOD_H1(1小时)等。
  3. jaw_period:计算鳄鱼线指标中颚线(Jaw line)的期数。
  4. jaw_shift:鳄鱼线指标中颚线(Jaw line)向右移动的期数。
  5. teeth_period:计算鳄鱼线指标中牙线(Teeth line)的期数。
  6. teeth_shift:鳄鱼线指标中牙线(Teeth line)向右移动的期数。
  7. lips_period:计算鳄鱼线指标中唇线(Lips line)的期数。
  8. lips_shift:鳄鱼线指标中唇线(Lips line)向右移动的期数。
  9. ma_method:平均方法,用于计算鳄鱼线指标中的各线条,例如 MODE_SMA(简单移动平均),MODE_EMA(指数移动平均),MODE_SMMA(平滑移动平均),MODE_LWMA(线性加权移动平均)。
  10. applied_price:应用价格,用于计算鳄鱼线指标的价格类型,例如 PRICE_CLOSE(收盘价),PRICE_OPEN(开盘价),PRICE_HIGH(最高价),PRICE_LOW(最低价),PRICE_MEDIAN(中位数价格),PRICE_TYPICAL(典型价格),PRICE_WEIGHTED(加权价格)。
  11. mode:线条索引,用于选择鳄鱼震荡指标中的柱子,例如 MODE_GATORJAW(颚线),MODE_GATORTEETH(牙线),MODE_GATORLIPS(唇线)。
  12. shift:移动,用于从当前柱子向左移动的柱子数。例如,0表示当前最新的柱子,1表示当前柱子的前一个柱子,以此类推。

举例来说,如果我们想获取当前图表中第一个K线的鳄鱼震荡指标的上柱(MODE_GATORJAW)和下柱(MODE_GATORTEETH)的值,可以这样编写:

double UpperGator_1 = iGator(Symbol(), 0, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORJAW, 1);
double LowerGator_1 = iGator(Symbol(), 0, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORTEETH, 1);

同样地,如果我们想获取美元兑日元USDJPY三十分钟图表中最新0号K线的鳄鱼震荡指标的上柱和下柱的值,可以这样编写:

double USDJPYUpperGator_0 = iGator("USDJPY", PERIOD_M30, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORJAW, 0);
double USDJPYLowerGator_0 = iGator("USDJPY", PERIOD_M30, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORTEETH, 0);

如果我们想获取多个K线的鳄鱼震荡指标的上柱和下柱的值,可以定义数组并结合for()循环来编写,例如:

int totalBars = 10; 
double UpperGator[totalBars]; 
double LowerGator[totalBars]; 
for(int i = 0; i < totalBars; i++) {
 UpperGator[i] = iGator(Symbol(), 0, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORJAW, i);
LowerGator[i] = iGator(Symbol(), 0, 13, 8, 8, 5, 5, 3, MODE_SMA, PRICE_CLOSE, MODE_GATORTEETH, i); 
} 

以上就是获取鳄鱼震荡指标数据的基本方法,实际编程时只需根据需求适当调整iGator()函数的参数即可。

未经允许不得转载:ea编程网 » 鳄鱼震荡指标(Gator Oscillator)编程数据获取