シェア:

【なんで?】仮想通貨イーサリアムで試した作戦、お金が99%なくなっちゃった!

こんにちは!今回は、仮想通貨の「イーサリアム」で、「1日の値動きの勢い」を使った取引の作戦を310日間試してみました。結果は、なんと大切なお金が約99%もなくなってしまう大失敗でした。どうしてこんなことになってしまったのか、その理由と学んだことを、みんなに分かりやすくお話ししますね。

取引数
1121
勝率
35.24%
最終リターン
-98.92%
最大DD
98.93%

導入と前提条件

こんにちは!今回は、仮想通貨の「イーサリアム」で、「1日の値動きの勢い」を使った取引の作戦を310日間試してみました。結果は、なんと大切なお金が約99%もなくなってしまう大失敗でした。どうしてこんなことになってしまったのか、その理由と学んだことを、みんなに分かりやすくお話ししますね。

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

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

Intraday Momentum Index の理論的背景

今回使った「Intraday Momentum Index(IMI)」という道具は、その日の値段が上がった勢いと下がった勢いを比べて、今の勢いを数字で教えてくれるものです。この数字が低すぎたら「売られすぎ」、高すぎたら「買われすぎ」と判断します。そして、値段の動きとこの道具の数字の動きがちぐはぐになった時も、取引のチャンスかもしれない、と考えて作戦を立てました。

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

エントリー条件

  • 道具の数字が「売られすぎ」のラインより下になった後、またラインの上に戻ってきたら買います。
  • 値段は下がっているのに、道具の数字は上がっている、という不思議な状況になったら買います。これは「これから上がるかも!」というサインです。

エグジット条件

  • 道具の数字が「買われすぎ」のラインより上になった後、またラインの下に戻ってきたら売ります。
  • 値段は上がっているのに、道具の数字は下がっている、という不思議な状況になったら売ります。これは「これから下がるかも!」というサインです。

リスク管理

