이 전략은 고주파 거래 시스템으로 볼링거 밴드 지표와 가격 브레이크 아웃 신호를 결합합니다. 이 전략은 시장 과잉 구매 및 과잉 판매 조건에서 반전 거래를 실행하기 위해 가격과 볼링거 밴드 사이의 관계를 모니터링하고 이전 고점 및 저점 브레이크 아웃 신호와 결합하여 수익 및 손실 목표에 대한 1:1 리스크-어워드 비율을 구현하고 트레이더가 시장 추세를 직관적으로 이해하는 데 도움이되는 주요 가격 수준을 시각화합니다.
이 전략의 핵심 논리는 두 가지 주요 조건에 기반합니다: 가격이 이전 최고치를 넘어서고 그 높이가 낮은 볼링거 밴드 아래에있을 때 구매 신호가 발동됩니다. 가격이 이전 최저치를 넘어서고 그 낮은 수준이 상위 볼링거 밴드 위에있을 때 판매 신호가 발동됩니다. 볼링거 밴드 매개 변수는 시장 변동성 범위 및 과잉 구매 / 과잉 판매 영역을 결정하기 위해 2 개의 표준 편차를 가진 20 기간 이동 평균을 사용합니다. 거래 신호를 발동 한 후 시스템은 자동으로 해당 스톱 로스 및 목표 수준을 설정하여 다른 라인 스타일을 통해 시각화합니다.
이 시스템은 여러 가지 기술 분석 개념을 통합하는 포괄적인 거래 시스템이다. 볼링거 밴드 지표와 가격 브레이크오웃의 조합을 통해 전략은 시장의 과잉 구매 및 과잉 판매 영역에서 반전 기회를 포착 할 수 있습니다. 최적화 할 여지가 있지만 시스템의 기본 프레임워크는 좋은 확장성과 실용적 가치를 가지고 있습니다. 적절한 리스크 관리 및 매개 변수 최적화를 통해이 전략은 실제 거래에서 안정적인 수익을 얻을 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-03 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Scalping", overlay=true) // Input for Bollinger Bands length and standard deviation bbLength = input(20, title="Bollinger Bands Length") stdDev = input(2.0, title="Bollinger Bands Std Dev") // Calculate and plot the Bollinger Bands basis = ta.sma(close, bbLength) deviation = stdDev * ta.stdev(close, bbLength) upperBB = basis + deviation lowerBB = basis - deviation // Get previous candle's values prevHigh = high[1] // Previous candle high prevLow = low[1] // Previous candle low // Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1]) // Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1]) // Entry and exit for Buy signals if (buyCondition) strategy.entry("Buy", strategy.long) // Calculate target and stop loss stopLossPrice = prevLow targetPrice = prevHigh + (prevHigh - stopLossPrice) // 1:1 RR target // Set stop loss and target orders strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice) // // Plot entry line // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid) // Entry and exit for Sell signals if (sellCondition) strategy.entry("Sell", strategy.short) // Calculate target and stop loss stopLossPriceSell = prevHigh targetPriceSell = prevLow - (stopLossPriceSell - prevLow) // 1:1 RR target // Set stop loss and target orders strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell) // // Plot entry line // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid) // Plotting Bollinger Bands with 70% transparency plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70) plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70) plot(basis, color=color.blue, title="Middle Band", transp=70)