RSIを使った株トレードの勝率をバックテストして検証する

このページには広告が含まれています。
AD

RSIは0~100%の範囲で数値が変動し、30%以下で売られすぎ、70%以上で買われすぎと判断されることが一般的ですが、設定する期間を変更するとそれに伴ってRSIの最大値・最小値が変わり売買シグナルを判断できなくなります。

その問題を解決するためにこちらの記事でRSIの期間を変えることで変動してしまう売買シグナルラインの最適値を計算しました。

今回はこれらの数値を使ってバックテストをしたら成績がどう変化するのかを検証していきます。

AD

検証方法について

通常はRSIだけでなく他のインジケーターを組み合わせることでより良い結果を得られますが、今回はRSI単体で考えたときにどの程度のパフォーマンスが出るのかを検証していきます。

上述ページの数値を使い、RSIが買いシグナルラインを下回ったら翌日の始値で買い、売りシグナルラインを上回ったら翌日の始値で売ったときの勝率や損益を集計します。

買いシグナルが連日続いた場合、2日目以降は売りシグナルが出るまで無視し、売買が重複しないようにしています。

資金100万円の単利売買で手数料は考慮せず、銘柄は検証時点での日経225採用銘柄です。(データ範囲は2010年1月1日~2023年12月31日)

検証するRSI期間は2~75日ですが、データを全て掲載するとページが大変なことになるので一部に絞って掲載します。

尚、Pythonを使った自作コードで検証しているため不正確な結果になっている可能性があることに注意してください。

AD

検証結果

どの期間でも高い勝率で利益がプラスになっています。

期間が増えるごとに取引数が減っていき、それに伴い勝率とプロフィットファクターが改善していくようです。

単純に取引数が減るため純利益も減っていきますが、期間13日辺りから2015~16年のチャイナショックと2020年のコロナショックによる影響が無くなっていくのが不思議です。

どの期間でも勝率が6割を超えてある程度利益が出てるため一見良さそうですが、日経225銘柄でバックテストしていることもあり線グラフにしてみると日経平均株価に連動しているだけということが分かります。ですのでそれ以外の銘柄で検証すると全然違う成績になる可能性はあります。

もしRSIを使う場合、短期期間であればテクニカル・ファンダメンタルズ・世界情勢など様々な角度から大まかな相場の方向を読み、大きな上昇相場のときは買い、大きな下落相場のときは売りで使うと高いパフォーマンスを得られると思います。

また、長期期間に設定する場合は◯◯ショックなどによる大きな株価変動に左右されない可能性があるので、長期投資をするときの参考指標として使えるかもしれません。

RSI 期間2日

全トレード数: 85051
勝ちトレード数: 53156/負けトレード数: 31895
勝率: 62.50%/負率: 37.50%
利益: 2170390円/損失: -1685244円
純利益: 485147円
勝ちトレード平均利益: 1010円/負けトレード平均損失: 1516円
勝ちトレード最大利益: 15111円/負けトレード最大損失: 46260円
プロフィットファクター: 1.288

RSI 期間5日

全トレード数: 24499
勝ちトレード数: 16228/負けトレード数: 8271
勝率: 66.24%/負率: 33.76%
利益: 1284027円/損失: -824523円
純利益: 459504円
勝ちトレード平均利益: 687円/負けトレード平均損失: 1088円
勝ちトレード最大利益: 19949円/負けトレード最大損失: 33344円
プロフィットファクター: 1.557

RSI 期間10日

全トレード数: 7403
勝ちトレード数: 5143/負けトレード数: 2260
勝率: 69.47%/負率: 30.53%
利益: 862799円/損失: -358749円
純利益: 504051円
勝ちトレード平均利益: 682円/負けトレード平均損失: 875円
勝ちトレード最大利益: 25227円/負けトレード最大損失: 17000円
プロフィットファクター: 2.405

RSI 期間15日

全トレード数: 2834
勝ちトレード数: 2021/負けトレード数: 813
勝率: 71.31%/負率: 28.69%
利益: 665594円/損失: -165297円
純利益: 500297円
勝ちトレード平均利益: 887円/負けトレード平均損失: 719円
勝ちトレード最大利益: 47730円/負けトレード最大損失: 6925円
プロフィットファクター: 4.027

RSI 期間20日

全トレード数: 1274
勝ちトレード数: 965/負けトレード数: 309
勝率: 75.75%/負率: 24.25%
利益: 484697円/損失: -74407円
純利益: 410290円
勝ちトレード平均利益: 983円/負けトレード平均損失: 625円
勝ちトレード最大利益: 41154円/負けトレード最大損失: 5540円
プロフィットファクター: 6.514

RSI 期間25日

全トレード数: 712
勝ちトレード数: 571/負けトレード数: 141
勝率: 80.20%/負率: 19.80%
利益: 370914円/損失: -33130円
純利益: 337784円
勝ちトレード平均利益: 1104円/負けトレード平均損失: 552円
勝ちトレード最大利益: 25700円/負けトレード最大損失: 3293円
プロフィットファクター: 11.196

RSI 期間50日

全トレード数: 166
勝ちトレード数: 147/負けトレード数: 19
勝率: 88.55%/負率: 11.45%
利益: 161573円/損失: -3161円
純利益: 158412円
勝ちトレード平均利益: 1381円/負けトレード平均損失: 263円
勝ちトレード最大利益: 15902円/負けトレード最大損失: 904円
プロフィットファクター: 51.118

RSI 期間75日

全トレード数: 93
勝ちトレード数: 79/負けトレード数: 14
勝率: 84.95%/負率: 15.05%
利益: 110022円/損失: -8166円
純利益: 101855円
勝ちトレード平均利益: 1487円/負けトレード平均損失: 742円
勝ちトレード最大利益: 20553円/負けトレード最大損失: 5318円
プロフィットファクター: 13.473

コメント