今回の失敗の大きな原因は、「大損しないための工夫」が足りなかったことです。例えば、「一回の取引で損してもいいのはここまで」とか、「全体のお金がこれ以上減ったら一旦ストップする」といった大事なルールを決めていませんでした。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数1121回
勝率35.24%
平均利益0.6%
平均損失-0.93%
期待値-0.39%
プロフィットファクター0.37
最大ドローダウン98.93%
最終リターン-98.92%
シャープレシオ-0.46
HODL(Buy&Hold)77.92%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Intraday Momentum Index Trading Signal Generator
日中の価格動向から短期モメンタムを測定
"""
import pandas as pd
import numpy as np


def calculate_imi_signals(df: pd.DataFrame,
                         period: int = 14,
                         oversold: float = 30,
                         overbought: float = 70) -> pd.DataFrame:
    """
    Intraday Momentum Index戦略のシグナル生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    period : int
        IMI計算期間(デフォルト: 14)
    oversold : float
        売られ過ぎライン(デフォルト: 30)
    overbought : float
        買われ過ぎライン(デフォルト: 70)
    
    Returns:
    --------
    pd.DataFrame
        シグナルが追加されたDataFrame
    """
    df = df.copy()
    
    # 日中の価格変動
    df['intraday_change'] = df['close'] - df['open']
    
    # 上昇・下降の分離
    df['gains'] = np.where(df['intraday_change'] > 0, df['intraday_change'], 0)
    df['losses'] = np.where(df['intraday_change'] < 0, -df['intraday_change'], 0)
    
    # 期間内の合計
    df['sum_gains'] = df['gains'].rolling(window=period).sum()
    df['sum_losses'] = df['losses'].rolling(window=period).sum()
    
    # IMI計算
    df['imi'] = 100 * df['sum_gains'] / (df['sum_gains'] + df['sum_losses'] + 0.0001)
    
    # IMIの移動平均(スムージング)
    df['imi_ma'] = df['imi'].rolling(window=3).mean()
    
    # ダイバージェンス検出用
    df['price_ma'] = df['close'].rolling(window=period).mean()
    df['price_higher'] = df['close'] > df['close'].shift(period)
    df['imi_lower'] = df['imi_ma'] < df['imi_ma'].shift(period)
    df['bearish_div'] = df['price_higher'] & df['imi_lower']
    
    df['price_lower'] = df['close'] < df['close'].shift(period)
    df['imi_higher'] = df['imi_ma'] > df['imi_ma'].shift(period)
    df['bullish_div'] = df['price_lower'] & df['imi_higher']
    
    # シグナル生成
    df['imi_prev'] = df['imi_ma'].shift(1)
    df['is_buy'] = (
        ((df['imi_ma'] > oversold) & (df['imi_prev'] <= oversold)) |
        (df['bullish_div'] & (df['imi_ma'] < 50))
    ) & df['imi_ma'].notna()
    df['is_sell'] = (
        ((df['imi_ma'] < overbought) & (df['imi_prev'] >= overbought)) |
        (df['bearish_div'] & (df['imi_ma'] > 50))
    ) & df['imi_ma'].notna()
    
    # 不要カラム削除
    df.drop(['intraday_change', 'gains', 'losses', 'sum_gains', 'sum_losses',
             'price_ma', 'price_higher', 'imi_lower', 'bearish_div',
             'price_lower', 'imi_higher', 'bullish_div', 'imi_prev'], axis=1, inplace=True, errors='ignore')
    
    return df

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

  1. 1今回試したイーサリアムの短い時間での値動きは、一度動き出すとなかなか止まらない特徴があったのかもしれません。だから、「みんなと逆の動き」を狙う作戦が、ことごとく裏目に出てしまいました。
  2. 2勝つ確率は約35%と低かったのですが、それ以上に、一回勝った時のもうけよりも、一回負けた時の損がとても大きかったんです。だから、取引すればするほど、お金が減ってしまいました。
  3. 3もしこの作戦を使わずに、ただイーサリアムを「ずっと持っているだけ」にしていた方が、結果的にお金は減りませんでした。つまり、こまめに取引したことが、逆に損を大きくしてしまったようです。

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

  1. 1「これは良さそう!」と思った作戦でも、実際にやってみないと本当にうまくいくかは分からない、ということを学びました。
  2. 2取引で勝つ確率も大事ですが、「勝った時にいくら増えて、負けた時にいくら減るのか」という、もうけと損のバランスがもっと大事だということが分かりました。
  3. 3「仮想通貨は、ずっと持っていれば大丈夫」とよく言われますが、それがいつも正しいとは限らないし、売ったり買ったりした方がいい時も、しない方がいい時もあるんだと勉強になりました。

リスク管理の具体的手法

取引量の決め方

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

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

もしお金が、一番多かった時からある程度(例えば10%)減ってしまったら、一度取引をお休みして、冷静になる時間を作ることが重要です。焦って取引すると、もっと失敗しやすくなります。

資金管理の方法

最初に「全体でこれ以上は絶対に損しない」という金額を決めておくことが大切です。そのルールをしっかり守ることで、取り返しのつかない失敗を防ぐことができます。

改良案の具体的提案

  • 今度は「流れに乗る」作戦も試してみたいです。つまり、値段が上がっている時に一緒に買って、下がっている時に一緒に売る方法です。
  • 取引する仮想通貨の種類や、見るグラフの時間(5分ごと、1時間ごとなど)を変えて、この作戦がうまくいく場所がないか探してみたいです。
  • 損が大きくなる前に「ごめんなさい!」とあきらめるルール(損切り)を、もっと厳しく決めることも考えています。

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

  • この作戦を試すときは、いきなり自分のお金を使わずに、まずは練習用のお金で試せる「デモトレード」や、昔のデータでうまくいくか調べる「バックテスト」をしてみましょう。
  • 取引する仮想通貨や、見るグラフの時間が、その作戦に合っているか、色々な組み合わせで試してみることが大切です。
  • コンピューターが自動でやってくれるプログラムはとても便利ですが、そのプログラムが何をしているのか、自分でちゃんと理解してから使いましょう。そうしないと、今回のように損するプログラムを使い続けてしまうかもしれません。

検証の透明性と信頼性

  • データの出所: このお話は、コンピューターで自動取引を試したときの結果のデータをもとにしています。
  • 検証のやり方: コンピューターが出してくれた取引の回数や勝率などの記録を調べて、分析しました。
  • コード: この作戦を実行したコンピュータープログラムは、見ることができます。
  • 注意事項: これは昔のデータで試した結果なので、未来も同じようにお金が増えたり減ったりすることを約束するものではありません。お金に関することは、自分の判断と責任でお願いします。

よくある質問

Q.どうしてこんなにたくさん損しちゃったの?

A.「値段が下がりすぎたら買う」という作戦だったのですが、イーサリアムの値段が一度下がり始めると、なかなか止まらずに下がり続けてしまったからです。作戦が相場とかみ合わなかったんですね。

Q.勝つ確率が35%って、低いよね?

A.はい、かなり低いです。3回やって2回は負けてしまう計算です。もし勝った時にすごく大きなもうけがあればプラスになることもありますが、今回はそうではなかったので、負けがどんどん積み重なってしまいました。

Q.「もうけと損のバランス」ってどういうこと?

A.例えば、勝つと100円もらえるけど、負けると1000円失う、という取引だと、勝つ確率がすごく高くないと、だんだんお金は減っていきますよね。この「勝った時」と「負けた時」の金額のバランスがとても大事だ、ということです。

Q.「HODL(ホドル)」って何?

A.「HODL」は、仮想通貨などを売ったり買ったりせず、「ただ、ずっと持ち続けること」を意味するインターネットの言葉です。今回は、難しい作戦を使わずに、ただ持っていた方が良い結果だった、ということです。

Q.じゃあ、この作戦はもう使えないの?

A.今回試したイーサリアムの短い時間の取引ではダメでしたが、もしかしたら他の仮想通貨や、もっと長い時間で見るグラフなら、うまくいく可能性はあります。条件を変えて、もう一度試してみる価値はあるかもしれません。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報