シェア:

ビットコイン取引の作戦を学ぼう!平均足と移動平均線でわかる「流れに乗る」作戦

この作戦は、ビットコインの値段が「上がっているか」「下がっているか」の大きな流れを、特別なグラフと線を使って見つけようとするものです。5分ごとの細かい値動きを見て、約1年間、昔のデータでうまくいくか試してみました。

取引数
2649
勝率
12.61%
最終リターン
-100.00%
最大DD
100.00%

導入と前提条件

この作戦は、ビットコインの値段が「上がっているか」「下がっているか」の大きな流れを、特別なグラフと線を使って見つけようとするものです。5分ごとの細かい値動きを見て、約1年間、昔のデータでうまくいくか試してみました。

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

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

Heikin Ashi Trend の理論的背景

この作戦の考え方は「流れに乗る(トレンドフォロー)」と呼ばれます。値段が上がり続けているときは「買い」、下がり続けているときは「売り」という、とてもシンプルな方法です。物の値段は、しばらく同じ方向に動き続けることがあります。これを「トレンド」と言います。この作戦では、平均足がプラス(値段が上がった印)で、平均線も上向きのとき、「これは上がる勢いが強いぞ!」と考えて買うチャンスとします。逆に、平均足がマイナス(値段が下がった印)で、平均線も下向きのときは、「下がる勢いが強いな」と考えて売るチャンスとします。つまり、値段の「勢い」と「方向」を見て取引する考え方なんです。

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

エントリー条件

  • 平均足が上向きで、平均線よりも上にあって、その平均線も上を向いていたら、取引を始めます(買い)。
  • 平均足が下向きで、平均線よりも下にあって、その平均線も下を向いていたら、取引を始めます(売り)。

エグジット条件

  • 買った後、平均足が下を向いたり、平均線が下がり始めたら、取引を終えます(もうけを確定したり、損を止めたりします)。
  • 売った後、平均足が上を向いたり、平均線が上がり始めたら、取引を終えます。

リスク管理

