シェア:

ビットコインが大きく動き出す時をねらう!わかりやすい投資の作戦

この作戦は、ビットコイン(BTC/USDT)の値段が大きく動き出す「チャンス」をねらう方法です。値段がしばらくあまり変わらなかった後、急にグーンと上がったり下がったりしたとき、その波に乗ってお金を増やすことを目指します。1時間ごとの値段の動きをチェックして、一番いいタイミングを探します。

取引数
61
勝率
40.98%
最終リターン
+19.05%
最大DD
25.36%

導入と前提条件

この作戦は、ビットコイン(BTC/USDT)の値段が大きく動き出す「チャンス」をねらう方法です。値段がしばらくあまり変わらなかった後、急にグーンと上がったり下がったりしたとき、その波に乗ってお金を増やすことを目指します。1時間ごとの値段の動きをチェックして、一番いいタイミングを探します。

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

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

Choppiness Breakout の理論的背景

市場には、値段がどんどん上がったり下がったりする「トレンドの時間」と、値段があまり動かない「おとなしい時間」があります。この作戦は、「おとなしい時間」が長く続くと、その後に大きな「トレンドの時間」が来やすい、という考え方に基づいています。「CHOP」という道具は、値段の動きが小さいほど、数字が低くなるように作られています。なので、CHOPの数字が低くなるということは、市場がおとなしい状態だという合図です。このCHOPの数字が、あらかじめ決めておいた基準の数(たとえば38.2)より小さくなったということは、「おとなしい時間」が終わって、これから値段が大きく動き出す可能性が高い、と判断します。さらに、そのときの値段が「移動平均線」(これまでの値段の平均を線にしたもの)より上にあれば買い、下にあれば売る、という条件を付け加えて、より成功しやすいタイミングをねらいます。

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

エントリー条件

  • 市場の元気度をはかる「CHOP」の数字が、決めておいた数(38.2)より小さくなったとき。
  • そして、今の値段が、これまでの平均の値段(移動平均線)より上にあるとき。(このときは「買い」ます)
  • または、今の値段が、これまでの平均の値段(移動平均線)より下にあるとき。(このときは「売り」ます)

エグジット条件

  • もしお金が増えたら、決めておいた目標金額になったところで売ります(これを利益確定といいます)。
  • もしお金が減ってしまったら、決めておいた「ここまで減ったらやめる」という金額になったところで売ります(これを損切りといいます)。
  • または、市場の様子が変わって、「もうチャンスじゃないな」という合図が出たら、売買をやめます。

リスク管理

