
Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan Rujukan Titik Pangsi (CPR), Purata Pergerakan Eksponen (EMA), Indeks Kekuatan Relatif (RSI) dan logik pelarian. Strategi ini mengguna pakai mekanisme henti kerugian pengesanan dinamik ATR, mengenal pasti arah aliran pasaran dan peluang dagangan melalui kerjasama berbilang penunjuk teknikal yang diselaraskan, dan merealisasikan pengurusan risiko dinamik. Strategi ini sesuai untuk transaksi intrahari dan jangka sederhana hingga pendek serta mempunyai keupayaan penyesuaian dan kawalan risiko yang kukuh.
Strategi ini berdasarkan komponen teras berikut:
Strategi ini membina sistem perdagangan yang agak lengkap melalui sinergi pelbagai petunjuk teknikal. Mekanisme henti rugi dinamik dan pengesahan isyarat berbilang dimensi memberikan ciri pulangan risiko yang lebih baik. Ruang untuk pengoptimuman strategi terutamanya terletak pada meningkatkan kualiti isyarat dan menyempurnakan pengurusan risiko. Melalui pengoptimuman dan pelarasan berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam persekitaran pasaran yang berbeza.
/*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")