ビットコインが大きく動き出す時をねらう!わかりやすい投資の作戦
この作戦は、ビットコイン(BTC/USDT)の値段が大きく動き出す「チャンス」をねらう方法です。値段がしばらくあまり変わらなかった後、急にグーンと上がったり下がったりしたとき、その波に乗ってお金を増やすことを目指します。1時間ごとの値段の動きをチェックして、一番いいタイミングを探します。
導入と前提条件
この作戦は、ビットコイン(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)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBTC/USDTのOHLCVを取得して前処理
- 『Choppiness Breakout』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 61回 |
勝率 | 40.98% |
平均利益 | 4.84% |
平均損失 | -2.6% |
期待値 | 0.45% |
プロフィットファクター | 1.19 |
最大ドローダウン | 25.36% |
最終リターン | 19.05% |
シャープレシオ | 0.11 |
HODL(Buy&Hold) | 69.13% |
HODL戦略との比較
実装コード(Python)
"""
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市場の元気度をはかる「CHOP」の数字が低くなったということは、市場の「おとなしい時間」が終わる合図で、これから値段が大きく動き出す可能性が高いからです。
- 2さらに、そのときの値段が移動平均線より上か下かという条件を加えることで、値段がどっちの方向に動きそうか、より当たる確率を高くしようとしているからです。
- 3過去のデータ(2024年7月21日〜2025年8月25日)で試してみたら、この作戦で61回取引をして、最終的に約19%お金が増えたという結果が出ているからです。
この結果から学べる3つの教訓
- 1値段があまり動かない「おとなしい時間」の後に、大きなチャンスが来ることがある、ということが学べます。
- 2「CHOP」のような道具を使うと、市場にどれくらい元気があるかが分かり、いつ買ったり売ったりすればいいかのヒントになります。
- 3お金を増やすことも大事ですが、損をなるべく小さくする「損切り」が、長い目で見てお金を増やし続けるために、すごく大切だということが分かります。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金は、自分が持っているお金全部のうちの、ほんの少し(たとえば100分の1か2)だけにするのがおすすめです。こうすれば、もし負けてしまっても、持っているお金全部が大きく減ってしまうのを防げます。
損失が大きくなったときの対処法
もし予想が外れてお金が減ってしまったら、前もって決めておいた「ここまで減ったらやめる」というライン(たとえば、持っているお金の5%まで)に来たら、すぐに取引をやめます。これを「損切り」と言います。
資金管理の方法
持っているお金のうち、いくらまでなら失敗しても大丈夫かを決めておき、それ以上は使わないようにします。また、お金が増えたら少しだけ使う金額を増やしたり、逆に減ったら金額を減らしたりと、自分のお金の状況に合わせて調整します。
改良案の具体的提案
- 「CHOP」の基準の数字(38.2)や、分析する期間(14日)などを変えてみて、もっとうまくいく設定がないか探してみる。
- ほかの道具(たとえば、どれくらいの量が取引されているかを示す「出来高」など)も一緒に使うことで、もっと作戦の成功率を上げられないか考えてみる。
- 「ここまで増えたら売る」「ここまで減ったらやめる」というルールを、そのときの市場の様子に合わせて自動で変えられるようにしてみる。
実用性の向上(運用上の注意)
- この作戦は、値段が大きく動くきっかけを探すものなので、世の中のニュースや大きな事件にも気をつけておくと良いですよ。
- 値段をチェックする時間の間隔(この作戦では1時間ごと)を、30分ごとや4時間ごとなどに変えてみて、自分に合うやり方を探すのもいいかもしれません。
- 実際に取引を始める前に、必ず過去のデータでこの作戦がうまくいくか何度も練習(バックテスト)してから、少ない金額で試してみることをおすすめします。
検証の透明性と信頼性
- データの出所: この作戦の成績は、過去のビットコイン(BTC/USDT)の値段のデータ(1時間ごと)をもとに計算しています。
- 検証のやり方: ここに書かれている成績(勝った回数や増えたお金など)は、もし過去にこの作戦通りに売買していたらどうなっていたか、をコンピューターで計算(シミュレーション)した結果です。
- コード: この作戦を計算するためのプログラムの作り方は、誰でも見られるようになっています。
- 注意事項: この作戦は、必ずお金が増えることを約束するものではありません。投資には、お金が減ってしまう可能性もあります。最後は、自分でよく考えて決めてくださいね。