シェア:

ビットコインの未来の値段を予想? 2つの道具で「買う・売る」タイミングを見つける方法

この作戦は、ビットコインの値段が短い時間でどう動くかを予想してみるものです。「RSI」と「移動平均線」という2つの道具を使って、いつ買うか、いつ売るかを探します。過去のデータで試してみた結果を見てみましょう。

取引数
156
勝率
37.18%
最終リターン
-40.34%
最大DD
43.79%

導入と前提条件

この作戦は、ビットコインの値段が短い時間でどう動くかを予想してみるものです。「RSI」と「移動平均線」という2つの道具を使って、いつ買うか、いつ売るかを探します。過去のデータで試してみた結果を見てみましょう。

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

  • 戦略名: RSI + MA Combined を使用したトレンド追従戦略
  • 対象銘柄: BTC/USDT
  • 時間足: 5m
  • 期間: 2024-07-21〜2025-08-25(399日間)
  • 初期資金: $10,000
  • 手数料・スリッページ: 0.1% / 0.1%
  • 取引所: binance

RSI + MA Combined の理論的背景

この作戦の基本的な考え方は、値段が持っている「パワー」と「平均に戻ろうとする力」の2つを利用することです。「RSI」は、値段が急に上がりすぎたり、下がりすぎたりしていないかを見るための道具です。例えば、RSIの数字が低い(安くなりすぎ)とき、それは「ちょっと下がりすぎたから、そろそろ値段が戻るかも」というサインになります。一方、「移動平均線」は最近の値段の平均なので、値段がこの線から大きく離れてしまった場合、また線の近くに戻ってくることが多いと考えられます。この作戦では、この2つのサインを組み合わせて、「もっと成功しそうなタイミング」を探そうとしているのです。

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

エントリー条件

  • 「RSI」が「安くなりすぎ」の目安より少し上の数字になって、さらにビットコインの値段が移動平均線よりも上になったら、買うタイミングです。
  • 「RSI」が「高くなりすぎ」の目安より少し下の数字になって、さらにビットコインの値段が移動平均線よりも下になったら、売るタイミングです。

エグジット条件

  • 買った後、利益が出ているときに、「RSI」が「高くなりすぎ」の目安に近づいたら、売って利益を確定させます。
  • 売った後、利益が出ているときに、「RSI」が「安くなりすぎ」の目安に近づいたら、買い戻して利益を確定させます。
  • もし損をしていても、決めておいた金額まで損したら、それ以上損が大きくならないように取引をやめます。(これはとても大事なルールです)

リスク管理

1回の取引で損してもいい金額を、持っているお金のすごく小さい一部に決めておくことが大切です。例えば、持っているお金の100分の1とか100分の2だけにするんです。こうすれば、もし何回か負けてしまっても、すぐにお金が全部なくなってしまうことを防げます。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数156回
勝率37.18%
平均利益1.84%
平均損失-1.56%
期待値-0.3%
プロフィットファクター0.64
最大ドローダウン43.79%
最終リターン-40.34%
シャープレシオ-0.06
HODL(Buy&Hold)67.84%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
#!/usr/bin/env python3
"""
RSI + MA複合戦略
RSIとMAの両方の条件が揃ったときにエントリー
"""
import pandas as pd
import numpy as np


def calculate_rsi_ma_signals(df: pd.DataFrame, rsi_period: int = 14, ma_period: int = 20,
                             oversold: int = 30, overbought: int = 70) -> pd.DataFrame:
    """
    RSI + MA複合シグナルを生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    rsi_period : int
        RSI期間(デフォルト: 14)
    ma_period : int
        MA期間(デフォルト: 20)
    oversold : int
        売られすぎ水準(デフォルト: 30)
    overbought : int
        買われすぎ水準(デフォルト: 70)
    
    Returns:
    --------
    pd.DataFrame
        シグナル列が追加されたDataFrame
    """
    df = df.copy()
    
    # RSI計算
    delta = df['close'].diff()
    gain = (delta.where(delta > 0, 0)).rolling(window=rsi_period).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(window=rsi_period).mean()
    rs = gain / loss
    df['rsi'] = 100 - (100 / (1 + rs))
    
    # MA計算
    df['ma'] = df['close'].rolling(window=ma_period).mean()
    
    # 複合シグナル(条件を緩和)
    df['is_buy'] = (
        (df['rsi'] < oversold + 10) &  # RSIが売られすぎ近辺
        (df['close'] > df['ma'])  # 価格がMA上
    )
    
    df['is_sell'] = (
        (df['rsi'] > overbought - 10) &  # RSIが買われすぎ近辺
        (df['close'] < df['ma'])  # 価格がMA下
    )
    
    # NaN値をFalseに置換
    df['is_buy'] = df['is_buy'].fillna(False)
    df['is_sell'] = df['is_sell'].fillna(False)
    
    print(f"RSI+MA複合: RSI期間={rsi_period}, MA期間={ma_period}")
    print(f"買いシグナル数: {df['is_buy'].sum()}")
    print(f"売りシグナル数: {df['is_sell'].sum()}")
    
    return df

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

  1. 1このやり方を過去のデータで試したところ、156回取引をしましたが、最終的には約40%も損をしてしまいました。これは、このやり方ではうまく利益が出せなかったということです。
  2. 2勝った割合は37.18%で、半分以下でした。これは、取引の半分以上が負けてしまったということです。
  3. 3一番大きく損した時は、持っていたお金が約44%も減ってしまいました。これは、損が大きくなる前に取引をやめるのが遅れてしまったのかもしれない、ということを示しています。

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

  1. 1「RSI」と「移動平均線」という2つの道具をただ組み合わせるだけでは、ビットコインみたいに値段の動きが激しいもので安定して利益を出すのは、難しいことがあるとわかりました。
  2. 2過去のデータで試してみる(バックテスト)ことは、そのやり方が良いか悪いかを知るためにすごく大事です。でも、結果が悪かったからといってすぐにあきらめるのではなく、どうしてダメだったのかを考えることがもっと大切です。
  3. 3取引した回数は156回と多かったのに、結果的に損をしてしまったということは、1回ごとの儲けが小さくて損が大きかったり、負ける回数がとても多かったりしたのかもしれません。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金の量をあらかじめ決めておきます。例えば、持っているお金全体の2%だけ、というように、もし失っても大丈夫な範囲の金額で取引します。こうすれば、続けて負けてもすぐにお金がゼロになるのを防げます。

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

