이 전략은 볼링거 밴드 지표에 기반하여 가격이 상위 또는 하위 대역을 넘을 때 거래 신호를 생성합니다. 가격이 상위 대역을 넘을 때 길게 이동하고 가격이 하위 대역을 넘을 때 짧게 이동합니다. 또한, 긴 포지션을 보유하면 가격이 하위 대역을 넘을 때 포지션을 닫습니다. 짧은 포지션을 보유하면 가격이 상위 대역을 넘을 때 포지션을 닫습니다. 전략은 시장 변동성을 포착하는 것을 목표로하며, 가격 변동이 심해지면 트레이드에 들어가고 가격이 역전되면 적시에 종료됩니다.
BB 브레이크아웃 전략 (BB Breakout Strategy) 은 볼링거 밴드 지표에 기반을 둔 거래 전략으로, 가격이 상부 또는 하부 밴드를 넘어서면 거래 기회를 찾습니다. 전략의 장점은 명확한 신호와 특정 위험 통제 조치와 함께 쉬운 구현입니다. 그러나 전략에는 잠재적으로 높은 거래 빈도 및 신호 지연과 같은 일부 제한도 있습니다. 따라서 실용적인 응용에서는 신호 확인, 스톱-로스 최적화 및 매개 변수 최적화와 같은 분야에서 개선이 고려 될 수 있습니다. 전략의 안정성과 수익성을 향상시키기 위해.
/*backtest start: 2023-06-08 00:00:00 end: 2024-06-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Strategy", overlay=true) // Input parameters length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500, title="Offset") // Moving average function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculate Bollinger Bands basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plot(basis, "Basis", color=color.blue, offset=offset) p1 = plot(upper, "Upper", color=color.red, offset=offset) p2 = plot(lower, "Lower", color=color.green, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy logic longCondition = ta.crossover(close, upper) shortCondition = ta.crossunder(close, lower) // Strategy entries and exits if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (shortCondition and strategy.position_size > 0) strategy.close("Long") if (longCondition and strategy.position_size < 0) strategy.close("Short")