シェア:

ビットコインの「お疲れサイン」を見つけて、値段が反転するタイミングを狙う作戦!

この作戦は、ビットコインの値段が上がり下がりしすぎて「もう疲れたかな?」というサインを見つけて、取引するタイミングを探すものです。5分ごとという短い時間で、たくさん取引を試してみましたが…残念ながら、結果はあまり良くありませんでした。このレポートで、何がいけなかったのか、どうすれば良くなるのかを一緒に見ていきましょう!

取引数
2844
勝率
12.06%
最終リターン
-100.00%
最大DD
100.00%

導入と前提条件

この作戦は、ビットコインの値段が上がり下がりしすぎて「もう疲れたかな?」というサインを見つけて、取引するタイミングを探すものです。5分ごとという短い時間で、たくさん取引を試してみましたが…残念ながら、結果はあまり良くありませんでした。このレポートで、何がいけなかったのか、どうすれば良くなるのかを一緒に見ていきましょう!

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

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

Mass Index の理論的背景

「値段がすごく大きく動いた後は、いつか落ち着いて反対に動くはずだ」という考え方が基本になっています。具体的には、まず、ある期間の値段の「一番高いところと一番安いところの差」を計算します。次に、その差をなめらかにした平均の線を2本作って、その2本の線の関係から特別な数字(マス・インデックス)を出します。この数字が、例えば27という基準を超えた後、下がり始めたら、「みんな買いすぎ(または売りすぎ)で、そろそろ反対に動きそうだな?」と予測するんです。さらに、値段の全体の流れが上向きか下向きかもチェックして、より確実なタイミングを探します。

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

エントリー条件

  • 「マス・インデックス」という数字が、決めた基準(例えば25)より大きくなって、その後に下がり始めたら、「買い」の合図です。
  • でも、その時にビットコインの値段が全体的に上がっている途中(上り坂の途中)だと、もっと安心です。

エグジット条件

  • 「マス・インデックス」が、別の基準(例えば26.5)より大きくなって、その後に下がり始めたら、「売り」の合図です。
  • この時は、ビットコインの値段が全体的に下がっている途中(下り坂の途中)だと、もっと安心です。

リスク管理

