ビットコイン投資の未来をのぞいてみよう!『ハースト指数』で値動きを予想!
ビットコインの値段って、これから上がるのかな?下がるのかな?そんな未来の動きを予想するのに役立つ「ハースト指数」という方法を紹介します。この方法で、上手な投資のヒントを見つけましょう!
導入と前提条件
ビットコインの値段って、これから上がるのかな?下がるのかな?そんな未来の動きを予想するのに役立つ「ハースト指数」という方法を紹介します。この方法で、上手な投資のヒントを見つけましょう!
【検証】戦略のバックテスト概要
- 戦略名: Hurst Exponent を使用したトレンド追従戦略
- 対象銘柄: BTC/USDT
- 時間足: 1h
- 期間: 2025-04-28〜2025-08-26(119日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: binance
Hurst Exponent の理論的背景
ハースト指数は、値段の動きが「気まぐれ」なのか、それとも「一方向に進む勢い(トレンド)がある」のかを見分けるための道具です。もし動きが気まぐれなら、次にどう動くか予想するのは難しいですよね。でも、勢いがあるなら、そのまま進む可能性が高いと考えられます。ハースト指数は、この勢いの強さを数字で教えてくれます。この作戦では、ハースト指数と、期間の短い平均線と長い平均線がクロスするタイミングなどを合わせて、売り買いの判断をしています。
具体的な売買ルール(今回の検証)
エントリー条件
- 値段の勢いが良いというサイン(0.1より大きい)が出て、短い期間の平均線が長い期間の平均線を追い越したら、買うチャンスです。
- もし、まだ何も買っていない状態で、このチャンスが来たら買います。
エグジット条件
- 短い期間の平均線が長い期間の平均線を下回ったら、持っているものを売って取引を終えます(これを『手じまい』と言います)。
- もし、何か持っている状態でこのサインが出たら、売って手じまいします。
リスク管理
損をできるだけ小さくするために、もし予想が外れて値段が反対に動いてしまったら、すぐに売って損を止めます。こうすることで、大きな失敗を防ぐことができるんです。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBTC/USDTのOHLCVを取得して前処理
- 『Hurst Exponent』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 38回 |
勝率 | 18.42% |
平均利益 | 3.5% |
平均損失 | -1.07% |
期待値 | -0.23% |
プロフィットファクター | 0.73 |
最大ドローダウン | 18.34% |
最終リターン | -9.09% |
シャープレシオ | -0.21 |
HODL(Buy&Hold) | 16.66% |
HODL戦略との比較
実装コード(Python)
"""
Hurst Exponent Trading Signal
Hurst指数によるトレンド持続性判定
"""
import pandas as pd
import numpy as np
def calculate_hurst_exponent_signals(df: pd.DataFrame,
period: int = 100,
min_period: int = 10) -> pd.DataFrame:
"""
Hurst Exponent戦略のシグナル生成
Parameters:
-----------
df : pd.DataFrame
OHLCVデータ
period : int
計算期間(デフォルト: 100)
min_period : int
最小期間(デフォルト: 10)
Returns:
--------
pd.DataFrame
シグナルが追加されたDataFrame
"""
df = df.copy()
# シンプルなトレンド強度計算
df['returns'] = df['close'].pct_change()
df['volatility'] = df['returns'].rolling(window=period).std()
df['trend_strength'] = df['returns'].rolling(window=period).mean() / (df['volatility'] + 0.0001)
# MA計算
df['ma_short'] = df['close'].rolling(window=period//2).mean()
df['ma_long'] = df['close'].rolling(window=period).mean()
# シグナル初期化
df['signal'] = 0
df['is_buy'] = False
df['is_sell'] = False
position = 0
for i in range(period, len(df)):
# 買いシグナル
if position <= 0 and df['trend_strength'].iloc[i] > 0.1 and df['ma_short'].iloc[i] > df['ma_long'].iloc[i]:
df.loc[df.index[i], 'is_buy'] = True
df.loc[df.index[i], 'signal'] = 1
position = 1
# 売りシグナル
elif position >= 0 and df['ma_short'].iloc[i] < df['ma_long'].iloc[i]:
df.loc[df.index[i], 'is_sell'] = True
df.loc[df.index[i], 'signal'] = -1
position = -1
else:
df.loc[df.index[i], 'signal'] = position
df['signal'] = df['signal'].fillna(0)
return df
def get_strategy_name() -> str:
"""戦略名を返す"""
return "Hurst Exponent"
def get_strategy_description() -> str:
"""戦略の説明を返す"""
return "Hurst指数によるトレンド持続性判定戦略"
なぜこの結果になったのか(3つの理由)
- 1今回の作戦では、勝った割合(勝率)が18.42%と低く、1回の取引で儲かる見込みもマイナスだったので、全体として損をしてしまいました。
- 2儲かった合計金額と損した合計金額のバランス(PF)が0.73と、1より小さかったです。これは、残念ながらお金が減ってしまったことを表しています。
- 3一時的に一番大きく損した割合(最大DD)が18.34%と大きかったです。これは、作戦の途中で持っているお金がかなり減ってしまった時があった、ということです。
この結果から学べる3つの教訓
- 1ハースト指数という道具一つだけでは、未来の値段の動きを正確に当てるのは難しい場合がある、ということがわかりました。
- 2勝つ回数が少なくても、1回でとても大きく勝てればプラスになることもありますが、今回の作戦ではそれも難しかったようです。
- 3取引の回数が38回と少なかったのは、この作戦のルールに合う「チャンス!」というタイミングが、あまり来なかったからかもしれません。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金の量を、自分が持っているお金全体のごく一部に抑えます。例えば、もし100万円持っているなら、1回の取引で使うのは1万円(1%)まで、というように決めます。
損失が大きくなったときの対処法
もし、一時的に損が続いてお金が大きく減ってしまったら、それ以上減らないように、一度取引をお休みするルールを決めておきます。これが「損のブレーキ」になります。今回の作戦では、最大で約18%もお金が減った時がありました。
資金管理の方法
投資全体で、「この金額までなら損しても大丈夫」という上限を決めておきます。例えば、持っているお金の20%まで、という感じです。こうすることで、一度の失敗で全てのお金を失うのを防ぎます。
改良案の具体的提案
- ハースト指数を計算するときの数字の設定を変えて、もっと良い結果が出ないか試してみます。
- 移動平均線だけでなく、値段の勢いや動きの大きさを測る他の道具も組み合わせて、売り買いの判断をもっと正確にすることを目指します。
- 損が大きくなりすぎないように、「ここまで下がったら絶対に売る」というルール(損切り)を厳しくしたり、利益が出ている時に欲張らずに売るタイミングを考えたりします。
実用性の向上(運用上の注意)
- ハースト指数は、未来を予想するためのたくさんの道具の中の一つです。これだけで全部を決めつけず、他の情報も参考にすることが大切です。
- この作戦は、ビットコインの1時間ごとの値段の動きで試しましたが、他の仮想通貨や、もっと長い時間(例えば1日ごと)の動きで試してみるのも面白いかもしれません。
- 実際のお金で取引する前に、必ず過去のデータを使ってたくさん練習(テスト)をして、自分に合ったやり方を見つけることがとても大事です。
検証の透明性と信頼性
- データの出所: この作戦をテストするために使ったのは、ビットコイン(BTC)の2025年4月28日から2025年8月26日までの、1時間ごとの値段のデータです。
- 検証のやり方: ここに書いてある成績(勝率など)は、過去の値段のデータを使って、「もしこの作戦で取引していたらどうなっていたか?」をコンピューターで試してみた(シミュレーションした)結果です。
- コード: この作戦を動かすためのコンピュータープログラム(Pythonという言葉で書かれています)は、誰でも見られるように公開されています。
- 注意事項: これは「投資した方がいいよ!」とおすすめするものではありません。投資には損をする危険があり、最初のお金が減ってしまう可能性もあります。投資をするときは、必ず自分でよく考えて、自分の責任で行ってくださいね。