シェア:

コインの元気度を示す線が交差!BNB/USDTで自動売買してみた結果

ある特別な線とその平均の線が交差するタイミングで、コインを買ったり売ったりする作戦を試してみました。BNB/USDTというコインの組み合わせで、1時間ごとの値動きを見ながら、約1年半の期間でテストした結果を、わかりやすく説明しますね。

取引数
801
勝率
28.09%
最終リターン
-85.27%
最大DD
90.90%

導入と前提条件

ある特別な線とその平均の線が交差するタイミングで、コインを買ったり売ったりする作戦を試してみました。BNB/USDTというコインの組み合わせで、1時間ごとの値動きを見ながら、約1年半の期間でテストした結果を、わかりやすく説明しますね。

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

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

ADL MA Crossover の理論的背景

この作戦の基本的な考え方は、「コインの勢いの流れが変わる瞬間をキャッチする」ということです。ADLは、コインが買われたり売られたりした勢いをずっと記録していく、いわば「元気度メーター」のようなものです。一方、移動平均線は、その元気度の平均なので、流れがなめらかになります。この2つの線が交差するということは、コインの勢いの流れが変わり始めたサインだと考えられます。そのタイミングで売り買いすることで、利益を狙おうというのが、この作戦の目的です。

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

エントリー条件

  • 【いつ買うの?】 コインの元気度を示す線(ADL)が、その平均線(ADL MA)を下から上に追い越したときです。

エグジット条件

  • 【いつ売るの?】 コインの元気度を示す線(ADL)が、その平均線(ADL MA)を上から下に割り込んだときです。

リスク管理

残念ながら、この作戦には「もし値段が予想と反対に動いてしまった時に、損を小さくするための特別ルール」は入っていませんでした。そのため、一度損をし始めると、それが大きくなりやすいという弱点がありました。

