首页 > 提升投资报酬 > 量化分析

移动平均线HMA的设定方法说明与 MT4的外汇自动程序交易编码教学

量化分析 2023-09-22 08:49:13

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

SMA和EMA和HMA相比

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来获得平滑且快速的反应。
哪些贵金属平台好?不错的贵金属交易汇平台推荐:哪些贵金属平台好?2023年平台最新排名
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文相关:无相关信息

留言与评论(共有 0 条评论)
验证码:

免责声明

特别提示:根据《关于严厉查处非法外汇期货和外汇按金交易活动的通知》(证监发字[1978]105号)规定凡未经批准的机构在大陆境内擅自开展外汇期货交易均属非法,提高意识,谨防损失!

本网站所有刊登内容,以及所提供的信息资料,目的是为了更好地服务我们的访问者,本网站不保证所有信息、文本、图形、链接及其它项目的绝对准确性和完整性,网站没有任何盈利目的,故仅供访问者参照使用。本网站已尽力确保所有资料是准确、完整及最新的。就该资料的针对性、精确性以及特定用途的适合性而言,本网站不能作出最对应的方案。所以因依赖该资料所致的任何损失,本网均不负责。 除特别注明之服务条款外,其他一切因使用本站而引致的任何意外、疏忽、合约毁坏、隐秘汇漏、诽谤、版权或知识产权侵犯及其所造成的损失,本站概不负责,亦不承担任何法律责任。如您(单位或个人)认为本网站某部分内容有侵权嫌疑,敬请立即通知我们,我们将在第一时间予以更改或删除。以上声明之解释权归牛犇财经网站所有。法律上有相关解释的,以中国法律之解释为基准。如有争议限在我方所在地司法部门解决。