WMAの計算方法(加重移動平均)
直接回答:WMAとは何で、どのように計算されますか?
WMAは通常 Weighted Moving Average(加重移動平均) を意味します。これは より新しい観測ほどより大きな影響を与える(または、より一般的には、各観測に 指定された重み を与える)移動平均です。計算では 直近のデータ点の「ウィンドウ」 を使い、1つの平均化された値を算出します。
標準的な離散式は次のとおりです:
WMAₜ = ( Σᵢ₌₀^(n−1) [ wᵢ · x₍ₜ−i₎ ] ) / ( Σᵢ₌₀^(n−1) wᵢ )
ここで:
- t は現在のインデックス/時間ステップです。
- n は ウィンドウ長(過去の何点を使うか)です。
- x₍ₜ−i₎ はデータ値(たとえば価格)で、時刻 t、t−1、…、t−(n−1) における値です。
- wᵢ は、ウィンドウ内の各位置に適用される 重み です。
多くのチャートの慣習では、w が大きいほどより新しい点 に対応するように重みを選びますが、iの定義方法によって 重み付けの向き(どちらが新しい側か) は変わります。
仕組み:パラメータ、入力、そして例
1) 必要な入力は何ですか?
WMAを計算するには次が必要です:
- 時系列:一定の時間間隔で観測された値 xₜ の並び。
- ウィンドウサイズ n:直近の何点を含めるか。
- 重み付けルール:重み w₀ … wₙ₋₁ の集合。重みはしばしば正ですが、要点は次のとおりです:重みは影響度を制御します。
重要な要件は、重みと時間への対応付けが明確であることです。たとえば、w₀ が現在の値 xₜ に適用されるのか、それとも 最も古い値 x₍ₜ−(n−1)₎ に適用されるのか を把握しておく必要があります。
2) WMAは単純移動平均と何が違いますか?
単純移動平均(SMA) はすべての点を同じように扱います(すべての重みが同じ)。WMAは、ウィンドウ内で重みが変化することで仕組みが変わります。
つまり、同じ n を使っていても、異なる重み付けルールを使えば結果は変わり得ます。
3) 数値例(前提を明示)
仮定します:
- ウィンドウ長 n = 3
- 時刻 t、t−1、t−2 のデータ値は:xₜ = 10、x₍ₜ−1₎ = 12、x₍ₜ−2₎ = 14
- より新しい点ほど重みが増えるとします。上の式で、w₀ が xₜ に掛けられる として、重み w₀ = 3、w₁ = 2、w₂ = 1 を選びます。
加重和を計算します:
- 分子 = (3·xₜ) + (2·x₍ₜ−1₎) + (1·x₍ₜ−2₎)
- 分子 = (3·10) + (2·12) + (1·14)
- 分子 = 30 + 24 + 14 = 68
重みの合計:
- 分母 = 3 + 2 + 1 = 6
したがって:
- WMAₜ = 68 / 6 ≈ 11.33
重みを変える(たとえば、より極端にする)と、結果は最も強く重み付けされた点により近づきます。
4) よくある実務上の補足:「平均」は分母がある場合に限る
一部の実装では、重みを実質的に正規化します(総重みで割る)。上の式は Σwᵢ を使ってこれを明示的に行っています。
正規化を省くと、結果は「平均」ではなく 加重和 になります。この違いは、異なるウィンドウ長や重み集合を比較するときに重要になります。
制限と失敗パターン:何がうまくいかない可能性があるか
1) 重みの選び方で挙動が変わる
WMAは固定された「唯一の正しい計算」ではありません。ウィンドウ長 n と 重み付けルール wᵢ が出力を決めます。
- 重みが集中しすぎると、WMAは短期のノイズに強く反応する可能性があります。
- 重みが均一すぎると、SMAのような挙動に近づき、より遅れてしまうことがあります。
2) データ頻度と時間の整合が重要
WMAは、系列が一定の時間ステップに整列していることを前提とします。データに欠損点が含まれている場合、不規則なサンプリングがある場合、あるいは異なる時間解像度を誤って混ぜてしまった場合、t、t−1、… のインデックスは等しい時間間隔を表さなくなります。すると移動平均の解釈が歪む可能性があります。
3) エッジ効果:最初のウィンドウは未定義(または別の扱い)
時刻 t が n−1 より小さい場合、ウィンドウを埋めるのに十分な過去の観測がありません。実装によって扱いは異なります(たとえば、値を出さない、より小さい実効ウィンドウを使う、開始を遅らせるなど)。そのため、結果を再現するには、同じ開始/初期化の慣習に合わせる必要があります。
4) ノイズ、コスト、実行が実トレードでは支配的になり得る
WMAは決定論的な計算ですが、意思決定に使うと、取引コスト、データの改訂、値がどのようにサンプリング/実行されるかといった現実の要因の影響を受けることがあります。過去の関係が、将来も同様に振る舞うことを自動的に意味するわけではありません。特にボラティリティの局面が変わるときはなおさらです。
確認と次の質問:計算をどうチェックするか
WMA計算が正しいことを独立に検証するには:
- 選んだ n、重みリスト wᵢ、そして各重みが時間上のどの位置に対応するかを書き出します。
- 分子 Σ(wᵢ·x₍ₜ−i₎) と分母 Σwᵢ を明示的に計算します。
- 実装が総重みで割っているか(正規化しているか)を確認します。
- 大きなデータセットで結果を信じる前に、少なくとも1つの時点で小さく手計算できる数値(上の例のようなもの)でテストします。
必要なら次のステップとして、異なる重み付けルール が関連する平均(たとえば単純 vs 加重)に対してWMAをどう変えるかを比較し、ウィンドウ長のような設定が出力にどう影響するかを明確化できます。
DOCUMENT END