もし、持っているお金が、例えば10%以上減ってしまったら、一度取引をお休みします。そして、作戦やお金の管理方法に問題がないか見直します。こうすることで、損がどんどん大きくなるのを止められます。

資金管理の方法

取引に使うお金の合計額を、持っているお金全体の半分まで、というように上限を決めます。一度にたくさんのお金を危険にさらさないように管理することで、心に余裕をもって取引ができます。

改良案の具体的提案

  • 「RSI」や「移動平均線」で使う設定の数字を色々と変えてみて、もっと良い結果が出る組み合わせがないか探してみます。
  • このやり方に、ほかの道具(例えば、値段のパワーの変化を見る道具など)を組み合わせたり、新しいルール(例えば、少しでも利益が出たらすぐにやめる、など)を追加したりして、作戦をもっと強くしてみます。
  • ビットコインの値段の動きが激しい時と、おとなしい時で、この作戦がうまくいくかどうかが変わるかもしれません。だから、市場の様子に合わせて作戦を使い分けたり、取引する時間を決めたりすることも考えられます。

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

  • この作戦は、5分ごとの値段の動きを見ています。短い時間での取引はチャンスも多いですが、急に値段が動いて損をすることもあるので注意が必要です。
  • テストの結果では、この作戦を使うより、ただビットコインをずっと持っている(HODL)方が、結果的に儲かっていました(HODLは67.84%のプラス、この作戦は-40.34%のマイナス)。取引を始める前に、このことを知っておくのはとても大事です。
  • このテスト結果は、あくまで過去のデータでのお話です。未来も同じようにうまくいくとは限りません。本当に自分のお金で取引する前には、ごく少ない金額で試したり、ゲーム感覚でできるお試し用の口座を使ったりして、慎重に判断してくださいね。

検証の透明性と信頼性

  • データの出所: 取引のデータは、取引所が公開している、値段の始まり、高値、安値、終わり、取引された量といった情報を使いました。
  • 検証のやり方: 過去の決まった期間のデータを使って、この作戦で取引したらどうなっていたかをコンピューターで試してみました。これを「バックテスト」と言います。
  • コード: このテストをするために使ったコンピュータープログラム(Pythonコード)は、誰でも見られるようになっています。
  • 注意事項: このお話やテスト結果は、あくまで情報としてお伝えするもので、将来の利益を約束するものではありません。投資は、ご自身の判断と責任で行ってください。特にビットコインのようなデジタルなお金は、値段の動きがとても激しいので、大きく損をしてしまう可能性もあります。

よくある質問

Q.RSIと移動平均線って、何が違うの?

A.「RSI」は、値段が上がったり下がったりする「パワー」や「勢い」をはかる道具です。一方、「移動平均線」は、最近の値段の「平均」を出して、今の値段が高いのか安いのか、大きな流れを見るための道具です。この2つを合わせることで、色々な角度から値段の動きをチェックするんです。

Q.「売られすぎ」「買われすぎ」って、どういう意味?

A.「売られすぎ」は、短い時間で値段が下がりすぎた状態のことです。「もうそろそろ下がるのは終わりかな」と思われて、値段が少し戻ることがあります。反対に「買われすぎ」は、値段が上がりすぎた状態のことで、利益を確定させるために売る人が増えて、値段が下がることがあります。

Q.PF (プロフィットファクター)って何?

A.PFは、儲けと損のバランスを見るための数字です。全部の利益の合計を、全部の損失の合計で割って計算します。この数字が1より大きければ、損よりも利益の方が多いということになります。もし1より小さければ、利益よりも損の方が大きかった、ということになります。

Q.HODLってどういう意味?

A.「HODL(ホドル)」は、ビットコインなどの世界で使われる言葉で、「売ったり買ったりしないで、ただずっと持っておくこと」を意味します。今回のテストでは、この作戦を使うよりも、ただ持っていた方が良い結果だった、ということです。

Q.この戦略は、これからビットコインで儲けるために使える?

A.今回のテスト結果を見る限り、この作戦をそのまま使うのはちょっと危ないかもしれません。利益を出すためには、設定を見直したり、他の方法と組み合わせたり、お金の管理を徹底したりすることがとても大切です。もし試してみたいなら、なくなっても困らないくらいのすごく少ないお金で始めるなど、とても慎重にやることをおすすめします。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報