ボリンジャーバンドのブレイクスルーに基づく定量取引戦略


作成日: 2024-02-04 14:52:52 最終変更日: 2024-02-04 14:52:52
コピー: 0 クリック数: 802
1
フォロー
1617
フォロワー

ボリンジャーバンドのブレイクスルーに基づく定量取引戦略

概要

この戦略は,ブリン帯の上線,中線,下線を計算し,K線の閉盘価格と組み合わせて判断し,ブリン帯の突破取引戦略を実現する.価格が上線を突破すると,多めに;価格が下線を突破すると,空白に.同時に,停止損失と停止価格を設定する.

戦略原則

  1. ブリン帯の中央軌道SMAを計算し,60周期の長さで,価格トレンドの中央軌道を表します.

  2. ブリン帯の上下軌を計算し,上軌は中軌+2倍標準差,下軌は中軌-2倍標準差,帯域は多値制御による.

  3. 閉盘価格が上線より大きいときは,多入場;閉盘価格が下線より小さいときは,空き入場.

  4. 止損防止装置を設定する.止損比は1.5%で止損比は6%である.

  5. 価格がブリン帯に再入ったとき,またはストップ・ストップを引いたとき,平仓は出場する.

優位分析

  1. ブリン帯の指標を用いて価格突破を判断し,強いトレンド判断能力を有する.

  2. 戦略はシンプルで理解しやすい.

  3. 止損防止メカニズムのリスクコントロールを設定する.

リスク分析

  1. ブリン帯の突破は価格トレンドの逆転点を正確に判断できないので,偽の突破の危険性がある.

  2. 止損防止器の不合理な設定は,より大きなリスクをもたらす可能性があります.

  3. 取引の頻度は高く,取引コストの影響も考慮する必要があります.

最適化の方向

  1. 他の指標と組み合わせて,偽の突破信号をフィルターする.例えば,KDJ指標は傾向を判断し,MACD判断は背離する.

  2. ブリン帯のパラメータを動的に調整し,市場変動に応じて合理的な帯域を計算する.

  3. トレーリングストップ,またはバッチストップの最適化策

  4. 取引コストの影響を考慮し,保有期間を調整する.

要約する

この戦略は,ブリン帯の指標によって価格突破を判断し,トレンドフォローリングを実現するのに一定の効果があります.しかし,偽の突破が起こり,より大きなリスクをもたらす可能性があります.他の指標との組み合わせを考慮し,リスクを制御し,収益性を向上させるために最適化パラメータを継続的にテストすることができます.

ストラテジーソースコード
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fuera Bolinga", overlay=true)

length = input.int(60, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
take_profit_percentage = 6.0

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

stop_loss_percentage = 1.5

// Determinar si la vela cierra por fuera de las bandas
above_upper_band = close > upper
under_lower_band = close < lower

// Pintar las velas que cierran por fuera de las bandas
barcolor(above_upper_band ? color.new(#2cee32, 0) : na)
barcolor(under_lower_band ? color.new(#e02c2c, 0) : na)

// Entrada larga con stop loss y take profit
if (ta.crossover(close, upper))
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

// Entrada corta con stop loss y take profit
if (ta.crossunder(close, lower))
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//// Salida de operación larga
if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0))
    strategy.close("BBandLE")

// Salida de operación corta
if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0))
    strategy.close("BBandSE")
	
// Plot de las bandas de Bollinger
plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band")
plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")