シェア:

【中学生にもわかる!】仮想通貨の売り買い作戦「ガッピー」の結果と学んだこと

このお話では、仮想通貨(XRP/USDT)で「ガッピー」という売り買いのチャンスを見つける作戦を試した結果を、むずかしい言葉を使わずにわかりやすく説明します。結果は残念でしたが、ここから学べることもたくさんありましたよ。

取引数
1435
勝率
16.93%
最終リターン
-99.54%
最大DD
99.71%

導入と前提条件

このお話では、仮想通貨(XRP/USDT)で「ガッピー」という売り買いのチャンスを見つける作戦を試した結果を、むずかしい言葉を使わずにわかりやすく説明します。結果は残念でしたが、ここから学べることもたくさんありましたよ。

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

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

Guppy Multiple MA の理論的背景

この作戦は、世の中には短い時間で売り買いする人(トレーダー)と、長い目で見て投資する人(投資家)がいる、という考え方がもとになっています。短い時間の動きを見る線が、長い時間の動きを見る線を追い越したり、また戻ってきたりするタイミングに注目します。特に、短い時間の線がギュッと集まっているときに、新しい動きが始まるかもしれないと考え、売り買いのチャンスを探します。これは、たくさんの人が同じ方向を向き始める合図だと考えられているんです。

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

エントリー条件

  • 短い時間の動きを見る線が、上を向き始めて、線どうしがギュッとくっついてきたら「買う」チャンスです。
  • 短い時間の動きを見る線の平均が、長い時間の動きを見る線の平均を、下から上に追い越したときも「買う」チャンスです。

エグジット条件

  • 短い時間の動きを見る線が、下を向き始めて、線どうしがギュッとくっついてきたら「売る」(取引をやめる)タイミングです。
  • 短い時間の動きを見る線の平均が、長い時間の動きを見る線の平均を、上から下に追い越してしまったときも「売る」タイミングです。

リスク管理

