シェア:

ビットコインの「行き過ぎ」をねらえ!みんなと逆をいく作戦

この作戦は、ビットコインの値段が急に上がりすぎたり、下がりすぎたりした時にチャンスをねらう方法です。値段が「行き過ぎ」たとき、元に戻る動きを予想して、利益を出すことを目指します。1時間ごとの値段の動きをチェックして、売ったり買ったりするタイミングを探します。この方法がうまくいくか、約1年間のデータでテストしてみました。

取引数
148
勝率
52.03%
最終リターン
-20.87%
最大DD
35.11%

導入と前提条件

この作戦は、ビットコインの値段が急に上がりすぎたり、下がりすぎたりした時にチャンスをねらう方法です。値段が「行き過ぎ」たとき、元に戻る動きを予想して、利益を出すことを目指します。1時間ごとの値段の動きをチェックして、売ったり買ったりするタイミングを探します。この方法がうまくいくか、約1年間のデータでテストしてみました。

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

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

Returns Z-Score の理論的背景

この作戦の基本的な考え方は、「ゴムひも」みたいなものです。ぐーっと引っ張られると、元に戻ろうとしますよね。値段の動きも同じで、急に上がりすぎたり下がりすぎたりすると、やがて平均的な値段に戻ろうとする性質があるんです。この「元に戻ろうとする力」を使って利益をねらうのが、この作戦です。「価格の勢いメーター」は、この値段の動きがどれくらい「普通じゃないか」を測るための道具です。メーターがプラスに大きく振れたら「上がりすぎ!」のサイン。マイナスに大きく振れたら「下がりすぎ!」のサインと考えます。このサインが出たら、値段が元に戻ることを予想して、逆の行動(上がりすぎなら売り、下がりすぎなら買い)をするんです。

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

エントリー条件

  • 「価格の勢いメーター」が、決めておいた「やりすぎライン」よりも大きく下がったら、買うタイミングです。
  • 「価格の勢いメーター」が、決めておいた「やりすぎライン」よりも大きく上がったら、売るタイミングです。

エグジット条件

  • 買っていた場合、「価格の勢いメーター」がいつもの普通の状態に戻ってきたら、売って利益を確定させます。
  • 売っていた場合、「価格の勢いメーター」がいつもの普通の状態に戻ってきたら、買い戻して利益を確定させます。
  • もし予想が外れて損が大きくなったら、それ以上損しないように、決めておいたラインで取引をやめます。

リスク管理

