이 전략은 볼링거 밴드 지표에 기반한 적응적 평균 반전 거래 시스템입니다. 이 전략은 평균 반전 원칙에 따라 거래하는 볼링거 밴드와 가격 크로스오버를 모니터링하여 과소입 및 과소매 기회를 포착합니다. 이 전략은 다중 시장 및 시간 프레임에 적합한 동적 위치 크기와 위험 관리 메커니즘을 통합합니다.
핵심 논리는 다음과 같은 점에 기초합니다. 1. 20주기 이동평균을 중위역으로 사용하며, 상위역과 하위역에 2개의 표준편차가 있습니다. 2. 가격이 하위 범위를 넘어서면 긴 포지션을 개척합니다. 3. 가격이 상단 범위를 넘어서면 짧은 포지션을 개척합니다. 4. 가격이 중간 반도에 돌아갔을 때 이윤을 취합니다. 5. 1%의 스톱 로스를 설정하고 2%의 이윤을 취하여 2:1의 리스크-리워드 비율을 달성합니다. 6. 거래 당 계정 자본의 1%를 투자하는 비율 기반의 위치 크기를 사용합니다.
통합 시장 위험 - 다양한 시장에서 빈번한 거래로 인해 손실을 초래할 수 있습니다. 솔루션: 트렌드 필터를 추가하고 트렌드가 명확할 때만 거래합니다.
가짜 파업 위험 - 파업 후 가격이 빠르게 역전될 수 있습니다. 솔루션: 부피나 다른 기술적 지표와 같은 확인 신호를 추가합니다.
시스템적 위험 - 극단적인 시장 조건에서 더 큰 손실을 입을 수 있습니다. 솔루션: 최대 유출 제한을 적용하고, 임계치에 도달하면 자동으로 거래를 중단합니다.
이 전략은 볼링거 밴드를 사용하여 가격 오차를 캡처하고 평균 회전 원칙에 따라 거래를합니다. 그 포괄적인 위험 관리 및 명확한 거래 규칙은 좋은 실용성을 제공합니다. 제안 된 최적화를 통해 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다. 안정적인 수익을 추구하는 양적 거래자에게 적합합니다.
/*backtest start: 2025-01-09 00:00:00 end: 2025-01-16 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs for Bollinger Bands bbLength = input.int(20, title="Bollinger Bands Length") bbStdDev = input.float(2.0, title="Bollinger Bands StdDev") // Inputs for Risk Management stopLossPerc = input.float(1.0, title="Stop Loss (%)", minval=0.1, step=0.1) takeProfitPerc = input.float(2.0, title="Take Profit (%)", minval=0.1, step=0.1) // Calculate Bollinger Bands basis = ta.sma(close, bbLength) bbStdev = ta.stdev(close, bbLength) upper = basis + bbStdDev * bbStdev lower = basis - bbStdDev * bbStdev // Plot Bollinger Bands plot(basis, color=color.blue, title="Middle Band") plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") // Entry Conditions longCondition = ta.crossover(close, lower) shortCondition = ta.crossunder(close, upper) // Exit Conditions exitLongCondition = ta.crossunder(close, basis) exitShortCondition = ta.crossover(close, basis) // Stop Loss and Take Profit Levels longStopLoss = close * (1 - stopLossPerc / 100) longTakeProfit = close * (1 + takeProfitPerc / 100) shortStopLoss = close * (1 + stopLossPerc / 100) shortTakeProfit = close * (1 - takeProfitPerc / 100) // Execute Long Trades if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", stop=longStopLoss, limit=longTakeProfit) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit) // Close Positions on Exit Conditions if (exitLongCondition and strategy.position_size > 0) strategy.close("Long") if (exitShortCondition and strategy.position_size < 0) strategy.close("Short") // 🔊 SOUND ALERTS IN BROWSER 🔊 if (longCondition) alert("🔔 Long Entry Signal!", alert.freq_once_per_bar_close) if (shortCondition) alert("🔔 Short Entry Signal!", alert.freq_once_per_bar_close) if (exitLongCondition) alert("🔔 Closing Long Trade!", alert.freq_once_per_bar_close) if (exitShortCondition) alert("🔔 Closing Short Trade!", alert.freq_once_per_bar_close)