
이 전략은 부린띠 지표에 기반한 개선된 버전의 트렌드 추적 전략이다. 가격과 부린띠의 연속적인 3번의 접촉을 모니터링하여 트렌드의 신뢰성을 확인하여 더 높은 승률 아래에서 거래한다. 전략은 20주기의 이동 평균을 중도 궤도로 사용하고, 2배의 표준 차이는 상하 궤도의 계산 기준으로 사용한다. 가격과 부린띠 경계와의 관계를 심층적으로 분석함으로써 독특한 장점을 가진 거래 시스템을 구현한다.
이 전략의 핵심 논리는 계수 메커니즘을 통해 가격이 브린 띠 경계에 지속적으로 접촉하는 것을 인식하는 것입니다. 가격이 연속적으로 3번의 경로를 돌파 할 때, 시스템은 여러 신호를 냅니다. 가격이 연속적으로 3번의 경로를 돌파 할 때, 시스템은 빈 신호를 냅니다. 이 메커니즘은 가짜 돌파구를 효과적으로 필터링하여 거래의 신뢰성을 향상시킵니다.
이 전략은 전통적인 브린띠 거래 시스템을 개선하여 높은 신뢰도를 가진 트렌드 추적 전략을 구현한다. 그것의 독특한 삼중 접촉 확인 메커니즘은 거래의 승률을 효과적으로 높여주고, 이동 평균에 기반한 평소 위치 메커니즘은 합리적인 수익을 얻는 결실을 제공한다. 전략에는 여전히 몇 가지 고유한 위험이 있지만, 최적화 방향을 제공함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.
/*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")