SMA(単純移動平均)がどのように計算されるか
直接的な答え
SMA(Simple Moving Average:単純移動平均)は、直近のN個のデータ点の算術平均を取ることで計算されます。通常は、選択した時間軸(タイムフレーム)における終値が使われます。新しい点が追加されるたびに、最も古い値が落とされ、最新の値が加えられ、移動平均(ローリング平均)が作られます。
メカニズムと定義
SMAは次の3つの選択によって定義されます。
- 何のデータを平均するか:よくある選択肢は、価格(たとえば終値)や、価格から導出された指標値のような時系列です。計算自体は同じで、数値の並びを平均します。
- 窓の長さ(N):Nは、各平均に含めるデータ点の数です。
- 時間の整列(タイムアラインメント):最も一般的な実務上の定義では、系列の各位置ごとにSMA値を1つ計算し、その値は窓の末尾(終了側)を基準にして中心に位置づけます。
式
データ系列を (x_t) とします。窓の長さ (N) のとき、時刻 (t) におけるSMAは次のとおりです。
[ \text{SMA}t = \frac{1}{N}\sum{i=0}^{N-1} x_{t-i} ]
平易な言い方をすると:(\text{SMA}_t) では、現在の値 (x_t) と、その直前の (N-1) 個の値を合計し、それを (N) で割ります。
パラメータとデータ要件
SMAを正確に計算するには、次が必要です:
- (x_t) の完全で順序が整った系列(平均する系列の範囲内に欠けた点がないこと)。
- 一定のサンプリング頻度(たとえば日次データ、または1時間足)。頻度を混ぜると、「直近のN個の点」が同じ時間幅を表さなくなります。
- 比較する各系列に対して選んだ N。
- 最初に利用可能なSMA値に関する取り決め:(N) 個の点がある場合、少なくとも (N) 回の観測が揃うまでSMA値は開始されません。
証拠または計算例
連続する時間ステップ上で、価格のような指標を表す数値系列に対して、3点SMAを作りたいとします。
系列を次のようにします:
- (x_1 = 10)
- (x_2 = 12)
- (x_3 = 14)
- (x_4 = 13)
(N=3) とすると:
- (\text{SMA}_3 = (x_3 + x_2 + x_1)/3 = (14 + 12 + 10)/3 = 12)
- (\text{SMA}_4 = (x_4 + x_3 + x_2)/3 = (13 + 14 + 12)/3 = 13)
これは次のようなローリング挙動を示しています:(\text{SMA}_4) は (\text{SMA}_3) から2つの値((x_3) と (x_2))を再利用し、最も古い値 ((x_1)) を新しい点 ((x_4)) に置き換えます。
実務でのSMA「動作」
SMAは平均なので、単一のデータ点に比べて短期的なノイズを減らします。とはいえ、複数の過去観測を反映するため、元の系列よりも反応が遅くなる傾向もあります。
限界とリスク
SMAはシンプルですが、期待どおりの表現にならない可能性がいくつかあります。
-
ラグ(遅れ)—最新の変化の後ろに出る SMAには過去の値が同じ重みで含まれるため、系列が動いた後でも、以前の水準の影響を受け続けることがあります。値動きが速い局面では、SMAは「先回り」ではなく「追随している」ように見えることがあります。
-
Nの選択が挙動を変える Nを大きくするとより平滑化されますが、反応は遅くなります。Nを小さくすると反応は速くなりますが、より不安定に動く可能性があります。誰かが異なるN値のSMAラインを比較する場合、時間軸(ホライズン)が異なるため、比較が誤解を招くことがあります。
-
データ選択の問題 SMAは入力系列 (x_t) に完全に依存します。意図したものと違うフィールドを平均してしまう(たとえば、意図された値ではなく導出された値を使う)場合や、サンプリングが一貫していない(異なるタイムフレームを混ぜる)場合、結果は意図した計算と一致しません。
-
欠損または不規則なデータ 欠けや欠損点があると、「直近のN個の値」が一貫した時間窓を表さないことがあります。いくつかのシステムでは、欠損データを埋める、またはスキップすることで対応しますが、どちらの方法でも計算されるSMAは変わります。
-
過去の関係が将来の挙動を保証しない SMAが過去のパターンに一致していたとしても、過去の値の平均が将来の平均挙動を保証するものではありません。市場環境は変わり得ますし、同じパラメータ選択でも時間とともに挙動が異なる場合があります。
確認と次の質問
SMAの計算は、次の3つのチェックを行うことで独立に検証できます:
- 使用した 窓の長さN を確認する。
- 小さな区間について、(\text{SMA}t = (x_t + x{t-1} + \dots + x_{t-N+1})/N) を使ってSMAを手計算で再計算する。
- 入力系列とタイムフレーム が定義と一致していることを確認する(同じ頻度、同じ順序)。
さらに進めるなら、次の有用な質問は、異なる重み付けを行う他の移動平均とSMAを比較するとどうなるかです。式は変わりますが、目標は似ているためです。
DOCUMENT END