Posts
read more
RSI(相対力指数)の計算と可視化 - Python実装
はじめに
RSI(Relative Strength Index、相対力指数)は、価格の変動の強さを測るオシレーターです。
「株価が上がりすぎたか、下がりすぎたか」を数値化し、**30以下(過売い)や70以上(過買い)**を売買のタイミングとして使います。
この記事では、RSIの計算式を理解し、Pythonでゼロから実装します。
RSIとは?
基本的な考え方
RSIは、過去n日間の値上がり幅と値下がり幅の比率を表します。
$$RSI = 100 - \frac{100}{1 + RS}$$ここで、$RS$(Relative Strength)は:
$$RS = \frac{過去n日間の平均値上がり幅}{過去n日間の平均値下がり幅}$$解釈の仕方
| RSI値 | 状態 | トレーディングの意味 |
|---|---|---|
| 70以上 | 過買い(Overbought) | 売りのサイン |
| 50 | 中立 | トレンドの転換点 |
| 30以下 | 過売い(Oversold) | 買いのサイン |
計算ステップ
- 前日比の変化を計算
- 値上がり/値下がりに分類
- 平均値上がり幅・平均値下がり幅を計算(通常は14日)
- RSを計算
- RSIを計算
Pythonでの実装
Step 1: データ取得
| |
Step 2: RSIの計算
| |
精度向上版:指数移動平均を使用
上記の単純移動平均(SMA)版RSIは簡単ですが、**指数移動平均(EMA)**を使う方が一般的です。