シェア:

未来のヒントが見える?XRPの価格を追いかける特別な線「ハルMA」

この作戦は、「ハルMA」という特別な線を使って、XRPというコインの値段の動きを追いかけます。この線は、値段の元気の良さを素早くキャッチして、「いつ買うと良いかな?」「いつ売ると良いかな?」というタイミングのヒントを教えてくれます。今回は、4時間ごとの値段のグラフを使って、過去約1年間(2023年8月27日~2024年8月25日)のデータで、この作戦がうまくいったかどうかを試してみました。

取引数
107
勝率
36.45%
最終リターン
+330.56%
最大DD
39.66%

導入と前提条件

この作戦は、「ハルMA」という特別な線を使って、XRPというコインの値段の動きを追いかけます。この線は、値段の元気の良さを素早くキャッチして、「いつ買うと良いかな?」「いつ売ると良いかな?」というタイミングのヒントを教えてくれます。今回は、4時間ごとの値段のグラフを使って、過去約1年間(2023年8月27日~2024年8月25日)のデータで、この作戦がうまくいったかどうかを試してみました。

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

  • 戦略名: Hull MA を使用したトレンド追従戦略
  • 対象銘柄: XRP/USDT
  • 時間足: 4h
  • 期間: 2024-08-27〜2025-08-25(362日間)
  • 初期資金: $10,000
  • 手数料・スリッページ: 0.1% / 0.1%
  • 取引所: kucoin

Hull MA の理論的背景

この作戦は、「流れに乗る」という考え方が元になっています。これは、値段が上がっている波に乗って買い、下がっている波に乗って売ることで、もうけを狙うやり方です。ハルMAは、最近の値段の動きを特に大事にするので、流れの変わり目を早く見つけるのが得意です。だから、値段の元気の向きが変わるサインをいち早く見つけて、良いタイミングで売り買いを始めることを目指します。難しい計算はなくて、線がどっちを向いているかを見るだけで、今の全体の元気の良さがわかるんです。

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

エントリー条件

  • ハルMAの線が下向きから上向きに変わったとき(買うタイミングのしるし)
  • そのときに、XRPの実際の値段がハルMAの線よりも上にあるとき(元気がある証拠!)

エグジット条件

  • ハルMAの線が上向きから下向きに変わったとき(やめるタイミングのしるし)
  • そのときに、XRPの実際の値段がハルMAの線よりも下にあるとき(元気がなくなってきた証拠)

リスク管理

もし、予想と反対に値段が動いて損をしてしまったら、「ここまで損したらやめる」と前もって決めておいたラインに来たときに、すぐに取引をやめます。これを「損切り」と言って、大きな失敗を防ぐための大事なルールです。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数107回
勝率36.45%
平均利益9.61%
平均損失-2.59%
期待値1.85%
プロフィットファクター1.53
最大ドローダウン39.66%
最終リターン330.56%
シャープレシオ0.83
HODL(Buy&Hold)409.69%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
#!/usr/bin/env python3
"""
Hull Moving Average戦略
遅延を減らした滑らかな移動平均線
"""
import pandas as pd
import numpy as np


def calculate_hull_ma_signals(df: pd.DataFrame, period: int = 20) -> pd.DataFrame:
    """
    Hull Moving Averageシグナルを生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    period : int
        HMA計算期間(デフォルト: 20)
    
    Returns:
    --------
    pd.DataFrame
        シグナル列が追加されたDataFrame
    """
    df = df.copy()
    
    # WMA(加重移動平均)計算関数
    def wma(series, period):
        weights = np.arange(1, period + 1)
        return series.rolling(period).apply(lambda x: np.dot(x, weights) / weights.sum(), raw=True)
    
    # Hull Moving Average計算
    half_period = int(period / 2)
    sqrt_period = int(np.sqrt(period))
    
    df['wma_half'] = wma(df['close'], half_period)
    df['wma_full'] = wma(df['close'], period)
    df['raw_hma'] = 2 * df['wma_half'] - df['wma_full']
    df['hma'] = wma(df['raw_hma'], sqrt_period)
    
    # HMAの傾き(トレンド方向)
    df['hma_slope'] = df['hma'] - df['hma'].shift(1)
    
    # シグナル生成(HMAの方向転換)
    df['is_buy'] = (
        (df['hma_slope'] > 0) & 
        (df['hma_slope'].shift(1) <= 0) &
        (df['close'] > df['hma'])
    )
    
    df['is_sell'] = (
        (df['hma_slope'] < 0) & 
        (df['hma_slope'].shift(1) >= 0) &
        (df['close'] < df['hma'])
    )
    
    # NaN値をFalseに置換
    df['is_buy'] = df['is_buy'].fillna(False)
    df['is_sell'] = df['is_sell'].fillna(False)
    
    print(f"Hull MA: 期間={period}")
    print(f"買いシグナル数: {df['is_buy'].sum()}")
    print(f"売りシグナル数: {df['is_sell'].sum()}")
    
    return df

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

  1. 1ハルMAは値段の動きにすぐついていけるので、流れの変わり目を早く見つけられたからだと思います。
  2. 24時間ごとの値段の動きを見たことで、細かいギザギザした動きに惑わされず、大きな流れをつかみやすかったからだと思います。
  3. 3ルールがとても簡単で、わかりやすかったからだと思います。

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

  1. 1ハルMAみたいに、値段の動きを素早くキャッチできる道具を使うと、うまくいくことがあるってことですね。
  2. 2値段の大きな流れに乗る作戦は、うまくいくことが多いみたいです。
  3. 3「損切り」みたいに、もしもの時のルールをしっかり決めておくことで、大失敗を防いで、コツコツ成績を上げていけるってことです。

