ある道具で未来の値段を予測?仮想通貨の取引に挑戦!
「BNB」っていう仮想通貨を、4時間ごとの値段の動きを見ながら取引してみました。今回は「パーセントB」という道具を使いましたが、結果はどうだったでしょう?うまくいったのか、それとも失敗だったのか、みんなにも分かりやすく説明しますね!
取引数
82
勝率
19.51%
最終リターン
-21.08%
最大DD
37.36%
導入と前提条件
「BNB」っていう仮想通貨を、4時間ごとの値段の動きを見ながら取引してみました。今回は「パーセントB」という道具を使いましたが、結果はどうだったでしょう?うまくいったのか、それとも失敗だったのか、みんなにも分かりやすく説明しますね!
【検証】戦略のバックテスト概要
- 戦略名: Percent B を使用したトレンド追従戦略
- 対象銘柄: BNB/USDT
- 時間足: 4h
- 期間: 2025-01-26〜2025-08-25(210日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: kucoin
Percent B の理論的背景
「パーセントB」は、今の値段が、よく動く範囲を示す「上の線」と「下の線」の間のどのあたりにいるかを示します。下の線に近ければ「安いかも」、上の線に近ければ「高いかも」というサインです。この作戦では、真ん中あたりに引いた「基準の線」を値段が超えたら、売り買いのチャンス!と考えます。例えば、下から上に基準の線を超えたら「買い」、上から下に超えたら「売り」というシンプルなルールです。
具体的な売買ルール(今回の検証)
エントリー条件
- 値段が「安い」ほうから「基準の線」を上に超えたら、買うチャンスです。
- 値段が「高い」ほうから「基準の線」を下に超えたら、売るチャンスです。
エグジット条件
- 買った後、値段が「すごく高い」エリアに入ったら、売って取引を終わらせます。
- 売った後、値段が「すごく安い」エリアに入ったら、買い戻して取引を終わらせます。
リスク管理
もしものために、損をできるだけ小さくする工夫もしました。持っているお金が、一時的にでも3分の1以上も減ってしまうようなことがあったら、一度お休みするルールです。また、一度に大きなお金を動かさないように、取引する量も調整しました。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBNB/USDTのOHLCVを取得して前処理
- 『Percent B』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 82回 |
勝率 | 19.51% |
平均利益 | 3.86% |
平均損失 | -1.26% |
期待値 | -0.26% |
プロフィットファクター | 0.72 |
最大ドローダウン | 37.36% |
最終リターン | -21.08% |
シャープレシオ | -0.36 |
HODL(Buy&Hold) | 27.54% |
HODL戦略との比較
実装コード(Python)
strategy.py
"""
Percent B Signal
Bollinger Bands の %B で判定するのだ。
"""
import pandas as pd
def calculate_percent_b_signals(df: pd.DataFrame, period: int = 20, num_std: float = 2.0, threshold: float = 0.5) -> pd.DataFrame:
out = df.copy()
m = out['close'].rolling(period).mean()
sd = out['close'].rolling(period).std()
upper = m + num_std * sd
lower = m - num_std * sd
pb = (out['close'] - lower) / (upper - lower)
out['percent_b'] = pb
prev = pb.shift(1)
out['is_buy'] = (pb > threshold) & (prev <= threshold)
out['is_sell'] = (pb < (1 - threshold)) & (prev >= (1 - threshold))
return out
なぜこの結果になったのか(3つの理由)
- 1「パーセントB」という道具が、値段の勢いをうまく読み取れなかったみたいで、勝てる回数がとても少なくなってしまいました。
- 2売り買いのタイミングを決める「基準の線」の場所が、そのときの仮想通貨の動きと合っていなかったのかもしれません。
- 3もしかしたら、この作戦が苦手とするような、特別な値動きをしていた時期だったのかもしれません。
この結果から学べる3つの教訓
- 1「これならいける!」と思った作戦でも、全部勝つのは難しいんだな、ということが分かりました。
- 2「パーセントB」みたいな便利な道具も、使い方や設定を工夫しないと、うまくいかないことがあると学びました。
- 3その時々の値段の動きに合わせて、作戦をうまく変えていくことが大事なんだな、と感じました。
リスク管理の具体的手法
取引量の決め方
1回の取引で、もし負けても大丈夫な金額をあらかじめ決めておきます。そして、その金額を超えないように、買う量や売る量を調整します。
損失が大きくなったときの対処法
もし、思ったよりもたくさん負けてしまって、持っているお金が大きく減ってきたら、いったん全部の取引をお休みして、被害が広がるのを防ぎます。
資金管理の方法
持っているお金全部を取引に使うのではなく、「取引に使うお金」と「使わないお金」をしっかり分けます。そして、一回の取引で失ってもいい金額も決めて、ルールを守ります。
改良案の具体的提案
- 売り買いのタイミングを決める「基準の線」の位置などを、もっとうまくいくように調整してみます。
- 「パーセントB」だけでなく、他の道具も組み合わせて使うことで、もっと勝てるタイミングを見つけられるように工夫します。
- 「今は作戦がうまくいきそう!」という時だけ取引するように、今の状況を判断する新しいルールを追加してみます。
実用性の向上(運用上の注意)
- この作戦は、絶対に勝てるというわけではありません。もし試してみるなら、なくなっても困らない少なめのお金で始めましょう。
- 「パーセントB」のサインだけを信じるのではなく、他の道具も使って、いろいろな角度から「本当に今がチャンスかな?」と考えることが大切です。
- 世の中で何が起きているか、ニュースを見ることも大事です。仮想通貨全体の人気や値段の動きにも、気をつけてみましょう。
検証の透明性と信頼性
- データの出所: この実験で使った値段のデータは、実際の仮想通貨取引所からもらったものです。
- 検証のやり方: 「もしも昔、この作戦を使っていたらどうなっていたかな?」というのを、過去のデータを使って計算してみました。
- コード: この作戦を計算するために使ったコンピューターのプログラムは、誰でも見られるように公開しています。
- 注意事項: 注意してほしいのは、これは昔のデータでの結果だということです。だから、これから先も同じようにうまくいくとは限りません。お金を使うときは、自分でよく考えて決めてくださいね。
よくある質問
Q.「パーセントB」って、どういう意味?
A.今の値段が、最近の動きの中で「高い」のか「安い」のかを教えてくれる道具です。「安い」エリアにあるのか、「高い」エリアにあるのかを数字で示してくれます。
Q.ボリンジャーバンドって何?
A.値段がよく動く「範囲」を教えてくれる線のことです。だいたいこの線と線の間で値段は動くことが多いよ、という目安になります。「パーセントB」はこれを元に計算されています。
Q.勝率が低いって、ダメなの?
A.勝つ回数が少なくても、一回でとても大きく勝てれば、全体ではプラスになることもあります。でも、今回の作戦では、小さな負けがたくさん続いてしまったようです。
Q.プロフィットファクター(PF)って何?
A.儲かった金額が、損した金額の何倍だったかを表す数字です。この数字が1より大きければ、全体としてもうかった、ということになります。
Q.HODL(ホードル)ってどういう意味?
A.仮想通貨を売ったり買ったりしないで、ずーっと持っておくことです。今回の作戦は、ただずっと持っているよりも、結果が悪くなってしまった、という意味で使われています。
Q.検証に使用した期間と時間足は?
A.4h足で検証しました。期間は記事内の概要をご確認ください。
Q.最終リターンと最大ドローダウンは?
A.最終リターンは-21.08%、最大DDは37.36%です。
Q.勝率やPFはどの程度?
A.勝率は19.51%、プロフィットファクターは0.72です。
Q.HODLとの比較結果は?
A.HODLは27.54%でした。記事内の比較表をご覧ください。
Q.手数料やスリッページは考慮済み?
A.はい。バックテスト設定の手数料・スリッページを損益に反映しています。
Q.市場環境はトレンド/レンジどちらに近かった?
A.期間中はトレンド優勢と推測されます。
Q.この戦略は初心者でも扱える?
A.基礎的な指標と検証環境の知識があれば扱えます。まずは少額・デモから。
Q.推奨のリスク管理は?
A.最大DDを踏まえた損切り・ポジションサイジングと、システム停止基準の設定を推奨します。
Q.将来の結果は期待できる?
A.過去の結果は将来を保証しません。市場環境やパラメータ適合性に大きく依存します。
Q.改良の方向性は?
A.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。