シェア:

市場の元気さに合わせて賢く動く!新しいRSI作戦

この作戦は、人気の仮想通貨「イーサリアム」を使って、5分ごとにお金の動きを見ながら、売り買いのタイミングを探す方法です。「アダプティブRSI」という特別な道具を使います。この道具は、市場が盛り上がっているか、静かかを見きわめて、売り買いのルールを自動で変えてくれる賢い仕組みなんです。

取引数
1093
勝率
39.52%
最終リターン
-98.32%
最大DD
98.43%

導入と前提条件

この作戦は、人気の仮想通貨「イーサリアム」を使って、5分ごとにお金の動きを見ながら、売り買いのタイミングを探す方法です。「アダプティブRSI」という特別な道具を使います。この道具は、市場が盛り上がっているか、静かかを見きわめて、売り買いのルールを自動で変えてくれる賢い仕組みなんです。

【検証】戦略のバックテスト概要

  • 戦略名: Adaptive RSI を使用したトレンド追従戦略
  • 対象銘柄: ETH/USDT
  • 時間足: 5m
  • 期間: 2024-10-04〜2025-08-25(324日間)
  • 初期資金: $10,000
  • 手数料・スリッページ: 0.1% / 0.1%
  • 取引所: binance

Adaptive RSI の理論的背景

ふつうの「RSI」は、最近の値段の上がり下がりを見て、「買われすぎ」か「売られすぎ」かを教えてくれる道具です。いつもは決まった期間のデータで計算します。でも、この作戦で使う「アダプティブRSI」はもっと賢いんです。「ATR」という別の道具で今の市場の元気さ(値動きの大きさ)を測って、元気なときは短い期間で、おとなしいときは長い期間でRSIを計算するように自動で変えてくれます。だから、市場の変化にすぐ気づけるようになっているんです。

具体的な売買ルール(今回の検証)

エントリー条件

  • RSIが「売られすぎだよ」というサインを出したら、買うチャンスかもしれません。
  • RSIが「買われすぎだよ」というサインを出したら、売るチャンスかもしれません。

エグジット条件

  • 買った後、RSIが「買われすぎだよ」というサインに変わったら、利益を出すために売ります。
  • 売った後、RSIが「売られすぎだよ」というサインに変わったら、利益を出すために買い戻します。

リスク管理

もし作戦がうまくいかなくても、大きな損をしないためのルールも大事です。1回の取引で損してもいい金額をあらかじめ決めておきます。もし全体の損が大きくなってきたら、いったんお休みして、作戦を見直すことも大切です。