リスク管理の具体的手法

取引量の決め方

1回のチャレンジで使っていいお金を、持っているお金全体の少しだけ(例えば100分の1とか)に決めます。そうすれば、もし負けても、すぐにお金が全部なくなってしまうのを防げます。

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

もし、もうかっていたのに、だんだん損が大きくなってきたら、「ここまで減ったらやめる」というラインでストップします。これで、もっと大きな損になるのを防ぐんです。

資金管理の方法

持っているお金のうち、いくらを使って、1回のチャレンジで最大いくらまでなら損しても大丈夫か、前もって決めておきます。こうすることで、長く安定してチャレンジを続けられます。

改良案の具体的提案

  • ほかの道具(指標)と組み合わせて、もっと良い売り買いのタイミングを探してみます。
  • 「ここまで損したらやめる」という損切りのルールを、もっと上手な設定にできないか考えて、失敗を減らす工夫をします。
  • 値段があまり動かない時や、すごく激しく動く時など、いろんな場面でこの作戦がうまくいくか試してみて、もっと良くしていきます。

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

  • この作戦は、値段がはっきりと上がり続けている時や、下がり続けている時みたいに、わかりやすい流れがある時に、特にうまくいきやすいです。
  • 世の中の大きなニュースやイベントにも気をつけておきましょう。値段が急に大きく動くことがあるからです。
  • まずは少ないお金で試してみて、やり方に慣れてきたら、少しずつ使うお金を増やしていくのがおすすめです。

検証の透明性と信頼性

  • データの出所: 昔のXRPというコインの値段のデータ(4時間ごとの記録)を使いました。
  • 検証のやり方: 昔の値段のデータを使って、「もしこの作戦で売り買いしていたら、どうなっていたかな?」という実験(バックテスト)をしました。
  • コード: この作戦を動かすためのプログラムは、みんなが見られるように公開されています。
  • 注意事項: この実験結果は、あくまで昔のデータで試したものです。だから、これからも同じようにうまくいくとは限りません。お金を使うときは、自分でよく考えて決めてくださいね。

よくある質問

Q.ハルMAって、何でできているの?

A.ハルMAは、いくつかの「平均の線」を特別な計算で合体させて作られています。特に、最近の値段の動きを大事にすることで、実際の動きにすぐついていけるように工夫されているんですよ。

Q.勝率が36.45%って、勝つ回数が少なくないですか?

A.はい、勝つ回数は少ないですが、1回勝った時のもうけが、1回負けた時の損よりもずっと大きいんです。だから、トータルで見るとプラスになりやすい作戦です。「損は小さく、もうけは大きく」を狙っているんですよ。

Q.最大DDが39.66%って、どういう意味ですか?

A.最大DD(ドローダウン)は、お金が一番増えた時から、どれくらい一番大きく減ってしまったか、という割合です。39.66%ということは、一番調子が良かった時に100万円あったとしたら、そこから60万円くらいまで減ってしまった時期があった、ということです。だからこそ、「ここまで損したらやめる」というルールが大事なんです。

Q.HODL(ホドル)って何ですか?

A.HODLは、コインを買って、値段が上がっても下がっても売らずに、ずーっと持ち続けることです。ちなみに今回のテストでは、この作戦で出た結果(330.56%のプラス)より、同じ期間ただ持ち続けた場合(409.69%のプラス)のほうが良い結果でした。相場の状況によっては、何もしないで持っているだけの方が、良い結果になることもあるんですね。

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

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

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

A.最終リターンは330.56%、最大DDは39.66%です。

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

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

Q.HODLとの比較結果は?

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

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

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

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

A.期間中はトレンド優勢と推測されます。

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報