威力外汇

 找回密码
 注册

QQ登录

只需一步,快速开始

开启左侧

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

[复制链接]
莫等闲 发表于 2023-5-9 16:28:58 | 显示全部楼层 |阅读模式

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的外汇自动程式交易编码教学

[Oanda]程式交易_移动平均线HMA的设定方法说明与MT4的外汇自动程式交易编码教学,威力社区

HMA源代码)

初始设置
WMA虽然使用LWMA,
但是输入input ENUM_MA_METHOD Method=MODE_LWMA;的话也可以选择EMA。
  1. #property indicator_chart_window
  2. #property indicator_buffers 2
  3. #property indicator_color1 clrWhite
  4. #property indicator_color2 clrGold
  5. #property indicator_width1 1
  6. #property indicator_width2 3
  7. #property indicator_type1 DRAW_LINE
  8. #property indicator_type2 DRAW_LINE
  9. input int period=13;
  10. input ENUM_MA_METHOD Method=MODE_LWMA;
  11. datetime TimeOld=Time[0];
  12. double pHMA[],HMA[];
复制代码


缓冲设置
计算时虽然会制作成pHMA,但是,使用DRAW_NONE可以不显示。
  1. void OnInit(){
  2. SetIndexBuffer(0,pHMA);
  3. SetIndexStyle(0,DRAW_NONE);
  4. SetIndexBuffer(1,HMA);
  5. }
复制代码


首先计算pHMA,然后使用iMAOnArray计算HMA
  1. int OnCalculate (const int rates_total,
  2. const int prev_calculated,
  3. const datetime& time[],
  4. const double& open[],
  5. const double& high[],
  6. const double& low[],
  7. const double& close[],
  8. const long& tick_volume[],
  9. const long& volume[],
  10. const int& spread[])
  11. {
  12. int i,limit=Bars-IndicatorCounted();
  13. for(i=limit-1;i>=0;i–){
  14. pHMA[i] = iMA(NULL,PERIOD_CURRENT,(period/2),0,Method,PRICE_CLOSE,i)*2
  15. – iMA(NULL,PERIOD_CURRENT,period ,0,Method,PRICE_CLOSE,i);
  16. }
  17. for(i=limit-1;i>=0;i–){
  18. HMA[i]=iMAOnArray(pHMA,0,MathSqrt(period),0,Method,i);
  19. }
  20. 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分钟线图的交易概念
一个绝顶高手,绝不仅仅是拥有绝世剑法,还要有绝顶聪明的思维。
武功再高 只是十人敌 百人敌,但有了顶尖的思维才可以成为万人敌。
回复

使用道具 举报

关闭

站长推荐上一条 /10 下一条

“人生的许多失败都是因为人们在放弃时没有意识到自己离成功有多近。”——托马斯·爱迪生

小黑屋|威力社区

GMT+8, 2024-11-22 03:00 , Processed in 0.123301 second(s), 39 queries .

Powered by Discuz! X3.4

© 2017-2020 Comsenz Inc.

本网站仅在国家法律允许时提供学习交流。本网站不代理经纪商(broker),不参与经纪商经营活动,不对经纪商提供担保或承担任何责任。

高风险提示:外汇黄金、差价合约等杠杆类交易包含重大亏损风险,阁下可能会于交易时蒙受损失超过存入的资金!!! 因此未必适合每一位投资者。 阁下必须充分理解所涉及的风险并在必要时寻求独立财务顾问建议。

任何在本网站内发表的评论、新闻、研究、分析、价格、其他资料或第三方网站的链接只能视作一般市场资讯。本网站信息不构成或导致(1) 提供或出售任何金融服务或产品的要约邀请;(2)采取任何金融产品相关行动的推荐(明示或暗示);或(3)任何投资建议或市场预测。 市场意见并非按照旨在促进投资研究独立性的法律要求而拟备,因此并非受到发放此等资料前禁止交易的约束。本网站不会为直接或间接使用或 依赖此等资料而可能引致的任何亏损或损失(包括但不限于任何盈利的损失)负责。