移動平均
出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動平均(いどうへいきん、Moving Average)とは、金融やテクニカル分析における時系列データの統計的分析手法の1つ。移動積分ともいう。
移動平均は任意の時系列について計算できるが、主に株式・為替・先物取引等で適用される。移動平均は短期的な変動を平滑化し、長期的な傾向や周期を明らかにする。短期と長期の分岐点はその応用目的や移動平均を計算する際のパラメータ設定などによる。
数学的には、移動平均は畳み込みの一例である。また、信号処理におけるローパスフィルタにも似ている。
目次 |
[編集] 単純移動平均
単純移動平均(Simple Moving Average; SMA)は、直近の n 個のデータの重み付けのない単純な平均である。例えば、10日間の終値の単純移動平均とは、直近の10日間の終値の平均である。それら終値を <math>p_{M}</math>, <math>p_{M-1}</math>... <math>p_{M-9}</math> とすると、単純移動平均を求める式は次のようになる:
- <math>SMA = { p_{M} + p_{M-1} + \cdots + p_{M-9} \over 10 }</math>
翌日の単純移動平均を求めるには、新たな終値を加え、一番古い終値を除けばよい。この計算は改めて総和を求めなおす必要はない。
- <math>SMA_{today} = SMA_{yesterday} - {p_{M-n+1} \over n} + {p_{M+1} \over n}</math>
テクニカル分析では様々な n の値が良く使われる(10日、40日、200日など)。期間の選択は注目している動きの種類に依存する。すなわち短期間の動きなのか、中期間の動きなのか、長期間の動きなのか、である。いずれにしても、移動平均線は、市場が上昇傾向にある場合は支えとして働き、下降傾向にある場合は抵抗として働く。
一般に移動平均線は実際の動きから少し遅れて平滑化した上で追随する。SMA をあまりに長期間の平均を取るようにすると、現在の平均的な価格からかけ離れた古い価格の影響を受けすぎることがある。これに対処するために考案された、最近の価格に大きな重み付けを与える方式として、後述するWMAとEMAがある。
SMAの特徴として、データに周期的変動があるとき、その周期でSMAを求めると周期が平滑化される。しかし、経済や金融では完全な周期的変動が生じることはほとんどない<ref>Statistical Analysis, Ya-lun Chou, Holt International, 1975, ISBN 0030894220 , section 17.9.</ref>。
[編集] 加重移動平均
加重平均とは個々のデータに異なる重みをつけて平均を計算するものである。しかし、テクニカル分析では加重移動平均(Weighted Moving Average; WMA)は、ある特定の算術的方針で重みを徐々に減らす手法を指す。n日間のWMAでは、最も現在に近い日の重みを n とし、その前日を n-1、などと重みを減らしていって、最終的にゼロにする。
- <math>WMA_{M} = { n p_{M} + (n-1) p_{M-1} + \cdots + 2 p_{M-n+2} + p_{M-n+1} \over n + (n-1) + \cdots + 2 + 1}</math>
翌日のWMAを計算するには、<math>WMA_{M+1}</math> と <math>WMA_{M}</math> の分子(numerator)の差分が <math>n p_{M+1} - p_{M} - \cdots - p_{M-n+1}</math> であることに注目する。ここで、<math>p_{M} + \cdots + p_{M-n+1}</math> の総和を <math>Total_{M}</math> で表すと、次のようになる:
- <math>Total_{M+1} = Total_{M} + p_{M+1} - p_{M-n+1}</math>
- <math>Numerator_{M+1} = Numerator_{M} + n p_{M+1} - Total_{M}</math>
- <math>WMA_{M+1} = { Numerator_{M+1} \over n + (n-1) + \cdots + 2 + 1}</math>
分母は三角数なので、<math>n(n+1)\over2</math> で簡単に計算できる。
右図はWMAでの重み付けがどのように変化(減少)するかを示したものである。後述の指数平滑移動平均での重み付けと比較されたい。
[編集] 指数加重移動平均
指数加重移動平均(Exponentially Weighted Moving Average; EMA または EWMA)は、指数関数的に重み付けを減少させる。指数関数的に減少する重み付けは、最近のデータを重視すると共に古いデータを完全には切り捨てない。右図は重み付けの減少する様子を表したものである。なお、EMA は移動平均とは呼べないとする立場もあり、その場合は指数平滑平均(Exponential Average)と呼ぶ。
重み付けの減少度合いは「平滑化係数」と呼ばれる 0 と 1 の間の値をとる定数 α で決定される。α は百分率で表現されることもあり、平滑化係数が 10% というのは α=0.1 と同じことを表している。αを時系列区間 N で表すこともあり、その場合は <math>\alpha={2\over{N+1}}</math> となる。例えば、N=19 なら α=0.1 となる。
時系列上のある時点 t の値を Yt で表し、ある時点 t での EMA を St で表す。S1 は未定義である。S2 の値をどう設定するかはいくつかの手法があり、典型的な手法として S2 の値を Y1 とすることもあるが、他の手法として S2 を時系列上最初の4つか5つのデータの平均とする場合もある。α が小さい場合、S2 をどう設定するかが比較的重要となるが、αが大きい場合は古い値の重要度が低くなる傾向がある。
t≥2 の場合の EMA の計算式は次のようになる<ref>NIST/SEMATECH e-Handbook of Statistical Methods: Single Exponential Smoothing アメリカ国立標準技術研究所</ref>
- <math>S_{t} = \alpha \times Y_{t-1} + (1-\alpha) \times S_{t-1}</math>
この計算式は Hunter (1986)によるものである<ref>NIST/SEMATECH e-Handbook of Statistical Methods: Single Exponential Smoothing アメリカ国立標準技術研究所</ref>。Roberts (1959) では Yt-1 の代わりに Yt を使っていた<ref>NIST/SEMATECH e-Handbook of Statistical Methods: EWMA Control Charts アメリカ国立標準技術研究所</ref>。
この式をテクニカル分析の用語を使って表すと次のようになる。用語が違うだけで同じ式である。<ref name="stockcharts">Moving Averages page at StockCharts.com</ref>
- <math>EMA_{today} = EMA_{yesterday} + \alpha \times (price - EMA_{yesterday})</math>
この式で <math>EMA_{yesterday}</math> を展開すると以下のようなべき級数となり、各時点の価格 <math>p_1</math>, <math>p_2</math> などなどが指数関数的に重み付けされている。
- <math>EMA = { p_1 + (1-\alpha) p_2 + (1-\alpha)^2 p_3 + (1-\alpha)^3 p_4 + \cdots \over 1 + (1-\alpha) + (1-\alpha)^2 + (1-\alpha)^3 + \cdots }</math>
理論上、これは総和であるが、1-α が 1より小さいため、項はどんどん小さくなってある時点で無視できる大きさになる。また分母は 1/α に近づいていくので(幾何級数のテイラー展開)、分子の無視しない項数を十分に大きくとれば、分母を正確に計算する代わりに 1/α を使うことができる。
N日間のEMAと言った場合の N は単にα係数を示すに過ぎない。計算はN日間のデータだけでは済まない。ただし、直近のN日間のデータはEMAにおいて86%の重みを持つ。
上のべき級数の式を使って最初のある日のEMAを計算し、その翌日以降は最初のほうで示した式を使えばよい。
初期値の重要性の問題に再度触れる。古いデータに極めて大きな値があった場合、たとえその重み付けが小さくても全体には大きな影響を与える。価格変動がそれほど大きくないと仮定するなら、重み付けだけを考慮してある項目数 k までで計算をやめればよい。この場合省略される項目は <math>(1-\alpha)^k + (1-\alpha)^{k+1} + \cdots</math> であり、変形すると <math>(1-\alpha)^k \times (1 + (1-\alpha) + (1-\alpha)^2 \cdots)</math> となる。すなわち、全体の重みを 1 としたとき <math>{(1-\alpha)^k \over \alpha}</math> という部分が省略されることになる。
99.9% の正確さ(重み付け)を求める場合、<math>k={ \log (0.001 \times \alpha) \over \log (1-\alpha)}</math> となるよう k を設定して計算する項目数を決定する。ここで、<math>\log\,(1-\alpha)</math> は N が増えるに従って <math>-2 \over N+1</math> に近づいていくので、おおよそ <math>k=3.45\times(N+1)</math> とすればほぼ 99.9% の正確さとなる。
なお、<math>\alpha={2\over{N+1}}</math> ではなく <math>\alpha={1\over{N}}</math> とするEMAもある。
[編集] 関連項目
[編集] 罫線表の種類
- 価格の変動を表す罫線表
- その他の罫線表
[編集] 参考文献
<references/>
[編集] 外部リンク
- Moving Averages at Investopedia
- Moving Average Code Implementation
- Infoseek マネー
- Yahoo!ファイナンス
- Alpha Chart( 総合株価チャートソフト )
- 株式会社QUICKマーケット情報

