ボリンジャーバンドブレイクアウト統合戦略の使用


作成日: 2024-01-31 15:08:46 最終変更日: 2024-01-31 15:08:46
コピー: 0 クリック数: 540
1
フォロー
1617
フォロワー

ボリンジャーバンドブレイクアウト統合戦略の使用

概要

この戦略は,ブリン帯指標を用いて価格が統合期にあるかどうかを判断し,突破判断の入場と出場を使用する.全体的に,この戦略は,価格統合がもたらす激動的な状況を利用して利益を得ている.

戦略原則

この戦略は,まず,20日間の閉盘価格の単純移動平均をブリン帯のミッドレールとして計算し,標準差の2倍をブリン帯の帯域として計算する.価格が上線より高いときは突破上線と判断され,価格が下線より低いときは突破下線と判断される.

価格がブリン帯の中央軌道上下にあるとき,統合期と判断する. 突破シグナルが検出されたとき,多頭入場する. 再び下下軌道に突破したとき,平仓する. ポジションを空き同理する.

ストップダストはATRの2倍に設定されています.

優位分析

この戦略はブリン帯の統合と突破の特性に大きく依存し,以下の利点がある.

  1. 価格統合の激しい動きを利用して,大きな利益を得られる可能性
  2. ブリン帯の指標は直感的で,パラメータの最適化は簡単です.
  3. 流行に合わせて走る

リスク分析

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

  1. 突破信号は偽突破で損失を招く可能性がある.
  2. ストップレスト設定が大きすぎて,単一損失が拡大する
  3. ブリン帯のパラメータが正しく設定されず,指標の有効性が失われます.

対策として

  1. 価格と量との組み合わせで偽の突破
  2. 停止区間を最適化し,単一損失を減らす
  3. 異なるブリン帯のパラメータをテストし,最適のパラメータを選択する

最適化の方向

この戦略は以下の方向から最適化できます.

  1. 整合判定規則により,より多くの指標を導入し,誤信号を回避できます.
  2. トレンドフィルターを追加し,トレンドの方向に合わせて空白を増やす
  3. ストップトラッキングなどでリスク管理を向上させる

要約する

この戦略は全体的に単純で直接的で,価格整合によるエネルギー集約によって大きな利益を実現する.最適化の余地が大きく,入場規則,止損方法などから調整することができる.リスクを制御した前提でより安定した利益を得ることができる.

ストラテジーソースコード
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Consolidation Breakout Strategy", shorttitle="CBS", overlay=true)

// Parameters
length = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
risk = input.float(1, title="Risk per Trade (%)") / 100

// Calculate Bollinger Bands
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// Entry Conditions
consolidating = ta.crossover(close, upper) and ta.crossunder(close, lower)

// Exit Conditions
breakout = ta.crossover(close, upper) or ta.crossunder(close, lower)

// Risk Management
atrVal = ta.atr(14)
stopLoss = atrVal * input.float(2, title="Stop Loss Multiplier", minval=0.1, maxval=5)

// Entry and Exit Conditions
longEntry = breakout and close > upper
shortEntry = breakout and close < lower

if (longEntry)
    strategy.entry("Long", strategy.long)

if (shortEntry)
    strategy.entry("Short", strategy.short)

if (longEntry and close < basis - stopLoss)
    strategy.close("Long Exit")

if (shortEntry and close > basis + stopLoss)
    strategy.close("Short Exit")

// Plot Entry and Exit Points
plotshape(consolidating, style=shape.triangleup, location=location.belowbar, color=color.rgb(30, 255, 0), title="Entry Signal")
plotshape(breakout, style=shape.triangledown, location=location.abovebar, color=color.rgb(255, 0, 0), title="Exit Signal")