이 전략은 전통적인 볼링거 밴드 트렌드 추적 시스템의 개선된 버전이다. 트렌드 신뢰성을 확인하기 위해 볼링거 밴드의 3 개의 연속적인 접촉을 통해 가격 행동을 모니터링하여 높은 승률을 얻는다. 전략은 20 기간 이동 평균을 중간 밴드와 상부 및 하부 밴드 2 개의 표준 편차를 사용합니다. 밴드 경계와의 가격 관계에 대한 상세한 분석을 통해 독특한 장점을 가진 거래 시스템을 달성합니다.
핵심 논리는 볼링거 밴드 경계의 지속적인 가격 접촉을 식별하기 위한 카운팅 메커니즘에 의존한다. 이 시스템은 가격이 3회 연속 하위 밴드 아래로 넘어갈 때 긴 신호를 생성하고, 가격이 3회 연속 상위 밴드 위로 넘어갈 때 짧은 신호를 생성한다. 이 메커니즘은 가짜 브레이크오프를 효과적으로 필터링하여 거래 신뢰성을 향상시킨다. 이 전략은 중간 밴드 (20 기간 이동 평균) 을 출구 신호로 사용하고, 가격이 중간 밴드로 돌아오는 경우 거래를 완료한다. 이 디자인은 트렌드 포착과 적시에 수익을 얻는 것을 모두 보장한다.
이 전략은 매우 신뢰할 수 있는 트렌드 추적 접근 방식을 구현함으로써 전통적인 볼링거 밴드 거래 시스템보다 향상됩니다. 독특한 트리플 터치 확인 메커니즘은 승률을 효과적으로 증가시킵니다. 이동 평균 기반 출구 메커니즘은 합리적인 수익 취득 솔루션을 제공합니다. 내재된 위험이 있지만 제안된 최적화 방향은 전략 안정성과 수익성을 더욱 향상시킬 수 있습니다.
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true) // Input Parameters length = input.int(20, title="Bollinger Bands Length", minval=1) src = input(close, title="Source") mult = input.float(2.0, title="Multiplier", step=0.1) // Calculate Bollinger Bands basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plotBasis = plot(basis, color=color.blue, title="Basis") plotUpper = plot(upper, color=color.red, title="Upper Band") plotLower = plot(lower, color=color.green, title="Lower Band") fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill") // Counter Variables var int longCrossCount = 0 var int shortCrossCount = 0 // Detect Crossings longCondition = close < lower // Price closes below the lower band shortCondition = close > upper // Price closes above the upper band if longCondition longCrossCount += 1 // Increment the counter for long shortCrossCount := 0 // Reset the short counter if shortCondition shortCrossCount += 1 // Increment the counter for short longCrossCount := 0 // Reset the long counter if not longCondition and not shortCondition longCrossCount := 0 // Reset if no crossing shortCrossCount := 0 // Entry and Exit Rules if longCrossCount >= 3 and strategy.position_size <= 0 strategy.entry("Long", strategy.long) longCrossCount := 0 // Reset the counter after entering if shortCrossCount >= 3 and strategy.position_size >= 0 strategy.entry("Short", strategy.short) shortCrossCount := 0 // Reset the counter after entering // Exit Condition (When Price Returns to the Middle Band) exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis) if exitCondition and strategy.position_size > 0 strategy.close("Long") if exitCondition and strategy.position_size < 0 strategy.close("Short")