RSIと移動平均はどのように計算されるか

RSIと移動平均の計算手順と前提を学びます。

RSIと移動平均はどのように計算されるか

直接の答え

RSIと移動平均はいずれも価格の時系列データから計算されますが、やり方は異なります。移動平均は、選択したウィンドウ内の直近の値を平均することで価格を平滑化します。RSI(Relative Strength Index:相対力指数)は、参照期間(lookback window)と特定の平滑化手法(多くの場合Wilderの平滑化)を用いて、直近の上昇と下落の変化を0〜100の範囲に収まるスコアへ変換します。

正確に計算するには、(1) 使用する価格系列(例:終値)、(2) 時間刻みまたはデータ頻度(例:日足バー)、(3) 指標パラメータ(RSIの参照期間の長さ、移動平均のウィンドウ長と平均化手法)が必要です。これらの前提を選ぶと、両方の計算は決定論的になり、同じ入力系列から再計算することで独立に検証できます。

メカニズムまたは定義

移動平均:何を平均するのか

移動平均は、各時点で固定数の直近の観測値を平均することで、平滑化された値を生成します。

  • 単純移動平均(SMA):直近* N *本の価格値の算術平均。
  • 指数移動平均(EMA):直近の価格により大きな重みを与える加重移動平均で、平滑化係数によって定義されます。

異なるプラットフォームではEMAの細部がわずかに異なる場合があるため、検証で重要なのは同じ定義とパラメータを使うことです。

SMAの式

P_tを時刻tで選択した価格(一般的には終値)とします。ウィンドウ長Nに対して、十分なデータがあるときの時刻tのSMAは次の通りです:

SMA(t) = (P_t + P_{t-1} + … + P_{t-N+1}) / N

つまり、最初のSMA値には少なくともN個の価格ポイントが必要で、その後のSMA値は1つの時間刻みずつ前へスライドします。

EMAの考え方と一般的な形

EMAは、前のEMA値と現在の価格を用いて再帰的に表すことができます。よく使われる形は次の通りです:

EMA(t) = EMA(t−1) + α × (P_t − EMA(t−1))

ここでαは、選択した長さNから決まる平滑化係数です。典型的には**α = 2 / (N + 1)**ですが、初期化や慣習が少し異なるツールもあります。独立したチェックでは、比較対象の計算機で使われているEMAの厳密な定義と開始ルールを一致させる必要があります。

RSI:上昇幅と下落幅を0〜100のスコアに変換する

RSIは、直近の上向きの変化と下向きの変化の相対的な大きさを測定します。古典的なアプローチでは、連続する差分を用い、それを**gains(上昇)losses(下落)**に分けます。

価格系列をP_tとします。変化を次で定義します:

Δ_t = P_t − P_{t-1}

そして次を定義します:

  • Gain_t = max(Δ_t, 0)
  • Loss_t = max(−Δ_t, 0)

その後、RSIは参照期間の長さNにわたって、(バリアントによっては)平滑化された平均(または単純平均)を計算します。

相対力とRSIの式

ウィンドウ内で平均の上昇幅と平均の下落幅を(選択した平滑化手法で)計算し、次のようにします:

RS = AvgGain / AvgLoss

RSI = 100 − (100 / (1 + RS))

正しい計算のために重要な2つのエッジケースがあります:

  • AvgLoss = 0なら、RSは無限大となり、RSIは実質的に100です。
  • AvgGain = 0なら、RS = 0となり、RSIは0です。

これらのケースは、選択した定義のもとで参照期間内に「下落がない」または「上昇がない」ことを示すときに起こります。

Wilder型の平滑化(一般的なRSIの慣習)

広く使われているRSIの方法では、上昇幅と下落幅にWilder’s smoothingを適用します:

  • 時刻t = Nの最初の平均では、最初のN個の上昇幅と下落幅について単純平均を使う。
  • その後は再帰的に更新する。

よくある更新ルールは次の通りです:

AvgGain(t) = (AvgGain(t−1) × (N−1) + Gain_t) / N

AvgLoss(t) = (AvgLoss(t−1) × (N−1) + Loss_t) / N

これらの平均が得られたら、上記のRSとRSIの式を使ってRSIを計算します。

EMAと同様に、検証で重要なのは、テストしているツールが使う厳密な平滑化と初期化の挙動を一致させることです。

証拠または例(明示的な前提つき)

例の前提

次のように仮定します:

  1. **close(終値)**を使う。
  2. 指標は、1つの固定した時間刻みを持つバー系列で計算する。
  3. RSIはlookback N = 14で、Wilder-style smoothingを使う。
  4. 移動平均は、window N = 20SMAとする。

ここで、移動平均のための小さな例示用の価格系列を定義します(デモのための値のみ):

時刻t = 1…20に対して、終値がP_1, P_2, …, P_20だとします。

  • **SMA(20)**は (P_1 + P_2 + … + P_20) / 20 に等しい。
  • **SMA(21)**は (P_2 + P_3 + … + P_21) / 20 に等しい。

このスライドする性質が、移動平均計算の核心です。

RSIの計算手順

時刻tでRSIを計算するには、次が必要です:

  1. 差分 Δ_t = P_t − P_{t−1}
  2. 上昇と下落 Gain_t = max(Δ_t, 0)Loss_t = max(−Δ_t, 0)
  3. 選択した平滑化ルールによる平滑化平均 AvgGain(t)AvgLoss(t)
  4. RSとRSI:
    • RS = AvgGain / AvgLoss
    • RSI = 100 − (100 / (1 + RS))

数値を代入しなくても、検証のロジックは同じです。同じP_t系列から始め、同じ定義を適用し、同じ初期平均を使えば、指標実装と同じRSI結果が得られるはずです。

制限とリスク

データ慣習への指標の感度

RSIと移動平均はいずれも計算の慣習に敏感です:

  • 入力する価格(close、open、typical priceなど)の選択。
  • データ頻度と、欠けたバーの扱い。
  • ウィンドウ長と平滑化手法(特にRSIの平滑化とEMAの初期化)。

ある実装が異なる慣習を使っている場合、式が似て見えても出力は異なることがあります。

失敗パターンとエッジケース

主な制限には次が含まれます:

  • 初期期間の挙動:十分なデータポイントが揃う前は、RSIと移動平均は未定義になったり、特別な初期化ルールで計算されたりすることがあります。
  • ゼロ除算(RSI):平均の下落がゼロならRSIは100になります。平均の上昇がゼロならRSIは0になります。これらの結果は、より広い意味での市場状況というより、ウィンドウ内の変化系列に「変動がない」ことを反映している場合があります。
  • パラメータへの過剰適合:RSIと移動平均は長さを調整すると変化します。あるパラメータセットに依存するモデルや解釈は、一般化できない可能性があります。

誤解のリスク

RSIは相対的な上昇幅と下落幅から構成されるオシレーターであり、移動平均は価格の平滑化です。どちらも、将来の価格変動についての本質的な単独の証明にはなりません。誰かが「その関係が存在する」と主張しても、その同じ関係が後になっても成り立つことは保証されません。

検証または次の質問

計算を独立に検証する方法

RSIと移動平均を自分で検証するには:

  1. チャートツールと同じ価格系列と時間刻みを使います。
外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。