再現手順(HowTo)

  1. Python/依存(ccxt, pandas, ta)をインストール
  2. ccxtでETH/USDTのOHLCVを取得して前処理
  3. 『Adaptive RSI』に必要な指標を算出(ta 等)
  4. 閾値・クロス条件から売買シグナルを生成
  5. 手数料・スリッページを加味して検証・評価

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数1093回
勝率39.52%
平均利益0.66%
平均損失-1.03%
期待値-0.36%
プロフィットファクター0.45
最大ドローダウン98.43%
最終リターン-98.32%
シャープレシオ-0.41
HODL(Buy&Hold)96.48%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Adaptive RSI Trading Signal Generator
RSI期間を市場ボラティリティに応じて動的に調整する戦略
"""
import pandas as pd
import numpy as np


def calculate_adaptive_rsi_signals(df: pd.DataFrame,
                                  base_period: int = 14,
                                  atr_period: int = 14,
                                  oversold: float = 30,
                                  overbought: float = 70) -> pd.DataFrame:
    """
    アダプティブRSI戦略のシグナル生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    base_period : int
        基本RSI期間(デフォルト: 14)
    atr_period : int
        ATR計算期間(デフォルト: 14)
    oversold : float
        売られ過ぎライン(デフォルト: 30)
    overbought : float
        買われ過ぎライン(デフォルト: 70)
    
    Returns:
    --------
    pd.DataFrame
        シグナルが追加されたDataFrame
    """
    df = df.copy()
    
    # ATR計算
    df['h_l'] = df['high'] - df['low']
    df['h_c'] = np.abs(df['high'] - df['close'].shift(1))
    df['l_c'] = np.abs(df['low'] - df['close'].shift(1))
    df['true_range'] = df[['h_l', 'h_c', 'l_c']].max(axis=1)
    df['atr'] = df['true_range'].rolling(window=atr_period).mean()
    
    # ATRに基づいて期間を調整(ボラティリティが高いほど短期間)
    df['atr_ratio'] = df['atr'] / df['atr'].rolling(window=50).mean()
    df['adaptive_period'] = (base_period / df['atr_ratio']).clip(5, 30).fillna(base_period).astype(int)
    
    # アダプティブRSI計算
    df['price_change'] = df['close'].diff()
    df['gain'] = df['price_change'].where(df['price_change'] > 0, 0)
    df['loss'] = -df['price_change'].where(df['price_change'] < 0, 0)
    
    # 各行で異なる期間でRSIを計算
    df['rsi'] = 0.0
    for i in range(len(df)):
        if i >= base_period:
            period = int(df.iloc[i]['adaptive_period'])
            if period > 0 and i >= period:
                avg_gain = df['gain'].iloc[i-period+1:i+1].mean()
                avg_loss = df['loss'].iloc[i-period+1:i+1].mean()
                if avg_loss != 0:
                    rs = avg_gain / avg_loss
                    df.loc[df.index[i], 'rsi'] = 100 - (100 / (1 + rs))
    
    # シグナル生成
    df['rsi_prev'] = df['rsi'].shift(1)
    df['is_buy'] = (df['rsi'] > oversold) & (df['rsi_prev'] <= oversold) & (df['rsi'] > 0)
    df['is_sell'] = (df['rsi'] < overbought) & (df['rsi_prev'] >= overbought) & (df['rsi'] > 0)
    
    # 不要カラム削除
    df.drop(['h_l', 'h_c', 'l_c', 'true_range', 'price_change', 'gain', 'loss', 
             'atr_ratio', 'adaptive_period', 'rsi_prev'], axis=1, inplace=True, errors='ignore')
    
    return df

なぜこの結果になったのか(3つの理由)

  1. 1この作戦は、市場の急な変化にもついていけるはず、と考えていました。
  2. 2でも、実際にやってみた結果(1093回取引しました)を見てみると、勝てたのは10回のうち4回くらいで、最終的には残念ながら損をしてしまいました。
  3. 3特に、持っているお金が一番減ってしまった時の減り方がとても大きくて、この作戦はこの時の市場には合っていなかったみたいです。

この結果から学べる3つの教訓

  1. 1どんなに賢そうに見える作戦でも、いつでもうまくいくわけじゃないってことがわかりました。
  2. 2「買われすぎ」や「売られすぎ」のサインだけじゃなくて、市場全体がどれくらい元気に動いているかにも注意することが大事だと学びました。
  3. 3昔のデータでうまくいったからといって、これからも同じようにうまくいくとは限らない、ということを知りました。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、持っているお金全体の1%や2%のように、ごく一部に決めておきます。こうすれば、もし負けてもダメージは小さくてすみます。

損失が大きくなったときの対処法

もし、持っているお金全体が10%や20%のように大きく減ってしまったら、一度取引をお休みします。そして、作戦が今の市場に合っているか、じっくり考え直します。

資金管理の方法

取引で勝って増えたお金は、全部次の取引に使わずに、一部は貯金しておきます。そうすれば、もしもの時に助かりますし、落ち着いて次のチャンスをねらえます。

改良案の具体的提案

  • RSIのサインが出たときに、他の道具(例えば、値段の平均を表す線など)も見て、「本当に今がチャンスかな?」ともう一度確認するようにします。
  • 市場の動きが激しいときは少しだけ取引して、おとなしいときはもう少し多めに取引するなど、取引する量を調整してみます。
  • この作戦が、どんなとき(値段が上がっているとき、下がっているときなど)に特にうまくいかないのかを調べて、ルールを変えたり新しいルールを追加したりします。

実用性の向上(運用上の注意)

  • この作戦は5分ごとの短い時間で判断するので、画面をよく見て、すばやく行動する必要があります。
  • 実際に自分のお金で試す前に、昔のデータを使って「もしこの作戦を使っていたらどうなっていたかな?」と練習(バックテスト)してみることがすごく大切です。
  • 市場は生き物みたいにいつも変わるので、一度決めたルールがずっと正しいわけではありません。時々、作戦を見直すことも忘れないでください。

検証の透明性と信頼性

  • データの出所: この結果は、「イーサリアム(ETH/USDT)」という仮想通貨の5分ごとの値動きのデータ(2024年10月4日から2025年8月25日まで)を元にしています。
  • 検証のやり方: パソコンのプログラムを使って、昔のデータでこの作戦を試したらどうなったか(バックテスト)を調べました。RSIの計算の基本になる数字は14、売られすぎのラインは30、買われすぎのラインは70に設定しました。
  • コード: このテストに使ったプログラムの詳しい内容は、見られるようになっています。
  • 注意事項: この結果は、あくまで昔のデータで試したものです。未来も同じようにうまくいくとは限りません。お金を実際に使うときは、自分でよく考えて、自分の責任で行ってくださいね。

よくある質問

Q.RSIって何?

A.「今の値段は、買われすぎかな?それとも売られすぎかな?」という、相場の元気度を教えてくれるメーターみたいなものだよ。

Q.「買われすぎ」「売られすぎ」ってどういう意味?

A.「買われすぎ」は、みんながたくさん買って値段が上がりすぎたから、そろそろ下がるかも?という状態。「売られすぎ」は、みんながたくさん売って値段が下がりすぎたから、そろそろ上がるかも?という状態のことだよ。

Q.ATRって何?

A.その仮想通貨が、最近どれくらい激しく動いているか、値動きの大きさを測る道具だよ。

Q.この作戦で勝てなかったのはどうして?

A.市場の動きと作戦の相性が悪かったのかもしれないし、作戦で使った設定の数字が合っていなかったのかもしれない。理由は一つじゃないことが多いんだ。

Q.どうすればもっと勝てるようになるの?

A.RSIだけじゃなくて他の道具も一緒に使ったり、取引するお金の量を調整したり、色々な工夫を試してみることが大切だよ。

Q.検証に使用した期間と時間足は?

A.5m足で検証しました。期間は記事内の概要をご確認ください。

Q.最終リターンと最大ドローダウンは?

A.最終リターンは-98.32%、最大DDは98.43%です。

Q.勝率やPFはどの程度?

A.勝率は39.52%、プロフィットファクターは0.45です。

Q.HODLとの比較結果は?

A.HODLは96.48%でした。記事内の比較表をご覧ください。

Q.手数料やスリッページは考慮済み?

A.はい。バックテスト設定の手数料・スリッページを損益に反映しています。

Q.市場環境はトレンド/レンジどちらに近かった?

A.期間中はトレンド優勢と推測されます。

Q.この戦略は初心者でも扱える?

A.基礎的な指標と検証環境の知識があれば扱えます。まずは少額・デモから。

Q.推奨のリスク管理は?

A.最大DDを踏まえた損切り・ポジションサイジングと、システム停止基準の設定を推奨します。

Q.将来の結果は期待できる?

A.過去の結果は将来を保証しません。市場環境やパラメータ適合性に大きく依存します。

Q.改良の方向性は?

A.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。

著者情報