이 전략은 중앙 피보트 범위 (CPR), 기하급수적인 이동 평균 (EMA), 상대적 강도 지수 (RSI), 및 브레이크아웃 로직을 결합한 포괄적인 거래 시스템이다. 이 전략은 ATR 기반의 동적 트레일링 스톱 로스 메커니즘을 사용하여 동적 리스크 관리를 구현하는 동안 시장 추세와 거래 기회를 식별하기 위해 여러 기술적 지표를 활용합니다. 강력한 적응력과 리스크 제어 기능을 제공하여 내일 및 중장기 거래에 적합합니다.
이 전략은 몇 가지 핵심 요소를 기반으로 합니다.
이 전략은 여러 기술적 지표의 시너지 효과를 통해 포괄적인 거래 시스템을 구축한다. 역동적 인 스톱 로스 메커니즘과 다차원 신호 확인은 유리한 리스크 보상 특성을 제공합니다. 전략 최적화 잠재력은 주로 신호 품질을 향상시키고 리스크 관리를 정비하는 데 있습니다. 지속적인 최적화와 조정을 통해 전략은 다양한 시장 조건에서 안정적인 성능을 유지하는 데 유망합니다.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 7h basePeriod: 7h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Enhanced CPR + EMA + RSI + Breakout Strategy", overlay=true) // Inputs ema_short = input(9, title="Short EMA Period") ema_long = input(21, title="Long EMA Period") cpr_lookback = input.timeframe("D", title="CPR Timeframe") atr_multiplier = input.float(1.5, title="ATR Multiplier") rsi_period = input(14, title="RSI Period") rsi_overbought = input(70, title="RSI Overbought Level") rsi_oversold = input(30, title="RSI Oversold Level") breakout_buffer = input.float(0.001, title="Breakout Buffer (in %)") // Calculate EMAs short_ema = ta.ema(close, ema_short) long_ema = ta.ema(close, ema_long) // Request Daily Data for CPR Calculation high_cpr = request.security(syminfo.tickerid, cpr_lookback, high) low_cpr = request.security(syminfo.tickerid, cpr_lookback, low) close_cpr = request.security(syminfo.tickerid, cpr_lookback, close) // CPR Levels pivot = (high_cpr + low_cpr + close_cpr) / 3 bc = (high_cpr + low_cpr) / 2 tc = pivot + (pivot - bc) // ATR for Stop-Loss and Take-Profit atr = ta.atr(14) // RSI Calculation rsi = ta.rsi(close, rsi_period) // Entry Conditions with RSI Filter and Breakout Logic long_condition = ((close > tc) and (ta.crossover(short_ema, long_ema)) and (rsi > 50 and rsi < rsi_overbought)) or (rsi > 80) or (close > (pivot + pivot * breakout_buffer)) short_condition = ((close < bc) and (ta.crossunder(short_ema, long_ema)) and (rsi < 50 and rsi > rsi_oversold)) or (rsi < 20) or (close < (pivot - pivot * breakout_buffer)) // Dynamic Exit Logic long_exit = short_condition short_exit = long_condition // Trailing Stop-Loss Implementation if long_condition strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", trail_points=atr * atr_multiplier, trail_offset=atr * atr_multiplier / 2) if short_condition strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", trail_points=atr * atr_multiplier, trail_offset=atr * atr_multiplier / 2) // Plot CPR Levels and EMAs plot(pivot, title="Pivot Point", color=color.orange, linewidth=2) plot(tc, title="Top CPR", color=color.green, linewidth=2) plot(bc, title="Bottom CPR", color=color.red, linewidth=2) plot(short_ema, title="Short EMA", color=color.blue, linewidth=1) plot(long_ema, title="Long EMA", color=color.purple, linewidth=1) // Highlight Buy and Sell Signals bgcolor(long_condition ? color.new(color.green, 90) : na, title="Buy Signal Highlight") bgcolor(short_condition ? color.new(color.red, 90) : na, title="Sell Signal Highlight")