ビットコイン売買チャレンジ!「QStick作戦」の結果はどうだった?
この作戦は、ビットコインの1時間ごとの値段の動きを見て、売り買いのタイミングを探す方法です。「値上がりの勢い」が強いときに買って、弱まったときに売る、というシンプルな考え方なんですよ。2024年7月から約1年間、この作戦を試したらどうなったか、結果を見ていきましょう!
導入と前提条件
この作戦は、ビットコインの1時間ごとの値段の動きを見て、売り買いのタイミングを探す方法です。「値上がりの勢い」が強いときに買って、弱まったときに売る、というシンプルな考え方なんですよ。2024年7月から約1年間、この作戦を試したらどうなったか、結果を見ていきましょう!
【検証】戦略のバックテスト概要
- 戦略名: QStick を使用したトレンド追従戦略
- 対象銘柄: BTC/USDT
- 時間足: 1h
- 期間: 2024-07-21〜2025-08-25(399日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: binance
QStick の理論的背景
この作戦が注目しているのは、値段が動く「パワー」です。メーターの点数がどんどん上がっていれば、「値段が元気に上がっているサイン」と考えられます。逆に、点数が下がってマイナスになったら、「パワーがなくなって、値段が下がりそう」と判断します。このパワーの変化の瞬間を見つけて、うまく波に乗ろうというのが狙いです。メーターがプラスとマイナスを行ったり来たりする瞬間が、大事なポイントになります。
具体的な売買ルール(今回の検証)
エントリー条件
- 「値上がりの勢いメーター」が、マイナスの点数からプラスの点数に変わったとき(買いの合図)
エグジット条件
- 「値上がりの勢いメーター」が、プラスの点数からマイナスの点数に変わったとき(売りの合図)
リスク管理
この作戦で大切なのが、「損切り」という考え方です。もし予想と反対に値段が動いて損が出そうになったら、大きな損になる前に取引をやめるルールのことです。また、いきなり大きなお金を使わずに、少しのお金で試してみることも大事ですよ。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBTC/USDTのOHLCVを取得して前処理
- 『QStick』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 753回 |
勝率 | 17.93% |
平均利益 | 1.67% |
平均損失 | -0.79% |
期待値 | -0.35% |
プロフィットファクター | 0.48 |
最大ドローダウン | 93.25% |
最終リターン | -93.13% |
シャープレシオ | -1.13 |
HODL(Buy&Hold) | 69.08% |
HODL戦略との比較
実装コード(Python)
"""
QStick Signal
QStick = SMA(close - open) のゼロクロスで判定するのだ。
"""
import pandas as pd
def calculate_qstick_signals(df: pd.DataFrame, period: int = 10) -> pd.DataFrame:
out = df.copy()
q = (out['close'] - out['open']).rolling(period).mean()
prev = q.shift(1)
out['is_buy'] = (q > 0) & (prev <= 0)
out['is_sell'] = (q < 0) & (prev >= 0)
out['qstick'] = q
return out
なぜこの結果になったのか(3つの理由)
- 1テスト期間中、売り買いの回数が753回もあって、とても頻繁に取引が行われたことがわかります。
- 2100回取引したら、勝てたのは18回くらい(勝率17.93%)で、残念ながら負けてしまうことが多かったようです。
- 3儲けたお金の合計と、損したお金の合計を比べると(PF)、損したお金の方が2倍以上も多かったことを示しています。
この結果から学べる3つの教訓
- 1値段の「勢い」だけで売り買いのタイミングを決めるのは、思ったより難しい場合があるということがわかりました。
- 2勝つ回数が少なくても、一回でとても大きく勝てれば作戦は成功することもありますが、今回はそうはなりませんでした。
- 3たくさん取引をしても、一回一回の取引の期待がマイナスだと、続ければ続けるほどお金が減ってしまうということを学びました。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金は、持っているお金全体のほんの一部にしましょう。例えば、10万円持っていたら、1回に使うのは1000円や2000円くらいにすると安心です。
損失が大きくなったときの対処法
もし負けが続いて、持っているお金が大きく減ってしまったら(最大DDが大きくなったら)、いったん取引をお休みして、作戦をもう一度考え直すことが大切です。
資金管理の方法
1回の取引で「もし負けても、この金額まで」という上限を決めておきます。そうすれば、一度に全部のお金を失ってしまうような危険を避けられます。
改良案の具体的提案
- 「勢い」だけじゃなく、他の情報(例えば、値段がどれくらい激しく動くかを示す道具など)も組み合わせて、もっと良いタイミングを探してみる。
- 「ここまで損をしたら絶対にやめる」という損切りルールを、もっと厳しく決めて守るようにする。
- 売り買いのタイミングだけでなく、市場全体の雰囲気(例えば、みんなが強気ムードか、弱気ムードかなど)も考えてみる。
実用性の向上(運用上の注意)
- この作戦は勢いの変化を見るものなので、値段があまり動かない、おとなしい時間帯では、うまく働かないかもしれません。
- テストの結果を見ると、なかなか勝つのが難しい作戦なので、もし試すなら「損切り」のルールは絶対に守ることがとても重要です。
- 実は、ただビットコインを「ずっと持っておく」だけの方が、この作戦より結果が良かったんです。この作戦で利益を出すには、もっと工夫が必要みたいですね。
検証の透明性と信頼性
- データの出所: この分析は、提供されたデータを使って行われました。
- 検証のやり方: 過去のビットコインのデータを使って、この「QStick作戦」がどれくらいうまくいくかをテストしました。
- コード: この作戦を計算するためのコンピュータープログラム(コード)は、見ることができるようになっています。
- 注意事項: これは昔のデータを使ったテスト結果なので、将来も同じようにお金が増えることを保証するものではありません。投資は、自分の判断と責任で行いましょう。