値段の勢いが変わるのをねらえ!「RSIリバーサル」作戦
「RSIリバーサル」っていうのは、コインの値段が「上がりすぎ」たり「下がりすぎ」たりしたときに、「そろそろ反対に動くんじゃないかな?」と予想して取引する作戦のことです。今回は、XRP/USDTというコインの組み合わせで、この作戦を試したらどうなったのかを、分かりやすく説明しますね。
導入と前提条件
「RSIリバーサル」っていうのは、コインの値段が「上がりすぎ」たり「下がりすぎ」たりしたときに、「そろそろ反対に動くんじゃないかな?」と予想して取引する作戦のことです。今回は、XRP/USDTというコインの組み合わせで、この作戦を試したらどうなったのかを、分かりやすく説明しますね。
【検証】戦略のバックテスト概要
- 戦略名: RSI Reversal を使用したトレンド追従戦略
- 対象銘柄: XRP/USDT
- 時間足: 1h
- 期間: 2024-10-02〜2025-08-25(326日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: binance
RSI Reversal の理論的背景
この作戦の基本的な考え方は、「やりすぎは元に戻る」というものです。値段が急に上がったり下がったりすると、一時的に「買われすぎ」や「売られすぎ」という、ちょっとやりすぎな状態になります。でも、多くの場合、しばらくすると落ち着いて、元のちょうどいい値段のあたりに戻ってきやすいんです。この作戦は、その「やりすぎ」の瞬間を見つけて、値段が元に戻ろうとするタイミングで取引をして、利益をねらう方法です。
具体的な売買ルール(今回の検証)
エントリー条件
- いつ買うか:RSIメーターが「売られすぎ」の30より下から、30の上に戻ってきたとき。
- いつ売るか:RSIメーターが「買われすぎ」の70より上から、70の下に戻ってきたとき。
エグジット条件
- もうかった時:ある程度もうけが出たら、取引を終わらせます。「やった!」と思ったら欲張りすぎずにやめるのがコツです。
- 損しそうな時:もし予想と反対に値段が動いて損が出始めたら、それ以上損が大きくならないうちに取引を終わらせます。これを「損切り」と言います。
リスク管理
一度にたくさんのお金を使わないことが大切です。持っているお金のほんの一部だけを使って取引します。もし予想がはずれても、傷が浅いうちに「損切り」をして、大きな失敗を防ぎます。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでXRP/USDTのOHLCVを取得して前処理
- 『RSI Reversal』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 91回 |
勝率 | 56.04% |
平均利益 | 3.26% |
平均損失 | -3.51% |
期待値 | 0.29% |
プロフィットファクター | 1.1 |
最大ドローダウン | 55.08% |
最終リターン | 17.66% |
シャープレシオ | 0.1 |
HODL(Buy&Hold) | 400.08% |
HODL戦略との比較
実装コード(Python)
"""
RSI Reversal Trading Signal Generator
RSI(相対力指数)を使用した逆張り戦略
"""
import pandas as pd
import numpy as np
def calculate_rsi(df: pd.DataFrame, period: int = 14) -> pd.Series:
"""
RSI(相対力指数)を計算
Parameters:
-----------
df : pd.DataFrame
OHLCVデータ
period : int
RSI計算期間
Returns:
--------
pd.Series
RSI値
"""
close = df['close']
delta = close.diff()
gain = delta.where(delta > 0, 0)
loss = -delta.where(delta < 0, 0)
avg_gain = gain.rolling(window=period, min_periods=period).mean()
avg_loss = loss.rolling(window=period, min_periods=period).mean()
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi
def calculate_rsi_signals(df: pd.DataFrame,
rsi_period: int = 14,
oversold_level: int = 30,
overbought_level: int = 70) -> pd.DataFrame:
"""
RSI逆張り戦略のシグナル生成
Parameters:
-----------
df : pd.DataFrame
OHLCVデータ(最低限 'close' カラムが必要)
rsi_period : int
RSI計算期間(デフォルト: 14)
oversold_level : int
売られすぎレベル(デフォルト: 30)
overbought_level : int
買われすぎレベル(デフォルト: 70)
Returns:
--------
pd.DataFrame
以下のカラムが追加されたDataFrame:
- rsi: RSI値
- is_buy: 買いシグナル (bool)
- is_sell: 売りシグナル (bool)
"""
df = df.copy()
# RSI計算
df['rsi'] = calculate_rsi(df, period=rsi_period)
# 前日のRSI
df['rsi_prev'] = df['rsi'].shift(1)
# 買いシグナル: RSIが売られすぎレベルを下から上にクロス
df['is_buy'] = (
(df['rsi'] > oversold_level) &
(df['rsi_prev'] <= oversold_level) &
df['rsi'].notna()
)
# 売りシグナル: RSIが買われすぎレベルを上から下にクロス
df['is_sell'] = (
(df['rsi'] < overbought_level) &
(df['rsi_prev'] >= overbought_level) &
df['rsi'].notna()
)
# 不要な中間カラムを削除
df.drop(['rsi_prev'], axis=1, inplace=True)
return df
なぜこの結果になったのか(3つの理由)
- 1昔のデータを見ると、RSIが30より下がった後、元気を取り戻して70より上に上がることがよくあったからです。
- 2同じように、RSIが70より上がった後、勢いがなくなって30より下に下がることがよくあったからです。
- 31時間ごとの値動きを見るという、短い時間での変化を見つけやすいやり方で調べたからです。
この結果から学べる3つの教訓
- 1値段の勢いが強すぎたり弱すぎたりすると、その反対の動きが起こりやすい、ということが分かります。
- 2RSIのような道具を使うと、自分の勘だけでなく、データを見て「買う」「売る」のタイミングを決められるようになります。
- 3「やりすぎ」をねらう作戦は、うまくいくと利益が出やすいですが、反対に大きな損をしてしまう危険もある、ということが学べます。
リスク管理の具体的手法
取引量の決め方
一回の取引で使うお金は、持っているお小遣い全部ではなく、例えば2%だけ、というように前もって決めておきます。そうすれば、もし負けても、次またチャレンジできます。
損失が大きくなったときの対処法
もし「やばい、思ってたのと違う動きだ!」と損が大きくなってきたら、すぐに取引をやめます。これが「損切り」です。これ以上損がふくらむのを防ぐ、とても大事なルールです。
資金管理の方法
取引でうまくお金が増えたら、そのお金の管理も大切です。全部を次の取引に使わずに、一部はちゃんと貯金するなど、自分のお金全体を上手にコントロールすることを目指しましょう。
改良案の具体的提案
- RSIだけでなく、他の道具(例えば「移動平均線」など)も一緒に使って、もっと確実なタイミングを探してみる。
- 「いくらもうかったらやめるか」「いくら損したらやめるか」のルールを、もっとはっきり決めて、成績アップをねらう。
- 他のコインや、見る時間を変えてみて、この作戦が別の場面でもうまくいくか試してみる。
実用性の向上(運用上の注意)
- RSIのメーターが30や70の線をちょっとだけ超えたくらいで焦ってはいけません。しっかり線を突き抜けて戻ってきたのを確認してから、取引を考えるのがおすすめです。
- この作戦のサインだけに頼らず、世の中のニュースや、グラフ全体の大きな流れも見ておくと、もっと上手に判断できるかもしれません。
- いきなり自分のお金で試すのではなく、まずは昔のデータを使って「この作戦、本当にうまくいったのかな?」とお試し(バックテスト)をしてみることが、とっても大切です。
検証の透明性と信頼性
- データの出所: この分析で使ったのは、XRP/USDTという仮想通貨の、過去の実際の値段のデータです。
- 検証のやり方: 昔の値段のデータを使って、この作戦通りに取引していたら「いくらもうかったか」「いくら損したか」をまじめに計算して、成績を調べました。
- コード: この計算をするために使ったコンピュータのプログラムは、誰でも見られるように公開されています。
- 注意事項: これは「こうすれば絶対もうかるよ!」というお話ではありません。投資は、自分のお金が減ってしまうこともある、ということを忘れないでください。最後は、自分でよーく考えて決めてくださいね。