HMA是2005年由Alan Hull发明的移动平均线。
其特征是移动平均线的周期设置的越长,线条越平滑,也就更加容易避免假讯号。
而另一方,如果想避免与实际价格的延迟或乖离时,把周期设短也是一种有效的方法。
在MT4中默认的移动平均线中也有追求平滑的SMMA(Smoothed Moving Average)以及越近期影响力越大的EMA(Exponential Moving Average)等多种有名的平均线。
HMA是以WMA(Weighted MA)为基准所计算。
在HMA中所使用的WMA是指MT4中的LWMA(Linear Weighted Moving Average)。
以下为计算公式:
- HMA(周期:P)
- ①pHMA=WMA(周期:P÷2)x2-WMA(周期:P)
- 周期:P的一半的WMA的2倍数值减去期间:P的WMA。
- ②①中所计算的数列的周期:P的平方根的WMA为HMA。
- HMA=WMA(周期P的平方根、pHMA)
从下图可以看出与SMA和EMA相比,HMA的反应非常迅速。
图)黄色:HMA 蓝色:SMA 红色:EMA
[Oanda]程式交易_移动平均线HMA的设定方法说明与MT4的外汇自动程式交易编码教学
HMA源代码)
初始设置
WMA虽然使用LWMA,
但是输入input ENUM_MA_METHOD Method=MODE_LWMA;的话也可以选择EMA。
- #property indicator_chart_window
- #property indicator_buffers 2
- #property indicator_color1 clrWhite
- #property indicator_color2 clrGold
- #property indicator_width1 1
- #property indicator_width2 3
- #property indicator_type1 DRAW_LINE
- #property indicator_type2 DRAW_LINE
- input int period=13;
- input ENUM_MA_METHOD Method=MODE_LWMA;
- datetime TimeOld=Time[0];
- double pHMA[],HMA[];
复制代码
缓冲设置
计算时虽然会制作成pHMA,但是,使用DRAW_NONE可以不显示。
- void OnInit(){
- SetIndexBuffer(0,pHMA);
- SetIndexStyle(0,DRAW_NONE);
- SetIndexBuffer(1,HMA);
- }
复制代码
首先计算pHMA,然后使用iMAOnArray计算HMA
- int OnCalculate (const int rates_total,
- const int prev_calculated,
- const datetime& time[],
- const double& open[],
- const double& high[],
- const double& low[],
- const double& close[],
- const long& tick_volume[],
- const long& volume[],
- const int& spread[])
- {
- int i,limit=Bars-IndicatorCounted();
- for(i=limit-1;i>=0;i–){
- pHMA[i] = iMA(NULL,PERIOD_CURRENT,(period/2),0,Method,PRICE_CLOSE,i)*2
- – iMA(NULL,PERIOD_CURRENT,period ,0,Method,PRICE_CLOSE,i);
- }
- for(i=limit-1;i>=0;i–){
- HMA[i]=iMAOnArray(pHMA,0,MathSqrt(period),0,Method,i);
- }
- return(0);}
复制代码 当使用短期MA时,可以使用HMA来获得平滑且快速的反应。
问:HMA的特征为何?
答:其特征是移动平均线的周期设置的越长,线条越平滑,也就更加容易避免假讯号。
而另一方,如果想避免与实际价格的延迟或乖离时,把周期设短也是一种有效的方法。
问:WMA的计算公式为何?
答:以下为计算公式:
HMA(周期:P)
①pHMA=WMA(周期:P÷2)x2-WMA(周期:P)
周期:P的一半的WMA的2倍数值减去期间:P的WMA。
②①中所计算的数列的周期:P的平方根的WMA为HMA。
HMA=WMA(周期P的平方根、pHMA)
原文转自:OANDA官网
游客,本帖隐藏的内容需要积分高于 10000000 才可浏览,您当前积分为 0
|
上一篇: [Oanda]程式交易_可以让MT4中的所有部位更加快速结算的方法下一篇: [Oanda]技术分析_斐波那契回调线使用日线图或60分钟线图的交易概念
|