标准偏差(StdDev)是一种用于衡量价格波动的技术分析指标。它衡量价格的变动范围或者说价格的波动性,更大的标准偏差意味着价格的波动性更高。标准偏差被广泛应用于金融领域,尤其是在风险管理和投资组合管理中。
在MT4平台上,标准偏差是自带的技术指标之一。要添加标准偏差指标到图表,只需在mt4上方菜单栏依次点击-插入-技术指标-趋势指标-Standard Deviation,在出来的指标属性框中设置好相关参数后,点“确定”即可将StdDev插入到当前图表中。
在MT4平台上,要获取标准偏差指标数据,可以使用iStdDev()函数。
iStdDev()函数的结构如下:
double iStdDev(
string symbol, // symbol
int timeframe, // period
int ma_period, // averaging period
int ma_shift, // shift
int ma_method, // averaging method
int applied_price, // applied price
int shift // shift
);
其中参数说明:
- symbol:交易品种名称,当前窗口货币对为 Symbol()。
- timeframe:图表周期,指一分钟 M1 到月线 MN1 共 9 个图表周期。
- ma_period:移动平均线的平均周期值参数。
- ma_shift:移动平均线的偏移值。
- ma_method:移动平均线的计算方法,例如简单移动平均线(MODE_SMA)、指数移动平均线(MODE_EMA)、线性加权移动平均线(MODE_LWMA)和平滑移动平均线(MODE_SMMA)。
- applied_price:价格类型,指收盘价、最高价、最低价等。
- shift:获取对应指标线的索引/序号,0指当前最新 K 线所对应的值。
现在我们来看一些具体的使用例子。
获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的标准偏差值:
double StdDev_1 = iStdDev(Symbol(), 0, 14, 0, MODE_SMA, PRICE_CLOSE, 1);
跨图表获取黄金 XAUUSD 一小时 H1 图表中最新 0 号 K 线对应的标准偏差值:
double XAUUSDStdDev_0 = iStdDev("XAUUSD", PERIOD_H1, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
获取美元兑日元 USDJPY 三十分钟 M30 图表中最新 0 号 K 线对应的标准偏差值:
double USDJPYStdDev_0 = iStdDev("USDJPY", PERIOD_M30, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
如果你要获取多个单位的标准偏差指标的值,你可以定义一个数组,并结合 for() 循环来编写,如下:
int periods[] = {5, 10, 15, 20, 30};
for (int i=0; i<ArraySize(periods); i++) {
double stdDev = iStdDev("USDJPY", periods[i], 14, 0, MODE_SMA, PRICE_CLOSE, 0);
Print("The StdDev value for period ", periods[i], " is ", stdDev);
}
在这段代码中,periods[i]
会在每次循环时选择数组中的一个时间周期(例如,5分钟,10分钟,15分钟等),然后通过iStdDev函数获取对应的标准偏差值。对于每一个周期,都会打印出标准偏差的值。
总的来说,标准偏差StdDev指标的编程不是很复杂,只需要根据你的需要调整 iStdDev() 函数的参数即可。