KD指标也称为随机指数,在MT4上面它的名称不叫KD,而是叫 Stochastic Oscillator。它是由美国的乔治·莱恩(George Lane)于1950年代开发,主要用于判断股票或其他资产的超买和超卖状态。
KD(Stochastic Oscillator)指标是MT4自带的技术指标之一,在MT4上方菜单栏依次点击-插入-技术指标-震荡指标-Stochastic Oscillator,并设置好相关参数后点“确定”,即可将KD指标插入到当前图表中,如下图所示:
KD指标有两条指标线,分别为%K线和%D线。%K线是主要线,反映了股票或其他资产最新收盘价在一定时间内的相对位置。%D线是对%K线的平滑处理结果,更加稳定地反映股票或其他资产的价格变化趋势。
在MQL4语言中,KD指标线数值用iStochastic()函数获取,iStochastic()函数结构:
double iStochastic(
string symbol, // 品种名称
int timeframe, // 图表时间周期
int Kperiod, // K 线周期
int Dperiod, // D 线周期
int slowing, // 平滑系数
int method, // %K和%D计算的平均方法
int price_field, // 价格应用/价格字段
int mode, // 指标线类型(MODE_MAIN指%K线,MODE_SIGNAL指%D线)
int shift // 序号/索引
);
用iStochastic()函数获取当前图表KD指标从右往左第二个单位(对应1号K线)的%K线和%D线值,示范代码:
double Stoch_K1 = iStochastic(Symbol(),0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
double Stoch_D1 = iStochastic(Symbol(),0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
跨图表获取黄金XAUUSD三十分钟图表KD指标最新的%K线和%D线值,示范代码:
double XAUUSD_Stoch_K0 = iStochastic("XAUUSD",PERIOD_M30,5,3,3,MODE_SMA,0,MODE_MAIN,0);
double XAUUSD_Stoch_D0 = iStochastic("XAUUSD",PERIOD_M30,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
上面代码中,KD指标的参数使用的是5,3,3,计算类型使用的是SMA,价格类型0是指 Low/High,在具体编程中,根据策略的要求变更参数即可。