資源の読み込みに... 荷物...

Bollinger Bands 標準偏差突破戦略

作者: リン・ハーンチャオチャン,日付: 2024-04-30 16:51:34
タグ:SMA

img

概要

この戦略は,ボリンジャーバンド指標に基づいている. 閉じる価格が上部帯を突破するとロングポジションに入り,閉じる価格が下部帯を突破するとショートポジションに入る. ロングポジションの出口条件は,価格が中部帯を下回る時であり,ショートポジションの出口条件は,価格が中部帯を突破する時である. 戦略は,トレンドの方向性とエントリーと出口のタイミングを決定するために,ボリンジャーバンドの上部および下部帯との関係で価格の位置を使用する.

戦略原則

  1. ボリンジャー帯の上位,中位,下位帯を計算する.中位帯は閉値の単純な移動平均値で,上位帯と下位帯は標準偏差の一定倍数プラスまたはマイナスの中位帯である.
  2. 閉じる価格が上位帯を突破すると,ロングポジションに入ります.
  3. 閉じる価格が下帯を下回ると,ショートポジションに入ります.
  4. ロングポジションを保持する際,閉じる価格が中間帯を下回る場合はロングポジションを閉じる.
  5. ショートポジションを保持する際に,閉じる価格が中間帯を超えると,ショートポジションを閉じる.

戦略 の 利点

  1. ボリンジャー帯は,価格変動範囲とトレンド方向を効果的に反映することができる.エントリーと出口のためにボリンジャー帯との関係で価格の位置を使用することで,トレンド市場を把握することができる.
  2. 上下帯と中間帯の間の距離は,価格変動の変化に適応できる一定の標準偏差である.標準偏差が大きいほど,上下帯は中間帯から遠く離れている.
  3. エクジット条件は,上または下帯の逆の破裂の代わりに中間帯を使用し,早期ストップ・ロストと利益を取ることができます.
  4. パラメータは調整可能で,ボリンジャーバンド期間,標準偏差倍数,および他のパラメータを最適化して異なるシンボルとタイムフレームに適応することができます.

戦略リスク

  1. 変動する市場では,価格が上位および下位帯の近くで繰り返し振動し,取引コストの増加につながる頻繁な入口と出口を引き起こす可能性があります.
  2. 価格がトレンドの動きで加速すると,エントリーポイントは比較的遅れ,トレンドに従う能力は弱くなる.
  3. トレンド逆転の開始時に 中央帯に触れるリトレースが出口を誘発し,トレンドが発展し続ける場合,次の価格変動を逃す.

戦略の最適化方向

  1. ATR または他のストップ・ロース・インジケーターは,引き下げを制御するために組み込める.
  2. 長期・短期ポジションのダイナミックポジションサイジングは,トレンド強度に基づいてポジションを柔軟に分割するために使用できます.
  3. 入力条件には,入力信号の信頼性を高めるため,容量および価格指標などのより多くのフィルタリング条件を追加することができる.

概要

この戦略は,ボリンジャーバンドを使用してトレンド市場を捕捉する典型的なトレンドフォロー戦略である.戦略の論理は明確で,利点も明らかだが,一定のリスクも伴う.ストップ損失,利益占い,ポジション管理,エントリーフィルターを最適化することで,戦略のパフォーマンスを向上させ,適応性を高めることができる.しかし,すべての戦略には限界があり,実際の市場状況と組み合わせて柔軟に適用する必要がある.


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

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(20, minval=1, title = "Length")
mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier")

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

// Strategy
long_condition = ta.crossover(close, upper1)
short_condition = ta.crossunder(close, lower1)

if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Exit conditions
exit_long_condition = ta.crossunder(close, basis)
exit_short_condition = ta.crossover(close, basis)

if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")


colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

関連性

もっと