再現手順(HowTo)

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

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数801回
勝率28.09%
平均利益1.84%
平均損失-1.02%
期待値-0.22%
プロフィットファクター0.78
最大ドローダウン90.9%
最終リターン-85.27%
シャープレシオ-0.43
HODL(Buy&Hold)169.43%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
ADL MA Crossover
累積/配分(ADL)とそのSMAのクロスで判定するのだ。
"""
import pandas as pd


def _adl(df: pd.DataFrame) -> pd.Series:
    mfm = ((df['close'] - df['low']) - (df['high'] - df['close'])) / (df['high'] - df['low']).replace(0, 1)
    mfv = mfm * df['volume']
    return mfv.cumsum()


def calculate_adl_ma_signals(df: pd.DataFrame, ma_period: int = 20) -> pd.DataFrame:
    out = df.copy()
    out['adl'] = _adl(out)
    out['adl_ma'] = out['adl'].rolling(ma_period).mean()
    prev = (out['adl'] - out['adl_ma']).shift(1)
    now = out['adl'] - out['adl_ma']
    out['is_buy'] = (now > 0) & (prev <= 0)
    out['is_sell'] = (now < 0) & (prev >= 0)
    return out

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

  1. 1この作戦の勝率は約28%でした。これは、10回取引したら勝てるのは3回もない、ということです。つまり、利益が出た取引よりも、損した取引のほうがずっと多かったことになります。ADLと平均線が交わるだけでは、本当に値段が上がるタイミングをうまく見つけられなかったようです。
  2. 21回の取引で、平均して0.22%ずつ損をしていました。これは、売り買いのタイミングが少しずつズレていて、小さな損が積み重なってしまったことを意味します。
  3. 3最終的に、元のお金が85%以上も減ってしまいました。一番大きくお金が減った時には、持っていたお金の90.9%がなくなった瞬間もありました。これは、値段が大きく下がったときに、大きなダメージを受けてしまったことを示しています。何もしないでコインをただ持っているだけ(HODL)の場合と比べても、成績は悪かったです。

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

  1. 1コインの元気度(ADL)と、その平均線が交わるのは、流れが変わるサインになることもありますが、それだけで安定して勝ち続けるのは難しいということがわかりました。
  2. 2全部で801回も取引のチャンスがあったのに、勝率が低かったということは、売ったり買ったりするタイミングが、あまり良くなかったということです。
  3. 3コインの値段は、時には激しく動きます。どんなに良い作戦だと思っても、「損を小さくするためのブレーキ」のような仕組みが、とても大切だということを学びました。

リスク管理の具体的手法

取引量の決め方

この作戦では、「1回の取引で、いくら分のお金を使うか」というルールが決まっていませんでした。そのため、たまたま大きな金額で取引した時に値段が下がってしまうと、大損につながる危険がありました。

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

もしお金が大きく減ってしまっても(最大で90.9%)、自動で取引をストップするような仕組みがありませんでした。そのため、損がどんどん膨らんでしまう可能性がありました。

資金管理の方法

持っているお金全体をどうやって管理するか、という計画も特にありませんでした。そのため、取引がうまくいかなかった場合に、大切なお金のほとんどを失ってしまう危険がありました。

改良案の具体的提案

  • 元気度メーター(ADL)だけでなく、例えば「値段の揺れの大きさ」を測るような、他の道具も一緒に使って、もっと確実なタイミングで売り買いできるように改良します。
  • コイン全体の調子が悪くて、値段が下がり続けているような時期は、取引をお休みするルールを加えます。また、「これ以上損したら、いったんストップする」というルールも追加して、大きな損を防ぎます。
  • 2つの線がただ交差した時だけでなく、「どれくらい勢いよく交差したか」や「交差した後の動き」なども見て、本当に信頼できるサインの時だけ取引するようにします。

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

  • この作戦をそのまま試すのは、あまりおすすめできません。もし試すなら、まずは失っても大丈夫な少額でやるか、本物のお金を使わない練習用の取引(デモトレード)で様子を見てください。
  • コインの世界はいつも変化しています。この作戦が、いつもうまくいくとは限りません。定期的に成績をチェックして、必要ならルールを見直すことが大切です。
  • このテスト結果は、あくまで過去のデータで試したものです。未来の値段の動きを約束するものではありません。最後は、ご自身の判断で慎重に決めてくださいね。

検証の透明性と信頼性

  • データの出所: このテストは、公開されているBNB/USDTというコインの、2024年2月11日から2025年8月25日までの約1年半ぶんの1時間ごとの値動きデータを使って計算しました。
  • 検証のやり方: もしこの作戦を過去のその期間で実行していたら、どんな結果になっていたか」を、コンピューター上で再現(シミュレーション)して、成績を計算しました。
  • コード: この作戦を動かすためのプログラム(Pythonというプログラミング言語で書かれています)は、公開されています。
  • 注意事項: この説明は、投資の作戦と、そのテスト結果をわかりやすくお伝えするためのものです。投資をすすめるものではありません。コインの取引には、お金が減ってしまうリスクがあります。投資をするかどうかは、最後はご自身の責任で判断してください。

よくある質問

Q.ADLって、どんなものなの?

A.ADLは「コインの元気度メーター」のようなものです。値段の動きだけでなく、どれだけたくさんの人が売り買いしているか、という情報も合わせて、コイン全体の勢いを数字や線で表してくれます。

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

A.HODL(ホドル)は、買ったコインを売らずに、ずっと「持ち続ける」という意味で使われるインターネットの言葉です。将来、値段が上がることを信じて、途中の小さな値動きでは売らない、というやり方のことです。

Q.PFって何?

A.PFは「プロフィットファクター」の略で、取引で「儲かったお金の合計」が「損したお金の合計」の何倍だったかを示す数字です。もしPFが1より大きければ、全体として儲かっていることになり、1より小さいと損していることになります。

Q.最大DDって、どういうこと?

A.最大DDは「最大ドローダウン」の略で、投資しているお金が、一番多かった時から一番少なくなった時までに、最大で何パーセント減ってしまったか、を示す割合のことです。この数字が大きいほど、大きな損をした時期があった、ということになります。

Q.この作戦は、将来も使えるの?

A.このテスト結果は、あくまで過去のデータで試したものです。なので、将来も同じようにうまくいくとは限りません。コインの世界は常に変わっていくので、もしこの作戦を使うとしても、今の状況に合っているか、よく注意する必要があります。

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

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

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

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

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

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

Q.HODLとの比較結果は?

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

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

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

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

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

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

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

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

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

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

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

Q.改良の方向性は?

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

著者情報