鳄鱼震荡指标(Gator Oscillator)是由比尔·威廉姆斯(Bill Williams)开发的一种技术分析指标。它是一种补充鳄鱼指标(Alligator Indicator)的工具,通过衡量鳄鱼线之间的收敛和发散,帮助投资者判断市场是在趋势行情还是盘整行情。
鳄鱼震荡指标是MT4自带的技术指标之一,在MT4上方菜单栏依次点击-插入-技术指标-比尔·威廉姆-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 //移动,用于从当前柱子向左移动的柱子数
);
其中个参数说明:
symbol
:交易品种的标识符,例如 “EURUSD” 或 “GOLD”。timeframe
:图表的时间周期,例如 PERIOD_M1(1分钟),PERIOD_M5(5分钟),PERIOD_H1(1小时)等。jaw_period
:计算鳄鱼线指标中颚线(Jaw line)的期数。jaw_shift
:鳄鱼线指标中颚线(Jaw line)向右移动的期数。teeth_period
:计算鳄鱼线指标中牙线(Teeth line)的期数。teeth_shift
:鳄鱼线指标中牙线(Teeth line)向右移动的期数。lips_period
:计算鳄鱼线指标中唇线(Lips line)的期数。lips_shift
:鳄鱼线指标中唇线(Lips line)向右移动的期数。ma_method
:平均方法,用于计算鳄鱼线指标中的各线条,例如 MODE_SMA(简单移动平均),MODE_EMA(指数移动平均),MODE_SMMA(平滑移动平均),MODE_LWMA(线性加权移动平均)。applied_price
:应用价格,用于计算鳄鱼线指标的价格类型,例如 PRICE_CLOSE(收盘价),PRICE_OPEN(开盘价),PRICE_HIGH(最高价),PRICE_LOW(最低价),PRICE_MEDIAN(中位数价格),PRICE_TYPICAL(典型价格),PRICE_WEIGHTED(加权价格)。mode
:线条索引,用于选择鳄鱼震荡指标中的柱子,例如 MODE_GATORJAW(颚线),MODE_GATORTEETH(牙线),MODE_GATORLIPS(唇线)。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()函数的参数即可。