Chiến lược này là một hệ thống giao dịch toàn diện kết hợp giữa Phạm vi trục trung tâm (CPR), Trung bình chuyển động nhân tố (EMA), Chỉ số sức mạnh tương đối (RSI) và logic đột phá. Chiến lược sử dụng cơ chế dừng lỗ theo dõi động dựa trên ATR, sử dụng nhiều chỉ số kỹ thuật để xác định xu hướng thị trường và cơ hội giao dịch trong khi thực hiện quản lý rủi ro năng động. Nó phù hợp với giao dịch trong ngày và trung hạn, cung cấp khả năng thích nghi và kiểm soát rủi ro mạnh mẽ.
Chiến lược dựa trên một số thành phần cốt lõi:
Chiến lược xây dựng một hệ thống giao dịch toàn diện thông qua hiệu ứng phối hợp của nhiều chỉ số kỹ thuật. Cơ chế dừng lỗ năng động và xác nhận tín hiệu đa chiều cung cấp các đặc điểm rủi ro-lợi nhuận thuận lợi. Tiềm năng tối ưu hóa chiến lược chủ yếu nằm trong việc cải thiện chất lượng tín hiệu và tinh chỉnh quản lý rủi ro. Thông qua tối ưu hóa và điều chỉnh liên tục, chiến lược cho thấy hứa hẹn trong việc duy trì hiệu suất ổn định trong các điều kiện thị trường khác nhau.
/*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")