ボリンジャーバンドに基づくトレンドフォロー戦略
概要
本戦略は、ボリンジャーバンドに基づくトレンド追従戦略です。ボリンジャーバンドの上部・下部バンドを利用してトレンド方向を判断し、トレンドを追跡します。価格が上部バンドを突破した時にロング、下部バンドを割り込んだ時にショートし、ストップロスは中央バンドに設定します。
戦略の原理
本戦略では、ボリンジャーバンドを用いて価格のトレンドを判断します。ボリンジャーバンドは上部バンド、下部バンド、中央バンドの3本の線で構成されます。上部バンドは価格の上昇限界、下部バンドは価格の下降限界、中央バンドは価格の移動平均線を表します。価格が下部バンドから上部バンドを突破すると上昇トレンドの開始、上部バンドから下部バンドを突破すると下降トレンドの開始を示します。
具体的には、本戦略のロングエントリー条件は、以下の2つを同時に満たすことです。1) 現在のローソク足の終値がボリンジャーバンドの上部バンドより高いこと。2) 1本前のローソク足の終値がボリンジャーバンドの上部バンドより低いこと。これは価格が上部バンドを突破し、上昇トレンドが始まったことを示し、ロングに適しています。ショートエントリーも同様に、現在のローソク足の終値が下部バンドより低く、かつ1本前のローソク足の終値が下部バンドより高い場合、ショートのタイミングが熟したと判断します。
本戦略のストップロス方法は、ロング・ショートともにストップロスラインをボリンジャーバンドの中央バンドに設定することです。中央バンドは価格の移動平均線を表し、トレンドが変化したか否かを判断する重要な位置だからです。
戦略の優位性
本戦略の最大の利点は、価格のトレンドを明確に判断できること、ボリンジャーバンドの特性を利用してトレンドを追跡し、レンジ相場に惑わされにくいことです。他の指標と比較して、ボリンジャーバンドはブレイクアウトの判断がより信頼性が高く、偽のブレイクアウトの確率を低減します。
また、本戦略はロング・ショート両方の条件を設定しており、双方向取引が可能で、価格の上下動を最大限に活用して利益を狙います。中央バンドをストップロスラインとすることで、ストップロスの精度を高め、適時に損切りできることが戦略の利益獲得の鍵です。
戦略のリスク
本戦略の主なリスクは、ボリンジャーバンドのパラメータ設定にあります。ボリンジャーバンドの中央バンドの期間と標準偏差の大きさは、上部・下部バンドの位置に直接影響します。パラメータ設定が不適切だと、偽のブレイクアウトの確率が高まる可能性があります。
また、中央バンドをストップロスラインとすることにもリスクがあります。相場が大きく変動した場合、価格が中央バンドを直接割り込み、ストップロスが発動する可能性があります。その場合は、大きなトレンドが転換したかどうかを評価し、必要に応じてストップロス範囲を適宜拡大することも検討すべきです。
戦略の最適化
本戦略は以下の点から最適化が可能です。
-
ボリンジャーバンドのパラメータを最適化し、異なる期間の経験データを組み合わせて最適なパラメータの組み合わせを設定する。
-
出来高の判断指標を追加し、低出来高による偽のブレイクアウトを回避する。例えば、出来高が直近の平均値を超えた場合のみ取引を実行するように設定できる。
-
ストップロスメカニズムを最適化し、市場のボラティリティに応じてストップロスラインを動的に調整する。大きな変動時にはストップロス範囲を広めに、小さな変動時には狭めて価格に追従させる。
-
MACDやKDJなどの他の指標を追加し、より多くの要因を考慮してエントリータイミングを判断し、取引の正確性を高める。
まとめ
本戦略は総じて実用的なトレンド追従戦略です。ボリンジャーバンドを利用してトレンド方向を判断し、価格が上部・下部バンドを突破することで取引シグナルを発生させ、双方向取引で価格変動を最大限に捉えます。パラメータ最適化やストップロス最適化などの手段により、より良い結果を得られる余地が大きく残されています。
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © Valente_F
//@version=4
strategy(title="Strategy: Trend Following Bollinger Bands", shorttitle="Strategy: Trend Following Bollinger Bands", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity)
- 1

