볼링거 밴드 브레이크업 양적 거래 전략

저자:차오장, 날짜: 2024-02-04 14:52:52
태그:

img

전반적인 설명

이 전략은 볼링거 밴드의 상단, 중단 및 하단 밴드를 계산하고 K- 라인의 폐쇄 가격을 결합하여 볼링거 밴드의 브레이크아웃 거래 전략을 구현합니다. 가격이 상단으로 넘어가면 길고 가격이 하단으로 넘어가면 짧습니다. 스톱 손실 및 영업 가격도 설정됩니다.

전략 원칙

  1. 가격 트렌드의 중간 범위를 나타내는 기간 60의 볼링거 밴드의 중간 밴드 SMA를 계산합니다.

  2. 볼링거 밴드의 상단 및 하단 밴드를 계산하십시오. 상단은 중간 밴드 + 2 번 표준 편차와 하단 밴드는 중간 밴드 - 2 번 표준 편차입니다. 대역 폭은 곱셈자에 의해 제어됩니다.

  3. 마감값이 상위권보다 높을 때, 롱가, 마감값이 하위권보다 낮을 때, 쇼트가 됩니다.

  4. 스톱 로스 및 취리 메커니즘을 설정합니다. 스톱 로스 비율은 1.5%이고 취리 비율은 6%입니다.

  5. 가격이 볼링거 밴드 (Bollinger Bands) 에 다시 진입하거나 스톱 로스 (stop loss) / 노프스 (take profit) 가격에 도달하면 포지션을 닫습니다.

이점 분석

  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")


더 많은