ビットコインの動きを読む!「買いの元気」と「売りの元気」を見つけるエルダーレイ作戦
この作戦は、ビットコインというデジタルなお金が、1時間ごとにどう動くかを見て、いつ買ったり売ったりすればいいかを探す方法です。これを、約1年半のデータで試してみました。この作戦で、ビットコインの値段の「元気」をはかって、上手に取引できるようになりましょう!
導入と前提条件
この作戦は、ビットコインというデジタルなお金が、1時間ごとにどう動くかを見て、いつ買ったり売ったりすればいいかを探す方法です。これを、約1年半のデータで試してみました。この作戦で、ビットコインの値段の「元気」をはかって、上手に取引できるようになりましょう!
【検証】戦略のバックテスト概要
- 戦略名: Elder Ray を使用したトレンド追従戦略
- 対象銘柄: BTC/USDT
- 時間足: 1h
- 期間: 2024-02-08〜2025-08-25(563日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: binance
Elder Ray の理論的背景
この作戦は、「ビットコインの世界では、いつも買いたい人と売りたい人が力比べをしている」という考えが元になっています。みんなが思う「だいたいの値段」(平均線)は、今の値段が高いか安いかの目安になります。もし、「一番安い値段」がこの平均線よりも上になったら、それは「売りたい人の元気がなくなって、買いたい人が元気になってきた!」というサインかもしれません。逆に、「一番高い値段」が平均線より下になったら、それは「買いたい人の元気がなくなって、売りたい人が元気になってきた!」というサインかもしれません。この元気の変化をつかまえて、次の動きを読もうというのが、この作戦の考え方です。
具体的な売買ルール(今回の検証)
エントリー条件
- 「だいたいの値段」(平均線)が右肩上がりで、さらに「売りたい人の元気がなくなって、買いたい人が元気になってきた」というサインが出たら、ビットコインを買います。
- 特に、さっきまで売りたい人が元気だったのに、急に買いたい人が元気になった!という変化の瞬間がチャンスです。
エグジット条件
- 「だいたいの値段」(平均線)が右肩下がりで、さらに「買いたい人の元気がなくなって、売りたい人が元気になってきた」というサインが出たら、持っているビットコインを売ります。
- さっきまで買いたい人が元気だったのに、急に売りたい人が元気になった!という変化の瞬間が売りどきです。
リスク管理
もし予想が外れてしまい、損が出始めたら、すぐにその取引を「やーめた!」と終わらせます。これを「損切り(そんぎり)」と言います。こうすることで、被害が大きくなるのを防ぐんです。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBTC/USDTのOHLCVを取得して前処理
- 『Elder Ray』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 401回 |
勝率 | 27.93% |
平均利益 | 2.42% |
平均損失 | -1.27% |
期待値 | -0.24% |
プロフィットファクター | 0.75 |
最大ドローダウン | 71.54% |
最終リターン | -65.46% |
シャープレシオ | -0.29 |
HODL(Buy&Hold) | 148.36% |
HODL戦略との比較
実装コード(Python)
#!/usr/bin/env python3
"""
Elder Ray戦略
ブルパワーとベアパワーでトレンドを測定
"""
import pandas as pd
import numpy as np
def calculate_elder_ray_signals(df: pd.DataFrame, ema_period: int = 13) -> pd.DataFrame:
"""
Elder Rayシグナルを生成
Parameters:
-----------
df : pd.DataFrame
OHLCVデータ
ema_period : int
EMA計算期間(デフォルト: 13)
Returns:
--------
pd.DataFrame
シグナル列が追加されたDataFrame
"""
df = df.copy()
# EMA計算
df['ema'] = df['close'].ewm(span=ema_period, adjust=False).mean()
# Bull Power(買い圧力)
df['bull_power'] = df['high'] - df['ema']
# Bear Power(売り圧力)
df['bear_power'] = df['low'] - df['ema']
# パワーバランス
df['power_balance'] = df['bull_power'] + df['bear_power']
# シグナル生成
# 買い:EMA上昇中、Bear Powerが負から正へ
df['is_buy'] = (
(df['ema'] > df['ema'].shift(1)) & # EMA上昇中
(df['bear_power'] > 0) & # Bear Powerが正
(df['bear_power'].shift(1) <= 0) # 前期間は負
)
# 売り:EMA下降中、Bull Powerが正から負へ
df['is_sell'] = (
(df['ema'] < df['ema'].shift(1)) & # EMA下降中
(df['bull_power'] < 0) & # Bull Powerが負
(df['bull_power'].shift(1) >= 0) # 前期間は正
)
# NaN値をFalseに置換
df['is_buy'] = df['is_buy'].fillna(False)
df['is_sell'] = df['is_sell'].fillna(False)
print(f"Elder Ray: EMA期間={ema_period}")
print(f"買いシグナル数: {df['is_buy'].sum()}")
print(f"売りシグナル数: {df['is_sell'].sum()}")
return df
なぜこの結果になったのか(3つの理由)
- 1この作戦は、ビットコインの値段が大きく動くチャンスをねらっていたので、たくさん取引をしました。でも、残念ながら結果はマイナスになってしまいました。
- 2勝った回数が少なかったのは、値段の元気がコロコロ変わってしまって、予想が当たりにくかったからだと考えられます。
- 3一度にすごく大きく損をしてしまったことがあったので、最終的なマイナスも大きくなりました。これは、予想が大きく外れたり、「損切り」のルールがうまく働かなかったりしたときに起こります。
この結果から学べる3つの教訓
- 1たくさん取引すれば儲かる、というわけではないことが分かりました。
- 2値段の「元気」を見るだけでは、ビットコインの複雑な動きを全部は読みきれないことがある、と知りました。
- 3損を小さくするための「損切り」というルールを、もっとうまく使う必要があると学びました。
リスク管理の具体的手法
取引量の決め方
一回の取引で使うお金は、自分が持っているお小遣いのごく一部(例えば100分の1とか)だけにします。そうすれば、もし失敗しても、大ケガをしなくて済みます。
損失が大きくなったときの対処法
もし、持っているお金が一番多かった時から、すごく減ってしまったら(これを最大ドローダウンと言います)、一度取引をお休みして、作戦を考え直すことが大切です。7割以上も減ってしまうのは、とても危ないサインです。
資金管理の方法
「この取引で、もし負けても失っていいのはここまで」という上限を、あらかじめ決めておくことがとても大事です。利益が出ているときは、その利益を元手にもう少し取引を増やすこともできますが、慎重に進める必要があります。
改良案の具体的提案
- 「今だ!」と思って買う・売るための条件を、もっと厳しくして、本当にチャンスの時だけ取引するようにします。
- 損が大きくなる前に、自動で取引をストップする「損切り」の仕組みを、もっと上手に設定します。
- 天気予報で気温や湿度、風の強さなど色々な情報を見るように、他の道具(テクニカル指標)も一緒に使って、もっと確かなチャンスを見つけるようにします。
実用性の向上(運用上の注意)
- この作戦は、ビットコインみたいに値段の上がり下がりが激しいものに向いていますが、その分、大きく損をする可能性もあるので注意が必要です。
- 作戦のルールを少し変えるだけで、結果が全然ちがってくることがあります。自分に合ったやり方を見つけるために、色々と試してみるのがおすすめです。
- この作戦を実際のお金で試す前に、過去のデータで「練習試合」(バックテスト)をしてみましょう。どれくらい危ないのか、しっかり確かめておくことが大切です。
検証の透明性と信頼性
- データの出所: この作戦の結果は、みんなが見られるビットコイン(BTC/USDT)の1時間ごとのデータを使って計算しました。
- 検証のやり方: この計算は、パソコンのプログラミングで行いました。データ分析でよく使われる道具(Pythonや専門のライブラリ)を使って、間違いがないか何度も確かめました。
- コード: この計算に使ったプログラムの設計図(コード)は、誰でも見られるようになっています。興味があれば、どんな計算をしているか見たり、自分で動かしてみたりできます。
- 注意事項: このお話は、昔のデータを見て考えたもので、未来も同じようにうまくいくとは限りません。お金を増やす挑戦(投資)には、損をする可能性も必ずあります。やるときは、自分でよく考えて、自分の責任で行ってくださいね。