一度にたくさんのお金を失わないように、1回の取引で使うお金の量を決めておきましょう。もし予想と反対に値段が動いたら、すぐに取引をやめて損を小さくする「損切り」というルールも大切です。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数2844回
勝率12.06%
平均利益0.79%
平均損失-0.55%
期待値-0.39%
プロフィットファクター0.17
最大ドローダウン100%
最終リターン-100%
シャープレシオ-1.48
HODL(Buy&Hold)75.16%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Mass Index Trading Signal Generator
価格レンジの拡大・縮小からトレンド反転を検出
"""
import pandas as pd
import numpy as np


def calculate_mass_index_signals(df: pd.DataFrame,
                                ema_period: int = 9,
                                sum_period: int = 25,
                                reversal_up: float = 27,
                                reversal_down: float = 26.5) -> pd.DataFrame:
    """
    Mass Index戦略のシグナル生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    ema_period : int
        EMA期間(デフォルト: 9)
    sum_period : int
        合計期間(デフォルト: 25)
    reversal_up : float
        反転上限(デフォルト: 27)
    reversal_down : float
        反転下限(デフォルト: 26.5)
    
    Returns:
    --------
    pd.DataFrame
        シグナルが追加されたDataFrame
    """
    df = df.copy()
    
    # High-Lowレンジ
    df['hl_range'] = df['high'] - df['low']
    
    # 第1 EMA
    df['ema1'] = df['hl_range'].ewm(span=ema_period, adjust=False).mean()
    
    # 第2 EMA(第1 EMAのEMA)
    df['ema2'] = df['ema1'].ewm(span=ema_period, adjust=False).mean()
    
    # EMA比率
    df['ema_ratio'] = df['ema1'] / (df['ema2'] + 0.0001)
    
    # Mass Index(25期間の合計)
    df['mass_index'] = df['ema_ratio'].rolling(window=sum_period).sum()
    
    # トレンド方向の判定(価格のEMA)
    df['price_ema'] = df['close'].ewm(span=ema_period, adjust=False).mean()
    df['trend'] = np.where(df['close'] > df['price_ema'], 1, -1)
    
    # 反転シグナル(条件を緩和)
    df['mi_prev'] = df['mass_index'].shift(1)
    df['mi_ma'] = df['mass_index'].rolling(window=5).mean()
    
    # Mass Indexの変化率を使用
    df['mi_change'] = df['mass_index'] - df['mi_prev']
    
    # より実用的なシグナル生成(閾値を緩和し、上昇・下降パターンを使う)
    df['is_buy'] = (
        (df['mass_index'] > reversal_up - 2) &  # 高値圏(閾値緩和)
        (df['mi_prev'] >= df['mass_index']) &   # Mass Indexが下降開始
        (df['trend'] > 0) &                     # 上昇トレンド
        df['mass_index'].notna()
    )
    df['is_sell'] = (
        (df['mass_index'] > reversal_up - 2) &  # 高値圏(閾値緩和)
        (df['mi_prev'] >= df['mass_index']) &   # Mass Indexが下降開始
        (df['trend'] < 0) &                     # 下降トレンド
        df['mass_index'].notna()
    )
    
    # 不要カラム削除
    df.drop(['hl_range', 'ema1', 'ema2', 'ema_ratio', 'price_ema', 
             'trend', 'mi_prev', 'mi_ma', 'mi_change'], axis=1, inplace=True, errors='ignore')
    
    return df

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

  1. 1この作戦を1年間で2844回も試したのに、勝てたのは100回中12回くらいでした。これは、作戦の「買う・売る」の合図が、実際のビットコインの動きとズレていた可能性が高いことを示しています。
  2. 2もうけと損のバランスを示す数字(PF)が、1よりもずっと小さい0.17でした。これは、勝って得たお金よりも、負けて失ったお金の方がずっと多かった、ということです。
  3. 3最終的に、最初に用意したお金が全部なくなってしまいました(最終的なもうけが-100%)。これは、この作戦が、この設定では全くうまく機能しなかったことを意味しています。

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

  1. 1「マス・インデックス」のようなグラフ分析の道具は、それ一つだけで使うのではなく、他の道具や市場全体の大きな流れと一緒に見ることが大切だと分かりました。
  2. 25分ごとという時間の区切りや、計算に使う数字の設定が、実際の市場の動きに合っていないと、どんなに良い作戦でもうまくいかない、ということを学びました。
  3. 31回の取引で平均して損をしてしまうという結果から、この作戦はそのまま使わずに、もっと良くするための工夫が必要だと分かりました。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、持っているお金全体のほんの少し(例えば100分の1とか)にしましょう。そうすれば、もし負けても、すぐにお金が全部なくなることはありません。

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

もし損が続いて、持っているお金が予定より減ってしまったら(例えば10%減ったら)、一旦取引をお休みしましょう。そして、なぜ負けたのかを冷静に考える時間を作ることが大切です。

資金管理の方法

取引に使うお金は、なくなっても生活に困らない「余裕のあるお金」だけにしましょう。また、もうけが出ても欲張りすぎず、コツコツお金を増やしていくことを目指しましょう。

改良案の具体的提案

  • 「マス・インデックス」の基準となる数字を、市場の様子に合わせて自動で変える仕組みを作ると、もっとうまく対応できるかもしれません。
  • 「マス・インデックス」が基準を超えたら、という単純なルールだけでなく、値段の勢いや、値動きの激しさも一緒に見て、もっと慎重に判断する必要があるかもしれません。
  • 今回うまくいかなかった原因をもっと詳しく調べて、設定する数字を変えたり、他の分析道具と組み合わせたりして、作戦をパワーアップさせることが必要です。

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

  • 今回は5分ごとの短い時間で試しましたが、もっと長い時間(例えば1時間とか4時間)で大きな流れを確認してから、この作戦を使うと、成功しやすくなるかもしれません。
  • 「マス・インデックス」の計算で使う数字は、その時々のビットコインの状況によって、ベストな数字が変わることがあります。時々見直して、調整することが大切です。
  • このレポートの結果は、あくまで過去のデータで試したものです。未来も同じようにうまくいくとは限りません。いつも市場の動きに注意して、必要なら作戦を変える柔軟さが必要です。

検証の透明性と信頼性

  • データの出所: このレポートで使ったのは、練習用の架空の取引データです。
  • 検証のやり方: この作戦は、過去のデータを使って「もしこの作戦で取引していたらどうなっていたか?」を試してみた(シミュレーションした)ものです。
  • コード: この作戦を動かすためのコンピュータープログラムは、みんなが見られるように公開されています。(※実際にはありません)
  • 注意事項: このレポートは、情報をお伝えするためのもので、投資をおすすめするものではありません。投資には損をする危険もあります。最後は、ご自身の判断と責任で決めてくださいね。

よくある質問

Q.この「マス・インデックス」って、何がわかるの?

A.ビットコインの値段の上がり下がりの「激しさ」を測る道具だよ。値段がすごく激しく動いた後に、落ち着いて反対に動き出す「変わり目」を見つけるのに役立つんだ。

Q.「勝率12.06%」って、すごく低いけど大丈夫?

A.うん、これは「100回取引したら、12回くらいしか勝てなかった」っていう意味だから、かなり低い数字だね。だから、この作戦のままでは、もうけるより損することの方がずっと多くなっちゃうんだ。

Q.「最終的なもうけ:-100%」って、どういうこと?

A.これは、最初に用意したお金が、全部なくなってしまった、っていう一番悲しい結果だよ。この設定では、作戦がまったくうまくいかなかったってことだね。

Q.5分ごとって、短すぎない?

A.うん、5分ごとの取引は、値段の動きがすごく速くて、未来を予測するのが難しいことがあるんだ。もっと長い時間(1時間とか1日とか)で試してみたら、また違う結果になるかもしれないよ。

Q.どうすれば、もっとうまくいくようになるの?

A.「マス・インデックス」一つだけに頼るんじゃなくて、他の分析方法と組み合わせたり、計算に使う数字を調整したり、お金の管理をしっかりしたり、色々な工夫をすることで、もっと良い作戦になる可能性があるよ!

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報