ドージコインで勝てる?KVO作戦を大調査!勝率17%のひみつ
この作戦は、「ドージコイン」というコインを5分ごとに見て、「KVO」という道具を使って、いつ買ったり売ったりすればいいかを探すものです。でも、結果は100回やっても17回くらいしか勝てない、ちょっと厳しいものでした。どうしてこうなったのか、一緒に見ていきましょう。
取引数
8698
勝率
16.98%
最終リターン
-100.00%
最大DD
100.00%
導入と前提条件
この作戦は、「ドージコイン」というコインを5分ごとに見て、「KVO」という道具を使って、いつ買ったり売ったりすればいいかを探すものです。でも、結果は100回やっても17回くらいしか勝てない、ちょっと厳しいものでした。どうしてこうなったのか、一緒に見ていきましょう。
【検証】戦略のバックテスト概要
- 戦略名: Klinger Volume Oscillator を使用したトレンド追従戦略
- 対象銘柄: DOGE/USDT
- 時間足: 5m
- 期間: 2024-10-01〜2025-08-25(327日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: okx
Klinger Volume Oscillator の理論的背景
KVOは、値段の動きと「どれくらいの人が取引しているか」を合わせて、コインの勢いをはかる道具です。たくさんの人が取引している時に値段が動くと「勢いが強い!」と考えます。KVOの線と目安の線が交差したときが、勢いが変わるサイン、つまり売買のチャンスかもしれない、と考えているんです。
具体的な売買ルール(今回の検証)
エントリー条件
- KVOの線が目安の線を下から上に追い越したとき(「今が買い時かも!」のサインです)
- KVOの線が目安の線を上から下に追い越したとき(「今が売り時かも!」のサインです)
エグジット条件
- コインを買って持っているときに、KVOの線が目安の線を上から下に追い越したとき(ここで売って取引を終えます)
- コインを売っているときに、KVOの線が目安の線を下から上に追い越したとき(ここで買い戻して取引を終えます)
リスク管理
この作戦では、残念ながらお金が全部なくなってしまいました。大きな損をしないためには、一度に大きなお金を使いすぎないことや、「ここまで損したらやめる」というルールをあらかじめ決めておくことが、とても大切です。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでDOGE/USDTのOHLCVを取得して前処理
- 『Klinger Volume Oscillator』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 8698回 |
勝率 | 16.98% |
平均利益 | 0.79% |
平均損失 | -0.64% |
期待値 | -0.39% |
プロフィットファクター | 0.23 |
最大ドローダウン | 100% |
最終リターン | -100% |
シャープレシオ | -2.29 |
HODL(Buy&Hold) | 91.14% |
HODL戦略との比較
実装コード(Python)
strategy.py
"""
Klinger Volume Oscillator Signal
KVOのゼロクロス/シグナルクロスで判定するのだ。
"""
import pandas as pd
def _ema(s: pd.Series, n: int) -> pd.Series:
return s.ewm(span=n, adjust=False).mean()
def _kvo(df: pd.DataFrame) -> pd.Series:
hlc3 = (df['high'] + df['low'] + df['close']) / 3
trend = (hlc3 > hlc3.shift(1)).astype(int) - (hlc3 < hlc3.shift(1)).astype(int)
dm = df['high'] - df['low']
cm = dm
cm.iloc[0] = dm.iloc[0]
for i in range(1, len(df)):
if trend.iloc[i] == trend.iloc[i-1]:
cm.iloc[i] = cm.iloc[i-1] + dm.iloc[i]
else:
cm.iloc[i] = dm.iloc[i-1] + dm.iloc[i]
vf = df['volume'] * 2 * ((df['close'] - df['low']) - (df['high'] - df['close'])) / (df['high'] - df['low']).replace(0, 1) * 100 * cm
kvo = _ema(vf, 34) - _ema(vf, 55)
return kvo
def calculate_kvo_signals(df: pd.DataFrame, signal_period: int = 13) -> pd.DataFrame:
out = df.copy()
kvo = _kvo(out)
sig = _ema(kvo, signal_period)
prev = (kvo - sig).shift(1)
now = kvo - sig
out['is_buy'] = (now > 0) & (prev <= 0)
out['is_sell'] = (now < 0) & (prev >= 0)
out['kvo'] = kvo
out['kvo_signal'] = sig
return out
なぜこの結果になったのか(3つの理由)
- 1勝率が低かったのは、KVOの「今だ!」というサインが出ても、思った通りに値段が動かなかった「ニセの合図」が多かったからかもしれません。
- 25分ごとという短い時間で見ていたので、値段の動きがコロコロ変わりすぎて、作戦がうまくはまらなかったのかもしれません。
- 3KVOを計算するための設定(数字)が、この時のドージコインの動きに合っていなかった可能性も考えられます。
この結果から学べる3つの教訓
- 1「これは良さそう!」と思える作戦でも、実際にやってみるとうまくいかないことがある、ということが分かりました。
- 2勝率が低くても、たくさん取引すればプラスになることもありますが、今回の作戦ではそうはなりませんでした。
- 3うまくいかなくても、「なぜダメだったんだろう?」と考えることが、次に活かすための大切な一歩だと学びました。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金は、持っているお金全体のすごく小さな一部(例えば100分の1とか)にしましょう。そうすれば、もし負けても大きなダメージにはなりません。
損失が大きくなったときの対処法
もし損がどんどん増えて、持っているお金の10分の1がなくなったら、その日はもう取引をやめる、といった自分だけのルールを決めておきましょう。
資金管理の方法
取引で儲かったお金も、計画的に使いましょう。全部を次の取引に使うのではなく、一部は貯金するなど、大切に管理することが大事です。
改良案の具体的提案
- KVOだけでなく、他の道具も一緒に使って、もっと確かな「買い時・売り時」のサインを探すようにしてみる。
- KVOの計算に使う数字(設定)を色々と変えてみて、ドージコインに一番合うものを見つけ出す。
- 5分ごとではなく、1時間ごとなど、見る時間を変えてみたり、ドージコイン以外のコインで試してみたりする。
実用性の向上(運用上の注意)
- この作戦はうまくいきませんでしたが、KVOの「勢いをはかる」という考え方自体は、他の場面で役に立つかもしれません。
- 新しい作戦を試す前には、必ず昔のデータで「もしこの作戦を使っていたらどうなっていたか」をお試し(バックテスト)することが大切です。
- 絶対に勝てる作戦はありません。損する可能性も考えて、なくなっても困らないお金で挑戦しましょう。
検証の透明性と信頼性
- データの出所: このお話は、実際に取引した回数や勝率などのデータをもとにしています。
- 検証のやり方: もらったデータや作戦のプログラムを見て、どうしてこうなったのかを分析しました。
- コード: 作戦のプログラムの設計図は見られるようになっています。
- 注意事項: このお話は、投資の勉強のためのもので、これを真似して投資することをおすすめするものではありません。もし投資をするなら、必ず自分でよく考えて、自分の責任で行ってくださいね。
よくある質問
Q.KVOって何?どうやって使うの?
A.KVOは、コインの「勢い」をはかる道具の一つです。グラフに出てくる2本の線が交差したときを、買ったり売ったりするサインとして使います。
Q.勝率が約17%って、すごく低いね。どうして?
A.「今がチャンス!」というサインが出ても、反対に値段が動いてしまう「ニセの合図」が多かったのかもしれません。特に、5分ごとのような短い時間での取引は、値段の動きが激しくて予想が難しいんです。
Q.「期待値」や「PF」って何?
A.「期待値」は、1回の取引で平均いくら儲かるか(損するか)という数字です。「PF(プロフィットファクター)」は、儲かった合計額を損した合計額で割ったものです。どちらも1より大きいと、全体で儲かっていることになります。
Q.HODLより成績が悪いの?
A.「HODL(ホドル)」は、コインを買って「ずっと持っておく」ことです。今回の作戦は、ただずっと持っているよりも結果が悪くなってしまいました。つまり、何もしない方が良かった、ということになります。
Q.この作戦はもう使えないの?
A.今回のやり方ではうまくいきませんでしたが、KVOの考え方自体がダメというわけではありません。設定を変えたり、他の道具と組み合わせたりすれば、うまくいく方法が見つかる可能性はあります。
Q.検証に使用した期間と時間足は?
A.5m足で検証しました。期間は記事内の概要をご確認ください。
Q.最終リターンと最大ドローダウンは?
A.最終リターンは-100.00%、最大DDは100.00%です。
Q.勝率やPFはどの程度?
A.勝率は16.98%、プロフィットファクターは0.23です。
Q.HODLとの比較結果は?
A.HODLは91.14%でした。記事内の比較表をご覧ください。
Q.手数料やスリッページは考慮済み?
A.はい。バックテスト設定の手数料・スリッページを損益に反映しています。
Q.市場環境はトレンド/レンジどちらに近かった?
A.期間中はトレンド優勢と推測されます。
Q.この戦略は初心者でも扱える?
A.基礎的な指標と検証環境の知識があれば扱えます。まずは少額・デモから。
Q.推奨のリスク管理は?
A.最大DDを踏まえた損切り・ポジションサイジングと、システム停止基準の設定を推奨します。
Q.将来の結果は期待できる?
A.過去の結果は将来を保証しません。市場環境やパラメータ適合性に大きく依存します。
Q.改良の方向性は?
A.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。