シェア:

ビットコインの値段は上がる?下がる?『チャイキンオシレーター』という道具で調べてみよう!

この作戦は、ビットコインの1時間ごとの値動きグラフを見ながら、『チャイキンオシレーター』という道具を使って、いつ買っていつ売ればいいかを探す実験です。2024年7月から2025年8月までの約1年間のデータで試してみました。

取引数
580
勝率
21.72%
最終リターン
-91.69%
最大DD
91.89%

導入と前提条件

この作戦は、ビットコインの1時間ごとの値動きグラフを見ながら、『チャイキンオシレーター』という道具を使って、いつ買っていつ売ればいいかを探す実験です。2024年7月から2025年8月までの約1年間のデータで試してみました。

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

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

Chaikin Oscillator の理論的背景

この作戦は、「値段が動く勢いの向きが変わる時が、値段そのものも上がり始めたり下がり始めたりする時なんじゃないか?」という考え方が元になっています。『チャイキンオシレーター』は、まず、そのビットコインにどれくらいお金が集まっているか(人気があるか)を調べます。そして、最近のお金の集まり具合と、少し前までのお金の集まり具合を比べて、勢いの変化を見つけ出そうとします。勢いがプラスからマイナスに変わるような時に、売ったり買ったりするチャンスがあるかもしれない、と考えたわけです。

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

エントリー条件

  • 『チャイキンオシレーター』のメーターが、マイナスからプラスに切り替わった時(買う合図)
  • メーターが真ん中のゼロの線を上回った時(買う合図)

エグジット条件

  • 『チャイキンオシレーター』のメーターが、プラスからマイナスに切り替わった時(売る合図)
  • メーターが真ん中のゼロの線を下回った時(売る合図)

リスク管理

大きな損をしないためのルールです。1回の取引で使うお金は、持っているお金のほんの少しだけにしておきます。もし、「これ以上損したらやめよう」と決めておいた金額まで損がふくらんだら、すぐにその取引をやめるようにします。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数580回
勝率21.72%
平均利益1.6%
平均損失-0.98%
期待値-0.42%
プロフィットファクター0.47
最大ドローダウン91.89%
最終リターン-91.69%
シャープレシオ-1.02
HODL(Buy&Hold)69.13%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Chaikin Oscillator Signal
ADLの短長EMA差(Chaikin Osc)でゼロクロス判定するのだ。
"""
import pandas as pd


def _adl(df: pd.DataFrame) -> pd.Series:
    mfm = ((df['close'] - df['low']) - (df['high'] - df['close'])) / (df['high'] - df['low']).replace(0, 1)
    mfv = mfm * df['volume']
    return mfv.cumsum()


def _ema(s: pd.Series, n: int) -> pd.Series:
    return s.ewm(span=n, adjust=False).mean()


def calculate_chaikin_osc_signals(df: pd.DataFrame, fast: int = 3, slow: int = 10) -> pd.DataFrame:
    out = df.copy()
    adl = _adl(out)
    osc = _ema(adl, fast) - _ema(adl, slow)
    prev = osc.shift(1)
    out['is_buy'] = (osc > 0) & (prev <= 0)
    out['is_sell'] = (osc < 0) & (prev >= 0)
    out['chaikin_osc'] = osc
    return out

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

  1. 1580回も取引したのに、勝てたのは約22%だけでした。つまり、ほとんどの取引で負けてしまったようです。
  2. 21回の取引で平均して0.42%ずつお小遣いが減ってしまう計算でした。取引すればするほど、お金が減っていく傾向があったんです。
  3. 3最終的には、もとのお金が91.69%も減ってしまいました。これは、ほとんど全部のお金を失ってしまったことを意味します。

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

  1. 1『チャイキンオシレーター』という道具1つだけでは、ビットコインみたいに値段が激しく動くもので、うまくお金を増やすのは難しいということがわかりました。
  2. 2勝つ回数が少なくても、1回勝った時にすごく大きく勝てれば大丈夫なこともあります。でも、この作戦ではそれもできませんでした。
  3. 3昔のデータでうまくいくか試すだけでなく、今の状況に合わせて作戦をどんどん変えていくことが大事なんだと学びました。

リスク管理の具体的手法

取引量の決め方

1回の取引に使うお金は、自分が持っている全部のお金の100分の1か100分の2くらいに、少なくしておきます。

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

もし損がふくらんで、持っているお金が10%も減ってしまったら、一度全部の取引をお休みします。そして、作戦が本当にこれでいいのか、じっくり考え直します。

資金管理の方法

長く続けてお金を増やしていくためには、勝ってうれしい時も、負けてくやしい時も、気持ちに流されずに、最初に決めたルールをきちんと守ることがとても大切です。

改良案の具体的提案

  • 他の道具(例えば、値段の平均を見る『移動平均線』など)と組み合わせて、もっと確かな「買い時」「売り時」の合図を見つけられるようにします。
  • 『チャイキンオシレーター』の計算に使う数字(設定)を色々と変えてみて、一番うまくいく設定を見つけ出します。
  • ビットコインだけじゃなくて、他のコインや会社の株みたいに、違う値動きをするものでもこの作戦が使えるか試してみます。

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

  • この作戦は、昔のデータで試しただけなので、未来も同じようにうまくいくとは限りません。注意してくださいね。
  • 本当のお金で始める前に、まずはお試し用の少額のお金でやってみたり、ゲームみたいに練習できる『デモ取引』で試したりするのがおすすめです。
  • 世の中のニュースや、ビットコインが今どんな状況なのかにも気を配りながら、この作戦を使うかどうかを判断するのが大事です。

検証の透明性と信頼性

  • データの出所: 誰でも見られる、ビットコインの過去の1時間ごとの値段のデータを使いました。
  • 検証のやり方: 指定された設定と期間で、昔のデータを使って「もしこの作戦を使っていたらどうなっていたか」というシミュレーションをしました。
  • コード: このシミュレーションに使ったプログラムは公開されていて、誰でも見たり使ったりすることができます。
  • 注意事項: このお話は、投資をおすすめするためのものではありません。投資には、お金が減ってしまう危険もあります。もし投資をするなら、必ず自分でよく考えて、自分の責任で行ってくださいね。

よくある質問

Q.チャイキンオシレーターって何?

A.ビットコインにどれくらい人気(お金)が集まっているかを見て、値段の勢いをはかる道具のことだよ。「そろそろ上がりそう」「下がりそう」という合図を見つけるのに役立ちます。

Q.BTC/USDTってどういう意味?

A.ビットコイン(BTC)を、アメリカのドルと同じような価値を持つデジタル通貨(USDT)で買う時の値段のことです。

Q.1時間足って、どういうこと?

A.グラフに表示されている1本1本の棒が、1時間分の値段の動きを表している、ということです。この棒を見ると、1時間で値段が上がったか下がったかがわかります。

Q.勝つ回数が少ないのに、なんで取引する意味があるの?

A.たとえ勝つ回数が少なくても、1回勝った時にものすごく大きな利益が出れば、負けた分を取り返しておつりが来ることもあるからです。だから、勝つ確率だけじゃなくて、1回あたりどれくらい儲かりそうかも大事なんです。

Q.この作戦を使えば、お金は増えるの?

A.いいえ、残念ながら今回の実験では、この作戦はうまくいきませんでした。なので、このまま使うと逆にお金が減ってしまう可能性が高いです。注意してくださいね。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報