シェア:

渦巻きサインで未来の値段を予想!『Vortex Indicator』を使ってみた結果

この実験では、「マティック」というデジタルなお金の値段がどう動くかを見てみました。「Vortex Indicator(ボルテックス・インジケーター)」という、未来を予想する道具を使っています。1時間ごとの値段の動きをチェックして、「いつ買うか」「いつ売るか」を判断する作戦です。2024年1月から約8ヶ月間、この作戦がうまくいったのかを調べてみました。

取引数
276
勝率
23.19%
最終リターン
-74.15%
最大DD
77.14%

導入と前提条件

この実験では、「マティック」というデジタルなお金の値段がどう動くかを見てみました。「Vortex Indicator(ボルテックス・インジケーター)」という、未来を予想する道具を使っています。1時間ごとの値段の動きをチェックして、「いつ買うか」「いつ売るか」を判断する作戦です。2024年1月から約8ヶ月間、この作戦がうまくいったのかを調べてみました。

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

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

Vortex Indicator の理論的背景

この作戦の基本的な考え方は、「一度動き出した値段の流れは、しばらく続くことが多い」というものです。「Vortex Indicator」は、プラス線とマイナス線が入れ替わる瞬間を見て、値段の流れが変わるタイミングをつかまえようとします。例えば、プラス線がマイナス線を追い抜いたら、これから値段が上がりそうだと考えて「買い」の合図にします。反対に、マイナス線がプラス線を追い抜いたら、これから下がりそうだと考えて「売り」の合図にします。こうやって、大きな値段の流れに乗ってもうけを狙います。

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

エントリー条件

  • 【買うとき】プラス線がマイナス線の下から上に突き抜けたとき
  • 【売るとき】マイナス線がプラス線の下から上に突き抜けたとき

エグジット条件

  • 【買ったのをやめるとき】マイナス線がプラス線を追い抜いたとき
  • 【売ったのをやめるとき】プラス線がマイナス線を追い抜いたとき

リスク管理

この作戦では、大損しないための工夫も考えます。例えば、「1回の取引で損してもいいのは、持っているお金のこれくらいまで」と、あらかじめ上限を決めておくことが大切です。また、いつでも取引するのではなく、勝てそうなチャンスの時だけにしぼることも重要です。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数276回
勝率23.19%
平均利益2.54%
平均損失-1.36%
期待値-0.46%
プロフィットファクター0.58
最大ドローダウン77.14%
最終リターン-74.15%
シャープレシオ-0.67
HODL(Buy&Hold)-52.1%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
#!/usr/bin/env python3
"""
Vortex Indicator戦略
トレンドの方向と強さを測定
"""
import pandas as pd
import numpy as np


def calculate_vortex_signals(df: pd.DataFrame, vi_period: int = 14) -> pd.DataFrame:
    """
    Vortex Indicatorシグナルを生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    vi_period : int
        VI計算期間(デフォルト: 14)
    
    Returns:
    --------
    pd.DataFrame
        シグナル列が追加されたDataFrame
    """
    df = df.copy()
    
    # Vortex Movement計算
    df['vm_plus'] = np.abs(df['high'] - df['low'].shift(1))
    df['vm_minus'] = np.abs(df['low'] - df['high'].shift(1))
    
    # True Range
    df['tr'] = np.maximum(
        df['high'] - df['low'],
        np.abs(df['high'] - df['close'].shift(1)),
        np.abs(df['low'] - df['close'].shift(1))
    )
    
    # VI+ と VI- 計算
    df['vi_plus'] = df['vm_plus'].rolling(window=vi_period).sum() / df['tr'].rolling(window=vi_period).sum()
    df['vi_minus'] = df['vm_minus'].rolling(window=vi_period).sum() / df['tr'].rolling(window=vi_period).sum()
    
    # シグナル生成(VI+とVI-のクロス)
    df['is_buy'] = (
        (df['vi_plus'] > df['vi_minus']) & 
        (df['vi_plus'].shift(1) <= df['vi_minus'].shift(1))
    )
    
    df['is_sell'] = (
        (df['vi_plus'] < df['vi_minus']) & 
        (df['vi_plus'].shift(1) >= df['vi_minus'].shift(1))
    )
    
    # NaN値をFalseに置換
    df['is_buy'] = df['is_buy'].fillna(False)
    df['is_sell'] = df['is_sell'].fillna(False)
    
    print(f"Vortex Indicator: 期間={vi_period}")
    print(f"買いシグナル数: {df['is_buy'].sum()}")
    print(f"売りシグナル数: {df['is_sell'].sum()}")
    
    return df

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

  1. 1この作戦を試した結果、勝てたのは4回に1回くらい(勝率 約23%)で、ほとんどが負けてしまったようです。
  2. 21回あたりのもうけや損を平均すると、取引すればするほど、お金が減っていく計算になっていました。
  3. 3一番大きく負けたときには、持っていたお金が77%も減ってしまうという、とても危険な場面があったことがわかりました。

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

  1. 1「Vortex Indicator」のサインが出たからといって、必ずもうかるとは限らないことがわかりました。
  2. 2たとえ勝つ回数が少なくても、1回で大きく勝てれば全体でプラスになることもありますが、この作戦ではそれも難しかったようです。
  3. 3「マティック」は値段の動きがとても激しいので、このシンプルな作戦では、その動きについていけなかったのかもしれません。

