シェア:

ドージコインで勝てる?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)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数8698回
勝率16.98%
平均利益0.79%
平均損失-0.64%
期待値-0.39%
プロフィットファクター0.23
最大ドローダウン100%
最終リターン-100%
シャープレシオ-2.29
HODL(Buy&Hold)91.14%

HODL戦略との比較

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. 1勝率が低かったのは、KVOの「今だ!」というサインが出ても、思った通りに値段が動かなかった「ニセの合図」が多かったからかもしれません。
  2. 25分ごとという短い時間で見ていたので、値段の動きがコロコロ変わりすぎて、作戦がうまくはまらなかったのかもしれません。
  3. 3KVOを計算するための設定(数字)が、この時のドージコインの動きに合っていなかった可能性も考えられます。

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

  1. 1「これは良さそう!」と思える作戦でも、実際にやってみるとうまくいかないことがある、ということが分かりました。
  2. 2勝率が低くても、たくさん取引すればプラスになることもありますが、今回の作戦ではそうはなりませんでした。
  3. 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.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。

著者情報