アーン・トレンド戦略:ビットコインの値動きの波に乗ろう!中学生にもわかる解説
この作戦は、ビットコインというデジタルなお金が、短い時間でどう動くかを調べる方法です。「5分足チャート」という5分ごとの値動きグラフを使って、値段が上がる勢いや下がる勢いを見つけ、いつ買ったり売ったりすればいいのかタイミングを探ります。専門用語はなるべく使わずに、わかりやすく説明しますね。昔のデータで試してみた結果も一緒に見てみましょう。
導入と前提条件
この作戦は、ビットコインというデジタルなお金が、短い時間でどう動くかを調べる方法です。「5分足チャート」という5分ごとの値動きグラフを使って、値段が上がる勢いや下がる勢いを見つけ、いつ買ったり売ったりすればいいのかタイミングを探ります。専門用語はなるべく使わずに、わかりやすく説明しますね。昔のデータで試してみた結果も一緒に見てみましょう。
【検証】戦略のバックテスト概要
- 戦略名: Aroon Trend を使用したトレンド追従戦略
- 対象銘柄: BTC/USDT
- 時間足: 5m
- 期間: 2024-08-30〜2025-08-25(359日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: binance
Aroon Trend の理論的背景
この作戦の基本的な考え方は、「トレンドの波に乗ること」です。ものの値段には、一方向にどんどん動く「トレンド」と、あまり動かない「レンジ(横ばい)」という状態があります。「アーン・インジケーター」は、過去25回分の値動きの中で、一番高かった値段がいつだったか、一番安かった値段がいつだったかを調べます。もし、最近に一番高い値段がついていたら「上がる勢いが強いぞ」と考えます。逆に、最近に一番安い値段がついていたら「下がる勢いが強いぞ」と判断するんです。この2つの勢いの強さの違いが、トレンドの強さを教えてくれます。
具体的な売買ルール(今回の検証)
エントリー条件
- 「上がる勢い」が基準の70より強くて、「下がる勢い」が70より弱いとき。さらに、全体として上がる勢いの方が強いときに買います。
- さっきまでは違ったけど、今まさに「上がる勢い」が「下がる勢い」を上回った瞬間に買います。これは、上がり始めるサインかもしれません。
- 「下がる勢い」が基準の70より強くて、「上がる勢い」が70より弱いとき。さらに、全体として下がる勢いの方が強いときに売ります。
- さっきまでは違ったけど、今まさに「下がる勢い」が「上がる勢い」を上回った瞬間に売ります。これは、下がり始めるサインかもしれません。
エグジット条件
- 買っていた場合:値段が下がり始めたサインが出たら、取引をやめます。
- 売っていた場合:値段が上がり始めたサインが出たら、取引をやめます。
- 「こう動くはず」という予想と反対に動いてしまったら、取引をやめます。
- ある程度の利益が出たときや、「これ以上損したらまずい」と決めていたラインを超えたときにも、取引をやめます(これを「損切り」と言います)。
リスク管理
取引を始める前に、「最悪、この金額までなら損しても大丈夫」というラインを決めます。もし値段が予想と反対に動いてしまったら、そのラインでスパッと取引をやめて、大きな損を防ぎます。また、一度にたくさんのお金を使わず、持っているお金の一部だけを使って、安全に取引することが大切です。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでBTC/USDTのOHLCVを取得して前処理
- 『Aroon Trend』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 238回 |
勝率 | 39.08% |
平均利益 | 1.34% |
平均損失 | -1.15% |
期待値 | -0.18% |
プロフィットファクター | 0.72 |
最大ドローダウン | 41.37% |
最終リターン | -36.77% |
シャープレシオ | -0.06 |
HODL(Buy&Hold) | 90.17% |
HODL戦略との比較
実装コード(Python)
#!/usr/bin/env python3
"""
Aroonインジケーター戦略
トレンドの強さと方向を測定
"""
import pandas as pd
import numpy as np
def calculate_aroon_signals(df: pd.DataFrame, aroon_period: int = 25,
threshold: float = 70) -> pd.DataFrame:
"""
Aroonトレンドシグナルを生成
Parameters:
-----------
df : pd.DataFrame
OHLCVデータ
aroon_period : int
Aroon計算期間(デフォルト: 25)
threshold : float
トレンド判定閾値(デフォルト: 70)
Returns:
--------
pd.DataFrame
シグナル列が追加されたDataFrame
"""
df = df.copy()
# Aroon Up計算(最高値からの期間)
df['aroon_up'] = df['high'].rolling(window=aroon_period + 1).apply(
lambda x: (aroon_period - x.argmax()) / aroon_period * 100
)
# Aroon Down計算(最安値からの期間)
df['aroon_down'] = df['low'].rolling(window=aroon_period + 1).apply(
lambda x: (aroon_period - x.argmin()) / aroon_period * 100
)
# Aroon Oscillator
df['aroon_oscillator'] = df['aroon_up'] - df['aroon_down']
# シグナル生成
# 強い上昇トレンドの開始
df['is_buy'] = (
(df['aroon_up'] > threshold) & # Aroon Upが高い
(df['aroon_down'] < 100 - threshold) & # Aroon Downが低い
(df['aroon_oscillator'] > 0) & # オシレーターが正
(df['aroon_oscillator'].shift(1) <= 0) # 前期間は負または0
)
# 強い下降トレンドの開始
df['is_sell'] = (
(df['aroon_down'] > threshold) & # Aroon Downが高い
(df['aroon_up'] < 100 - threshold) & # Aroon Upが低い
(df['aroon_oscillator'] < 0) & # オシレーターが負
(df['aroon_oscillator'].shift(1) >= 0) # 前期間は正または0
)
# NaN値をFalseに置換
df['is_buy'] = df['is_buy'].fillna(False)
df['is_sell'] = df['is_sell'].fillna(False)
print(f"Aroonトレンド: 期間={aroon_period}, 閾値={threshold}")
print(f"買いシグナル数: {df['is_buy'].sum()}")
print(f"売りシグナル数: {df['is_sell'].sum()}")
return df
なぜこの結果になったのか(3つの理由)
- 1この作戦を、過去約1年間のビットコインのデータで試してみました。結果、勝てたのは約10回中4回(勝率39.08%)でした。勝率はそれほど高くないですね。
- 2でも、残念ながら、最終的には持っていたお金が36.77%減ってしまうという結果でした。これは、勝ったときにもらったお金より、負けたときに失ったお金の方が多かったということです。
- 3一番大きく負けたときには、お金が41.37%も減ってしまいました。これは、かなり大きな損をする危険があることを示しています。何もしないでずっとビットコインを持っていた方が、良い結果だったようです。
この結果から学べる3つの教訓
- 1「アーン・インジケーター」は、値動きの方向を知るのに便利な道具ですが、これさえ使えば必ず勝てる、というわけではないことがわかりました。
- 2勝つ回数が少なくても、一回で大きく勝てれば全体でプラスになります。でも、今回の作戦では、残念ながら負けたときの損の方が大きくなってしまいました。
- 3昔のデータでうまくいかなくても、がっかりするだけではダメです。なぜうまくいかなかったのかを考えて、作戦を良くしていくことが大切だということを学びました。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金は、自分が持っているお金全部の、ほんの少し(例えば100分の1とか)だけにするのがおすすめです。こうすれば、もし負けても、大けがをしないで済みます。
損失が大きくなったときの対処法
もし取引の途中で損がふくらんで、決めておいたライン(例えば5%の損)を超えたら、そこで取引をストップします。こうすることで、損がどんどん大きくなるのを防げます。
資金管理の方法
取引で勝って増えたお金は、全部を次の取引に使わずに、一部は貯金するなど計画的に使いましょう。もし負けてしまっても、あわてずに、無理のない範囲で取引を続けることが大切です。
改良案の具体的提案
- 「アーン・インジケーター」で使っている数字(例えば、過去25回分を見る、基準を70にするなど)を変えてみると、もっと良い結果になるかもしれません。
- この作戦に、他の分析方法(例えば「移動平均線」など)をプラスすると、もっと確かな「買い」や「売り」のサインが見つかるかもしれません。
- 「このくらい損したらやめる」という損切りのルールや、「このくらい利益が出たらやめる」という利益確定のルールをもっとうまく作れば、損を減らして利益を増やせるかもしれません。
実用性の向上(運用上の注意)
- 今回は5分ごとの短い時間の動きを見ましたが、実際には1時間ごとや4時間ごとのような、もっと長い時間の大きな流れも一緒に見ると、もっとうまくいくかもしれません。
- 昔のデータでうまくいったからといって、未来も同じようにうまくいくとは限りません。これはとても大事なことなので覚えておいてください。実際に取引するときは、まず少ないお金で試してみるなど、慎重に始めましょう。
- 取引が終わったら、ノートに記録をつけて「なぜ勝てたのか」「なぜ負けたのか」を振り返ることが、上手になるためのヒントになります。この実験結果も、作戦を良くするための材料にしましょう。
検証の透明性と信頼性
- データの出所: どのデータを使ったか:教えてもらったデータを使いました。
- 検証のやり方: どうやって試したか:教えてもらったやり方で、ビットコインの過去のデータ(2024年8月30日〜2025年8月25日)を使って、この作戦がうまくいったかを確かめました。
- コード: 作戦のプログラム:この作戦をコンピューターで動かすためのプログラムは、見られるようになっています。
- 注意事項: 注意してほしいこと:この記事は「こんな作戦はどうですか?」と紹介するもので、投資をおすすめするものではありません。取引には損をする危険があります。最終的にどうするかは、必ず自分で考えて決めてくださいね。