一度にたくさんのお金を使わないようにします。もし予想が外れても、大きな損にならないように、使うお金の量を調整することが大切です。また、損が大きくなりすぎないように、「ここまで損したらやめる」というラインをあらかじめ決めておきます。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数148回
勝率52.03%
平均利益1.63%
平均損失-2.03%
期待値-0.13%
プロフィットファクター0.82
最大ドローダウン35.11%
最終リターン-20.87%
シャープレシオ-0.07
HODL(Buy&Hold)69.08%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Returns Z-Score Reversion
リターンのz-scoreで逆張りするのだ。
"""
import pandas as pd


def calculate_returns_zscore_signals(df: pd.DataFrame, period: int = 24, z_threshold: float = 2.0) -> pd.DataFrame:
    out = df.copy()
    ret = out['close'].pct_change()
    z = (ret - ret.rolling(period).mean()) / ret.rolling(period).std()
    out['ret_z'] = z
    out['is_buy'] = z <= -abs(z_threshold)
    out['is_sell'] = z >= abs(z_threshold)
    return out

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

  1. 1値段が急に動いた後、元に戻らずに、そのまま同じ方向に動き続けてしまったため、予想が外れてしまったのかもしれません。
  2. 2テストした期間中に、ビットコイン全体の値段がずっと下がり続けるような時期がありました。このようなとき、「下がりすぎだから上がるはず」と買う作戦は、うまくいきにくいことがあります。
  3. 3作戦で使った「やりすぎライン」などの設定が、その時のビットコインの動きに合っていなかった可能性があります。もっとうまくいくように、この設定を見直す必要があるかもしれません。

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

  1. 1どんなに良さそうに見える作戦でも、必ずうまくいくわけではない、ということを学びました。
  2. 2マーケット全体の雰囲気(ずっと上がり調子か、下がり調子かなど)によって、作戦が効くときと効かないときがあることが分かりました。
  3. 3ただ売ったり買ったりするルールだけじゃなく、損をできるだけ小さくする工夫(リスクの管理)が、とても大切なんだと実感しました。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、持っているお金全体のほんの一部(たとえば100分の1とか)だけにします。こうすれば、もし1回失敗しても、全体のお金が大きく減ることはありません。

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

もし続けて負けて、お金が思ったより減ってしまったら、一度取引をお休みしたり、使うお金の量をさらに減らしたりします。被害がこれ以上大きくならないようにするための、大切なルールです。

資金管理の方法

大切なお金を一度になくしてしまわないように、計画を立てます。たとえば、いろいろな作戦にお金を分けて使ったり、調子が良いときだけ少し使うお金を増やしたりします。長く続けるために、お金を守りながら増やす計画が重要です。

改良案の具体的提案

  • 「やりすぎライン」などの設定を、その時々のマーケットの状況に合わせて自動で調整できるように改良します。
  • 値段の動きだけでなく、世の中のニュースや、他の投資家がどう考えているか、といった別の情報もヒントにする機能を追加します。
  • もし予想が外れてしまった場合に、もっと上手に損を小さくして終わらせるための、新しいルールを考えます。

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

  • この作戦は、あくまで昔のデータでうまくいったかを調べたものです。未来でも同じようにうまくいくとは限りません。実際に使うときは、まずはお試しで、少ないお金から始めるのがおすすめです。
  • 「やりすぎライン」などの設定は、ビットコインのその時の値動きに合わせて調整することが大切です。
  • この作戦のサインだけを信じるのではなく、他の情報も参考にしながら、落ち着いて判断するようにしましょう。

検証の透明性と信頼性

  • データの出所: この記事は、もらったデータをもとに作られています。
  • 検証のやり方: 過去のビットコインの1時間ごとの値段のデータ(2024年7月21日〜2025年8月25日の399日間)を使って、この作戦がうまくいったかテストしました。
  • コード: この作戦を計算するためのプログラムの作り方は、公開されています。
  • 注意事項: この記事は「こんな投資方法がありますよ」と紹介するもので、投資をおすすめするものではありません。投資にはお金が減ってしまうリスクがあります。最後は、必ず自分でよく考えて判断してくださいね。

よくある質問

Q.「リターンのz-score」って何?

A.最近の値段の変わり方が、いつもの平均と比べてどれくらい「特別」かを表す数字のことだよ。「元気メーター」みたいなもので、数字が大きいほど、普段と違うパワフルな動きをしているってことなんだ。

Q.「逆張り」って、危ないんじゃないの?

A.うん、たしかに「みんなと逆」をいくから、流れに逆らうことになって損をすることもあるよ。でも、たとえば「急に上がりすぎたから、ちょっとは下がるはず」とか、「急に下がりすぎたから、少しは戻るはず」と、値段の「行き過ぎ」が元に戻るのをねらうのが、この作戦の考え方なんだ。

Q.「最大DD:35.11%」って、そんなに損するの?

A.DDは「ドローダウン」の略で、お金が一番増えたときから、どれくらい減っちゃったかを表す割合のことだよ。最大DDが35.11%っていうのは、一番うまくいかなかった時期に、お金がピークの時から約35%も減ってしまった時期があった、ということ。これは、作戦がうまくいかないと、かなり大きな損が出る可能性があることを示しているんだ。

Q.この戦略は、いつ使えばいいの?

A.この作戦は、値段が上がったり下がったりを繰り返していて、あまり一方的には動かないような時に力を発揮しやすい、と考えられているよ。でも、マーケットの状況はいつも変わるから、使う前には自分でよく確かめたり、他の情報と組み合わせたりすることがすごく大事だよ。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報