ボリンジャー・バンド・ブレークアウト戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-03 17:53:32
タグ:

img

概要

ボリンジャーバンドブレイクアウト戦略は,トレンドフォロー戦略である.入口と出口点を決定するために波動性範囲を使用する.具体的には,ボリンジャーバンドの上下帯を使用して価格がブレイクしているかどうかを判断する.価格が上部帯を超えるとロングになり,価格が下部帯を下回るとポジションを閉じる.

戦略の論理

戦略はボリンジャー・バンド指標に基づいています.ボリンジャー・バンドには3つの線があります.

  1. 中間線 - n 期間の単純な移動平均線
  2. 上部帯 - 中間線 + k * n 期標準偏差
  3. 下帯 - 中間線 - k * n 周期標準偏差

k は通常 1.5 または 2 に設定されます.価格が上部帯を超えると,株が強いゾーンに入り,したがってロングに行くことを示します.価格が下部帯を超えると,株が弱いゾーンに入り,したがってポジションを閉じることを示します.

この戦略は,ボリンジャー帯を構成するために20期間の中間線と1.5標準偏差を使用する.価格が上部帯を突破すると長い.出口には2つのオプションがあります:

  1. ストップ損失として下帯を使用します.
  2. 中間線をストップ損失として使用します.

選択肢1は 高い変動性のある株式に より効果的です

利点分析

この戦略の主な利点は以下の通りです.

  1. 価格動向を効果的に追跡し,ブレイクアウト信号を間に合うように捉える
  2. 波動の範囲を使用して入口点を決定し,効果的にノイズをフィルタリングします
  3. ストップ・ロスのオプションを2つ提供し,ストック特性を考慮して選択できます.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. ブレイクシグナルは偽ブレイクシグナルであり,トレンドを効果的に追跡できない可能性があります.
  2. 不適切なストップ・ロスの位置付けは,過剰ストップアウトにつながる可能性があります.
  3. 範囲限定市場を効果的に扱えない

これらのリスクは,パラメータの最適化,他の指標の導入などによって軽減できます.

オプティマイゼーションの方向性

この戦略は,いくつかの側面で最適化することができます:

  1. 最適なパラメータ組み合わせを見つけるためにボリンジャーバンドのパラメータを最適化
  2. 突破信号の信頼性を検証するための取引量および他の指標を組み込む
  3. 偽のブレイクを避けるために他の指標でフィルターを構築
  4. ストップ・ロスのリスクを低減するために,ストップ・ロスのポジションを動的に調整する

結論

ボリンジャーバンドブレイクアウト戦略は,全体的に見ると,かなり古典的なトレンドフォロー戦略である.パラメータとルールの最適化によって,異なる市場環境に適するように改善することができる.この戦略は理解し,実装するのが簡単で,定量的な取引のための素晴らしい出発点戦略選択となっています.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Senthaamizh

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-BO", overlay=true)
source = close
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA 
exit = input(1, minval=1, maxval=2,title = "Exit Option") // Use Option 1 to exit using lower band; Use Option 2 to exit using moving average

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

if (crossover(source, upper))
    strategy.entry("Long", strategy.long, qty=1)

if(exit==1)
    if (crossunder(source, lower))
        strategy.close("Long")

if(exit==2) //basis is good for N50 but lower is good for BN (High volatility)
    if (crossunder(source, basis))
        strategy.close("Long")

plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
fill(p1, p2)


もっと