大きな損をしないためのルールも大事です。例えば、1回の取引で使うお金は、持っているお金のほんの少しだけ、と決めておきます。もし損が大きくなったら、一旦取引をお休みする、というルールも考えられます。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数2649回
勝率12.61%
平均利益0.76%
平均損失-0.55%
期待値-0.39%
プロフィットファクター0.21
最大ドローダウン100%
最終リターン-100%
シャープレシオ-1.52
HODL(Buy&Hold)86.71%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Heikin Ashi Trend Signal
平均足の陽転/陰転とHA-SMA傾きでトレンド判定するのだ。
"""
import pandas as pd


def _heikin_ashi(df: pd.DataFrame) -> pd.DataFrame:
    out = df.copy()
    ha_close = (out['open'] + out['high'] + out['low'] + out['close']) / 4
    ha_open = ha_close.copy()
    ha_open.iloc[0] = (out['open'].iloc[0] + out['close'].iloc[0]) / 2
    for i in range(1, len(out)):
        ha_open.iloc[i] = (ha_open.iloc[i-1] + ha_close.iloc[i-1]) / 2
    out['ha_open'] = ha_open
    out['ha_close'] = ha_close
    return out


def calculate_heikin_ashi_trend_signals(df: pd.DataFrame, ma_period: int = 20) -> pd.DataFrame:
    out = _heikin_ashi(df)
    out['ha_sma'] = out['ha_close'].rolling(ma_period).mean()
    out['ha_sma_slope'] = out['ha_sma'].diff()
    # シンプルな条件
    out['is_buy'] = (out['ha_close'] > out['ha_open']) & (out['ha_close'] > out['ha_sma']) & (out['ha_sma_slope'] > 0)
    out['is_sell'] = (out['ha_close'] < out['ha_open']) & (out['ha_close'] < out['ha_sma']) & (out['ha_sma_slope'] < 0)
    return out

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

  1. 1この作戦を試した結果、2649回も取引したのに、勝てたのはたった12.61%でした。つまり、ほとんどの取引で負けてしまったため、全体として損をしてしまいました。
  2. 2もうけと損のバランスを見る「プロフィットファクター」という数字が、1よりずっと小さい0.21でした。これは、もうかった金額よりも、損した金額の方がずっと大きかったことを表しています。
  3. 3最終的に、持っていたお金が全部なくなってしまいました(最終的なもうけが-100%)。一番お金が減った時も、全部なくなっていました(一番減った割合が100%)。

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

  1. 1ただ単純に値段の流れに乗るだけでは、特に値動きが激しいビットコインのようなものでは、もうけを出し続けるのは難しいことがある、とわかりました。
  2. 2平均足や平均線の向きだけで取引のタイミングを決めるのは、安定して勝つためには、ちょっと情報が足りないのかもしれない、と気づきました。
  3. 3作戦を立てたら、まず過去のデータでしっかりテストして、本当にうまくいくのかを確かめることが、すごく大事だと学びました。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、持っているお金全体の1%から2%くらいまでにします。こうすれば、もし何回か続けて負けても、すぐにお金が全部なくなることはありません。

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

もし、持っているお金が10%のように、決めた割合以上減ってしまったら、一度すべての取引をやめて、作戦を見直す時間を作る、というルールを決めます。

資金管理の方法

長く取引を続けていくために、もうかったお金の管理も大切です。もうけの一部を次の取引に使ったり、一部は貯金したりと、計画的にお金を使いましょう。

改良案の具体的提案

  • 平均足と平均線だけでなく、他の道具(例えば『買われすぎ』や『売られすぎ』がわかる道具など)も一緒に使って、もっと確かな『買い』や『売り』の合図を見つけるようにします。
  • 『これ以上損したくない』という損切りのルールを、もっとはっきり決めます。逆にもうけが出ているときは、もっともうけを伸ばせるような工夫を取り入れます。
  • 平均線を計算するときの期間など、設定の数字をいろいろ変えてみて、どんな状況でもうまく動きやすい、一番良い設定を探します。

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

  • この作戦は、あくまで昔のデータで試しただけなので、未来も同じようにもうかることを約束するものではありません。
  • 実際に自分のお金で取引を始める前に、まずは少額で試したり、練習用のツール(デモトレード)で十分に練習したりすることが大切です。
  • 市場の様子はいつも変わっていきます。だから、定期的に自分の作戦の成績をチェックして、必要なら見直していくことが大事です。

検証の透明性と信頼性

  • データの出所: この説明は、もらったテスト結果のデータをもとに作っています。
  • 検証のやり方: もらったテスト結果(成績や設定など)を見て、分析しました。
  • コード: この作戦をコンピューターで動かすためのプログラム(Pythonコード)はあります。
  • 注意事項: このお話は、投資をおすすめするためのものではありません。お金を使う最終的な判断は、必ず自分で考えて決めてくださいね。過去にうまくいったからといって、将来もうまくいくとは限りません。

よくある質問

Q.ビットコインって何?

A.インターネット上で使えるデジタルなお金のことだよ。円やドルみたいに国が作っているわけじゃない、新しいタイプのお金なんだ。

Q.平均足(Heikin Ashi)って、普通のグラフとどう違うの?

A.普通のグラフ(ローソク足)は、その時間の値動きをそのまま表すけど、平均足は値段の上がり下がりを滑らかにして、大きな流れ(トレンド)を分かりやすく見せるための特別なグラフなんだ。

Q.移動平均線(SMA)って何?

A.過去の決まった期間の値段の平均を計算して、それを線でつないだものだよ。これを見ると、値段の全体的な流れがどっちを向いているのかが分かりやすくなるんだ。

Q.取引した回数が2649回ってすごく多いのに、どうして勝った割合が低いの?

A.たくさん取引しても勝った割合が低いのは、買うタイミングや売るタイミングが、値段の動きと合わなかった取引が多かったからなんだ。取引の回数が多くても、一つ一つの取引で負けが続くと、全体では損をしてしまうんだよ。

Q.PFが0.21って、どういう意味?

A.PFは「もうけ÷損」で計算する数字だよ。これが0.21ということは、例えば100円もうかったとしたら、その裏で約476円も損していた、ということなんだ。つまり、もうけよりも損がずっと大きかった、という意味になるんだよ。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報