大きな損をしないように、もし思ったのと反対に値段が動いてしまったら、すぐに取引をやめることが大切です。また、一度にたくさんのお金を使わず、自分のできる範囲で取引することも重要ですよ。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数1435回
勝率16.93%
平均利益1.88%
平均損失-0.82%
期待値-0.36%
プロフィットファクター0.62
最大ドローダウン99.71%
最終リターン-99.54%
シャープレシオ-0.49
HODL(Buy&Hold)107.66%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Guppy Multiple Moving Average Trading Signal Generator
12本のEMAを使用したトレンド判定戦略
"""
import pandas as pd
import numpy as np


def calculate_guppy_signals(df: pd.DataFrame) -> pd.DataFrame:
    """
    Guppy MMA戦略のシグナル生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    
    Returns:
    --------
    pd.DataFrame
        シグナルが追加されたDataFrame
    """
    df = df.copy()
    
    # 短期EMAグループ(トレーダー)
    short_periods = [3, 5, 8, 10, 12, 15]
    # 長期EMAグループ(投資家)
    long_periods = [30, 35, 40, 45, 50, 60]
    
    # 各EMAを計算
    for period in short_periods:
        df[f'ema_short_{period}'] = df['close'].ewm(span=period, adjust=False).mean()
    
    for period in long_periods:
        df[f'ema_long_{period}'] = df['close'].ewm(span=period, adjust=False).mean()
    
    # 短期グループと長期グループの平均
    short_cols = [f'ema_short_{p}' for p in short_periods]
    long_cols = [f'ema_long_{p}' for p in long_periods]
    
    df['short_avg'] = df[short_cols].mean(axis=1)
    df['long_avg'] = df[long_cols].mean(axis=1)
    
    # グループ間の距離(トレンド強度)
    df['separation'] = df['short_avg'] - df['long_avg']
    df['separation_pct'] = (df['separation'] / df['long_avg']) * 100
    
    # 短期グループの収束度(圧縮度)
    df['short_max'] = df[short_cols].max(axis=1)
    df['short_min'] = df[short_cols].min(axis=1)
    df['short_compression'] = (df['short_max'] - df['short_min']) / df['short_avg']
    
    # シグナル生成
    df['separation_prev'] = df['separation'].shift(1)
    df['is_buy'] = (
        (df['separation'] > 0) & 
        (df['separation_prev'] <= 0) & 
        (df['short_compression'] < 0.02) &  # 短期EMAが収束
        df['separation'].notna()
    )
    df['is_sell'] = (
        (df['separation'] < 0) & 
        (df['separation_prev'] >= 0) & 
        (df['short_compression'] < 0.02) &  # 短期EMAが収束
        df['separation'].notna()
    )
    
    # 不要カラム削除
    drop_cols = short_cols + long_cols + ['short_max', 'short_min', 'separation_prev']
    df.drop(drop_cols, axis=1, inplace=True, errors='ignore')
    
    return df

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

  1. 1この作戦は、仮想通貨の値段が激しく動く「5分ごと」という短い時間で試しました。でも、急な値段の変化についていけなかったのかもしれません。
  2. 2勝率が約17%と、とても低かったです。つまり、100回やっても83回は負けてしまう計算で、なかなか利益が出ませんでした。
  3. 31回取引するごとに、平均して損をしてしまう計算でした。儲けたお金より損したお金の方がずっと多くて、やればやるほど損が増える結果になってしまいました。

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

  1. 1どんなに良いと言われている作戦でも、いつでも、どんな仮想通貨でもうまくいくわけではない、ということを学びました。
  2. 2勝率が低かったのは、この作戦が今の世の中の動きに合っていなかったか、やり方を変える必要があったからかもしれません。
  3. 3この結果から、作戦をそのまま使うのではなく、状況に合わせて工夫したり、他の作戦と組み合わせたりすることが大事だとわかりました。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、持っているお金全体の1%か2%くらいにすると安心です。こうすれば、もし負けても、持っているお金全体へのダメージを小さくできます。

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

もし損がふくらんで、持っているお金が10%など、決めた割合以上へってしまったら、一度取引をお休みしましょう。そして、作戦やお金の使い⽅を⾒直すことが⼤切です。

資金管理の方法

取引に使うお⾦は、なくなっても⽣活に困らないお⾦だけにしましょう。そして、「もっと儲かるかも!」「損したくない!」という気持ちに流されず、最初に決めたルールをしっかり守ることがとても重要です。

改良案の具体的提案

  • 短い時間の線が「ギュッと集まる」という条件を、もう少し厳しくしたり、逆にゆるくしたりして、もっと良いタイミングを見つける工夫が必要です。
  • この作戦がうまくいくのはどんな時か(例えば、値段がずっと上がり続けている時など)を見つけるために、新しいルールを加えるのも良いかもしれません。
  • 1回に使うお金の量を決めたり、大きな損が出ないように「ここまで損したら絶対やめる」というルールをもっと厳しく決めたりする必要があります。

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

  • この作戦を試すときは、まず少しのお金でやってみたり、ゲームのお金で練習(デモトレード)したりして、本当にうまくいくか確かめてみましょう。
  • 世の中の動きはいつも変わります。だから、一度うまくいった作戦でも、時々うまくいっているかチェックして、必要ならやり方を変えることが大切です。
  • この作戦がうまくいかなかったからといって、がっかりしてやめてしまうのはもったいないです。なぜダメだったのかを考えて、直すところを見つけることが、次につながります。

検証の透明性と信頼性

  • データの出所: このテストは、仮想通貨を取引できる会社からもらった、昔の値段の記録(XRP/USDTという種類の5分ごとの記録)を使って行いました。
  • 検証のやり方: 公開されているプログラムを使って、「もし昔、この作戦で売り買いしていたらどうなっていたか?」というシミュレーションをして、結果を計算しました。
  • コード: 計算に使ったプログラム(Pythonコード)は、誰でも見られるようになっています。だから、誰でも同じ方法でテストを試すことができますよ。
  • 注意事項: このレポートは、昔の記録をもとにしたテストの結果です。これから絶対に儲かることを約束するものではありません。仮想通貨の取引には、損をする危険もあります。自分でよく考えて、自分の責任で行ってくださいね。

よくある質問

Q.「ガッピー」って、魚の名前?

A.いい質問ですね!この作戦を考えた人の名前が「ガッピーさん」だから、そう呼ばれています。線の動きが、ガッピーという魚の群れが泳いでいるように見えるから、という説もありますよ。

Q.EMAって何のこと?

A.EMAは、簡単に言うと「最近の値段の動きを特に大事にして描いた、元気さを見る線」のことです。この線を何本も使うことで、値段の細かい動きをつかもうとするんです。

Q.PFが0.62って、どういう意味?

A.PFは、儲けたお金と損したお金のバランスを見る数字です。0.62だと、100円儲けるために、約161円も損をしている計算になります。つまり、やればやるほど損が増えてしまう状態ということです。

Q.最大DDが99.71%って、お金がほぼゼロになったってこと?

A.その通りです。最大DD(ドローダウン)は、お金が⼀番減ってしまった時の割合のことです。99.71%ということは、一番ひどい時には、持っていたお金がほとんど全部なくなりそうになった、という意味です。これはすごく危険な状態ですね。

Q.HODLってどういう意味?

A.HODL(ホドル)は、仮想通貨を買ったあと、売らずに「ずーっと持っておく」という意味で使われる言葉です。ちなみに、今回のテストでは、この作戦を使わずにただ持っていただけ(HODL)のほうが、プラスになっていたという結果でした。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報