一度にたくさんのお金を使わずに、もし失っても生活に困らない範囲のお金だけを使います。また、もし損が出ても、それ以上大きくならないように、決めておいたところで必ず売買を終える「損切り」をすることで、大きな失敗を防ぎます。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数61回
勝率40.98%
平均利益4.84%
平均損失-2.6%
期待値0.45%
プロフィットファクター1.19
最大ドローダウン25.36%
最終リターン19.05%
シャープレシオ0.11
HODL(Buy&Hold)69.13%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Choppiness Index Breakout
相場の方向性(トレンド/レンジ)を測るCHOPの低下でトレンド発生を狙うのだ。
"""
import pandas as pd
import numpy as np


def _tr(df: pd.DataFrame) -> pd.Series:
    prev = df['close'].shift(1)
    tr = pd.concat([
        (df['high'] - df['low']).abs(),
        (df['high'] - prev).abs(),
        (df['low'] - prev).abs()
    ], axis=1).max(axis=1)
    return tr


def calculate_choppiness_signals(df: pd.DataFrame, period: int = 14, chop_low: float = 38.2) -> pd.DataFrame:
    out = df.copy()
    tr_sum = _tr(out).rolling(period).sum()
    highest = out['high'].rolling(period).max()
    lowest = out['low'].rolling(period).min()
    chop = 100 * (pd.Series(np.log10(tr_sum), index=out.index) - np.log10(highest - lowest)) / np.log10(period)
    out['chop'] = chop
    sma = out['close'].rolling(period).mean()
    out['is_buy'] = (chop < chop_low) & (out['close'] > sma)
    out['is_sell'] = (chop < chop_low) & (out['close'] < sma)
    return out

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

  1. 1市場の元気度をはかる「CHOP」の数字が低くなったということは、市場の「おとなしい時間」が終わる合図で、これから値段が大きく動き出す可能性が高いからです。
  2. 2さらに、そのときの値段が移動平均線より上か下かという条件を加えることで、値段がどっちの方向に動きそうか、より当たる確率を高くしようとしているからです。
  3. 3過去のデータ(2024年7月21日〜2025年8月25日)で試してみたら、この作戦で61回取引をして、最終的に約19%お金が増えたという結果が出ているからです。

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

  1. 1値段があまり動かない「おとなしい時間」の後に、大きなチャンスが来ることがある、ということが学べます。
  2. 2「CHOP」のような道具を使うと、市場にどれくらい元気があるかが分かり、いつ買ったり売ったりすればいいかのヒントになります。
  3. 3お金を増やすことも大事ですが、損をなるべく小さくする「損切り」が、長い目で見てお金を増やし続けるために、すごく大切だということが分かります。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、自分が持っているお金全部のうちの、ほんの少し(たとえば100分の1か2)だけにするのがおすすめです。こうすれば、もし負けてしまっても、持っているお金全部が大きく減ってしまうのを防げます。

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

もし予想が外れてお金が減ってしまったら、前もって決めておいた「ここまで減ったらやめる」というライン(たとえば、持っているお金の5%まで)に来たら、すぐに取引をやめます。これを「損切り」と言います。

資金管理の方法

持っているお金のうち、いくらまでなら失敗しても大丈夫かを決めておき、それ以上は使わないようにします。また、お金が増えたら少しだけ使う金額を増やしたり、逆に減ったら金額を減らしたりと、自分のお金の状況に合わせて調整します。

改良案の具体的提案

  • 「CHOP」の基準の数字(38.2)や、分析する期間(14日)などを変えてみて、もっとうまくいく設定がないか探してみる。
  • ほかの道具(たとえば、どれくらいの量が取引されているかを示す「出来高」など)も一緒に使うことで、もっと作戦の成功率を上げられないか考えてみる。
  • 「ここまで増えたら売る」「ここまで減ったらやめる」というルールを、そのときの市場の様子に合わせて自動で変えられるようにしてみる。

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

  • この作戦は、値段が大きく動くきっかけを探すものなので、世の中のニュースや大きな事件にも気をつけておくと良いですよ。
  • 値段をチェックする時間の間隔(この作戦では1時間ごと)を、30分ごとや4時間ごとなどに変えてみて、自分に合うやり方を探すのもいいかもしれません。
  • 実際に取引を始める前に、必ず過去のデータでこの作戦がうまくいくか何度も練習(バックテスト)してから、少ない金額で試してみることをおすすめします。

検証の透明性と信頼性

  • データの出所: この作戦の成績は、過去のビットコイン(BTC/USDT)の値段のデータ(1時間ごと)をもとに計算しています。
  • 検証のやり方: ここに書かれている成績(勝った回数や増えたお金など)は、もし過去にこの作戦通りに売買していたらどうなっていたか、をコンピューターで計算(シミュレーション)した結果です。
  • コード: この作戦を計算するためのプログラムの作り方は、誰でも見られるようになっています。
  • 注意事項: この作戦は、必ずお金が増えることを約束するものではありません。投資には、お金が減ってしまう可能性もあります。最後は、自分でよく考えて決めてくださいね。

よくある質問

Q.「CHOP」って何ですか?

A.市場が元気いっぱいで値段が大きく動いているか、それともおとなしくてあまり動いていないか、を教えてくれる道具のことです。値段があまり動かないと、この道具の数字は小さくなります。

Q.「移動平均線」って何ですか?

A.これまでの値段の平均を計算して、線でつないだものです。今の値段がこの線より上にあれば「上がり調子かな?」、下にあれば「下がり調子かな?」と、だいたいの流れを知るのに役立ちます。

Q.「PF」って何ですか?「1.19」は良い数字ですか?

A.PF(プロフィットファクター)は、「もうけ」が「そん」の何倍だったかを示す数字です。1.19なら、100円の損をしたのに対して、119円のもうけがあった、ということです。この数字が1より大きければ、全体としてお金が増えたことになります。

Q.「最大DD」って何ですか?「25.36%」は大丈夫ですか?

A.最大DD(さいだいドローダウン)は、この作戦でお金が一番減ってしまったときの、減った割合のことです。25.36%というのは、一番悪いときで、持っていたお金が一時的に約25%減ってしまったことがあった、という意味です。

Q.「HODL」より成績が悪いのですか?

A.HODL(ホドル)というのは、難しいことは考えずに、ただビットコインを買ってずっと持っておくことです。この作戦で増えたお金(19.05%)は、ただ持っていた場合(69.13%)よりも少ないですが、これは試した期間がたまたまそういう時期だったからです。作戦によっては、ただ持っているよりも危険を減らしながら、お金を増やすことを目指すものもあります。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報