龙听期货论坛's Archiver

龙听 发表于 2018-11-24 11:22

Hull Moving Average(HMA)(附程式碼)

一樣,只要看到有別於傳統簡單移動平均線(SMA)的均線指標,其改良目的就是多不脫針對反應遲鈍或是盤整被巴兩項缺陷,Hull Moving Average(HMA)由一位叫Alan Hull的澳洲專業交易人所發明(請參看他的網站),做為改良版均線指標,HMA在許多報價軟體被廣為運用,不過很可惜,MultiCharts並沒有內建HMA指標,本文向大家介紹這個頗有知名度的均線指標。

HMA簡介

HMA基本上是從WMA(Weighted Moving Average)進化而來,WMA基本上就是給最近的收盤價最高權重,依序等量遞減(WMA與EMA的差別,就是權重遞減方是不同,前者等量遞減,後者以指數式遞減,有興趣進一步了解可參考本文),在MultiCharts裡計算WMA是函式XAverage(Price, Length),接下來,輪到HMA登場,我們先看發明者Hull本人是怎麼發明出HMA的。

以下是從0~9共10個價格數字,平均值為4.5,姑且先稱為MA_all,顯然4.5是離最近的價格9距離太遠,正好顯露出MA反應遲鈍的問題,Hull的做法是再算最近5個值的平均值(5~9),MA_w=7,然後由於MA_w是計算比較近期的價格,應給較高權重,所以他接著以2*MA_w-MA_all的方法來把權重再一次調整。
[attach]5515[/attach]


PowerLanguage程式碼

以上就是HMA的主要精神,接下來我們直接看程式碼:

================================================**** Hidden Message *****[/size]
================================================

IntPortion()函式是取整數之用。

跟上面解說範例的差異,實際HMA在計算MA_all及MA_w時是以WMA來計算(各位看官也可以採SMA甚至EMA取代看看有何不同效果)。此外,HMA在最後計算WMA時,取的期間再開一次根號,是何用意?如果不這麼做的話,以上面這個程式碼範例Length=20,在計算變數MA及變數HMA,前後做了兩次WAverage計算,其實等於已經把近20+20=40根K棒都抓進來運算,反而讓更多舊的價格來影響均線值,故以程式碼中Length=20,開根號取整數等於4,把權重還給近期價格。

HMA與其他均線比較

我們把HMA、AMA以及SMA放在一起比較,可以發現HMA(水藍色)最為敏感,最為貼著貼著指數走,其次是AMA,最後也就是最鈍的SMA。在盤整時期,HMA也會跟著行情上上下下,顯然對抗雜訊震盪走勢能力不好。此外,在劇烈大行情時,HMA會算出比近日最高還高或是比近日最低還低的數值,這是HMA計算公式所致,可以解讀成最後的末升段或末跌段的強力動能遞延,如果是要開發以HMA為依據的進出策略,可特別留一下。

[attach]5516[/attach]

結論

HMA有短均線敏感度優點,面對盤整盤卻沒有忽上忽下的缺點,如果習慣採5日均線(5-SMA)操作的朋友,或許可以試試HMA。

刘一一 发表于 2018-11-27 08:53

看看

单枪匹马 发表于 2018-11-29 17:20

学习

化身博士 发表于 2020-7-21 23:33

PowerLanguage程式码

西门斯 发表于 2020-9-5 16:33

谢谢

贺鲁 发表于 2021-1-31 17:39

谢谢分享!

夕夏 发表于 2021-9-23 15:32

谢谢分享!

李小三 发表于 2022-6-11 20:20

谢谢分享。。

江湖虹 发表于 2022-11-25 09:04

请问可以用到交易师软件里吗谢谢

试试看 发表于 2023-8-31 12:41

好的

滑溜溜 发表于 2024-1-29 10:55

看看

页: [1]