リスク管理の具体的手法

取引量の決め方

1回の取引に使うお金の量を、持っているお金全体のほんの一部(例えば1%や2%)に決めます。こうすれば、もし負けてしまっても、全体へのダメージを小さくできます。

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

もし損が続いて、持っているお金が一定の割合(例えば10%)減ってしまったら、一度全部の取引をやめて、作戦を見直す時間を作ります。これで、さらに損が大きくなるのを防ぎます。

資金管理の方法

取引でもうけたお金は、次への投資に回す分と、将来のためにとっておく分に分けるなど、上手にお金を管理する計画を立てます。損したからといって、焦って取り返そうと無茶な取引はしません。

改良案の具体的提案

  • 「Vortex Indicator」のサインが出たあとに、本当にその方向に値段が動きそうか、別の道具(例えば、みんなが注目している平均の値段を示す線など)も使ってダブルチェックする。
  • 「これ以上損したらやめる」というルールをもっとしっかり決めたり、「どこまでもうけを伸ばすか」というルールを工夫したりする。
  • 「マティック」だけを見るのではなく、デジタルなお金の世界全体の雰囲気が良いときか悪いときかも考えて、取引するかどうかを決める。

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

  • この実験結果は、あくまで過去のデータで試したものです。未来も同じようにもうかることを保証するものではありません。
  • 実際に自分のお金で試す前に、まずは少額でやってみたり、練習用の「デモ取引」で試したりすることをおすすめします。
  • 世の中の状況はどんどん変わるので、この作戦が今も通用するか、定期的にチェックして見直すことが大切です。

検証の透明性と信頼性

  • データの出所: この実験では、「マティック」というデジタルなお金の過去の値段のデータ(2024年1月21日〜9月10日の1時間ごとの動き)を使いました。
  • 検証のやり方: 勝った回数やもうけのバランスなど、作戦の「成績表」を見て、うまくいったかどうかを判断しています。
  • コード: この実験で使った「Vortex Indicator」の計算やサインを出すためのコンピュータープログラム(Pythonコード)もあります。
  • 注意事項: このお話は、投資の勉強のために作られたもので、「こうすれば絶対もうかるよ」というアドバイスではありません。デジタルなお金の取引は、大きく損をしてしまう可能性もあります。もし挑戦するときは、ご自身の判断と責任でお願いします。

よくある質問

Q.「Vortex Indicator」って、どうやって使うの?

A.「プラス線」と「マイナス線」という2本の線があります。どっちの線が上にあるかを見ることで、値段が「上がる勢い」なのか「下がる勢い」なのかを判断する道具です。

Q.この作戦だと、なんで負けちゃうことが多いの?

A.サインの通りに取引しても、値段が思ったように動かない「だまし」が多かったり、1回負けたときの損が、勝ったときのもうけより大きくなってしまったりすることが原因と考えられます。

Q.「PF: 0.58」ってどういう意味?

A.PFは「プロフィットファクター」といって、もうけと損のバランスを表す数字です。これが1より小さいと、「もうかった合計金額」よりも「損した合計金額」の方が大きい、つまり全体で赤字だった、という意味になります。

Q.「最大DD: 77.14%」って、すごくお金が減っちゃうの?

A.はい、これは「この作戦で一番運が悪かったとき、持っていたお金が77%も減ってしまった」という意味です。とても大きなピンチがあったということなので、注意が必要なサインです。

Q.この作戦をもっと良くするには、どうしたらいい?

A.「Vortex Indicator」だけに頼るのではなく、他の分析方法と組み合わせたり、「これ以上損したらやめる」という「損切り」のルールをしっかり作ったりすることが大切です。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

A.期間中はレンジ・下落優勢と推測されます。

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報