/* */

HMA (ハル移動平均線)

HMA(Hull Moving Average、ハル移動平均線)は、LWMA(加重移動平均線)をベースに作成された移動平均線です。

EMAやLWMAよりも価格に沿った、滑らかな曲線を描きます。




チャートには期間を 20日に設定したHMAを表示しています。HMAは平滑化した際の値と価格の間に生じるラグを抑えつつ、値動きに近い線形を描きます。

また、上昇・下降トレンドにメリハリがあり、ダマシが発生しにくい特徴もあります。





期間を 20日に設定したHMAとLWMAの比較です。価格の追従度を比較すると、HMAはLWMAよりも追従度が高いことが分かります。

移動平均線の価格追従度は、必ずしも高い方が優れているわけではありません。しかし、ダマシが少ない・ラグが小さい・トレンド転換が早いといった特徴は、単独のシグナルとして利用しやすいというメリットを生み出しています。





HMAの計算式

Period
HMAは設定期間をアレンジした2本のLWMAと通常のLWMAを組み合わせて作成されています。計算式は以下のようになっています。


P = LWMA(Mathfloor(Period/Divisor(2.0)))*2 - LWMA(Period)

HMA = LWMA(P, Mathfloor(√Period))


Pの部分の計算は短期MAの2倍から長期MAを引く形になっています。このHMAの場合はDivisorという変数を用いて、平均線の価格追従度を変更できる工夫がされています。そのPをさらに加重平均したのがHMAです。

価格追従度の調節は、数値の水増しによって行われています。その方法は、LWMAの短期・長期線の差を短期線に加えるといった簡単なものです。2本のラインの差が大きくなるほど HMAは価格に近い値を取ります。

しかし、値が大きくなれば良いわけではありません。値が余りにも大き過ぎると、HMAは価格を超えた極端な波形となってしまうからです。





HMAのパラメータ設定

Period
HMAを計算する期間を設定します。デフォルトでは20日になっています。




Divisor
HAMの価格追従度を調節します。数値の有効範囲は 1からPeriodの間になります。数値が 1に近いほど通常のLWMAのラインになり、Periodに近づくほど価格の追従が強くなります。

備考:Divisorは 1未満またはPeriodよりも大きな値は入力できません。数値がこの範囲を超えると、HMAは長期LWMAを対称とした線形か、 0を対称とした負の線形を描きます。





チャートを用いたDivisorの具体例です。期間が 20日のHMAを2本用意し、それぞれのDevisorを最大値(20)・最小値(1)で表示しています。LWMAも20日線を表示しています。

Devisorが 1の場合、HMAはLWMAの2重加重移動平均線となります。(20日LWMAを設定期間の平方数の整数値で加重平均化したラインとなる)

DevisorをPeriodと同じ値にした場合は、終値*2-LWMAの加重平均線となり、荒っぽいZeroLAG-MAのような線になります。これは先述したとおり、短期(終値)と長期(LWMA)ラインの差が大きいことが理由です。



Price
HMAを計算する際に用いる価格の設定です。選択できる価格は以下の7種です。

Close 終値
Open 始値
High 高値
Low 低値
Median_Price  (High + Low)/2
Typical_Price   (High + Low + Close)/3
Weighted_Price  (High + Low + 2*Close)/4






インジケーターのダウンロードは以下のリンクから行えます


HMA.mq5  (MT5版はMT4版とは異なります)