Strategi ini bertujuan untuk mengeksploitasi pembalikan atau kesinambungan trend yang berpotensi menggunakan Purata Bergerak Eksponen (EMA) dan hentian yang berdasarkan pada kaedah Chande Dynamic Convergence Divergence (CDC) Average True Range. Strategi ini menggabungkan beberapa penunjuk untuk menentukan masa masuk dan menetapkan stop loss dan mengambil tahap keuntungan berdasarkan turun naik pasaran untuk mengawal risiko sambil menangkap trend baru.
Strategi ini menggunakan EMA berganda 60-period dan 90-period untuk menentukan arah trend. Persalinan di mana EMA tempoh yang lebih pendek bergerak di atas EMA tempoh yang lebih lama memberikan isyarat kenaikan. Pada masa yang sama, persalinan garis MACD di atas garis isyaratnya dapat mengesahkan pandangan kenaikan. Masuk memerlukan harga berada di atas tahap hentian CDC yang dihitung sebelumnya.
Peraturan keluar adalah: tutup kedudukan apabila harga mencapai tahap mengambil keuntungan berasaskan ATR atau jatuh di bawah paras stop loss CDC.
Strategi ini menggabungkan EMA berganda untuk menilai arah trend utama dan MACD untuk mengesahkan masa kemasukan, mengelakkan pecah palsu. Kedua-dua paras berhenti dan sasaran keuntungan dikira berdasarkan turun naik pasaran untuk pengurusan risiko yang berkesan. Sama ada trend berbalik atau berterusan, strategi ini dapat merebut peluang dengan tepat pada masanya.
Selain itu, parameter input strategi ini boleh disesuaikan. Pengguna boleh menyesuaikan tempoh EMA, tempoh ATR dan pengganda CDC mengikut gaya perdagangan mereka sendiri.
Risiko terbesar dari strategi ini adalah penilaian trend yang salah. Apabila pasaran mengumpul, EMA dengan mudah boleh memberikan isyarat yang salah. Pada masa ini, peranan pengesahan MACD sangat penting. Di samping itu, peningkatan yang sewajarnya terhadap pengganda stop loss CDC diperlukan untuk menangani jurang harga yang besar yang disebabkan oleh peristiwa tiba-tiba.
Strategi ini memanfaatkan kelebihan penunjuk trend dan turun naik untuk mengenal pasti peluang berpotensi dalam sekuriti. Melalui pengoptimuman parameter dan penambahbaikan mekanisme, strategi ini berpotensi untuk meningkatkan kestabilan dan keuntungan. Ia menyediakan peniaga kuantitatif dengan kerangka strategi yang boleh dipercayai dan berskala.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved EMA & CDC Trailing Stop Strategy", overlay=true) // Define the inputs ema60Period = input(60, title="EMA 60 Period") ema90Period = input(90, title="EMA 90 Period") atrPeriod = input(24, title="CDC ATR Period") multiplier = input(4.0, title="CDC Multiplier") profitTargetMultiplier = input(2.0, title="Profit Target Multiplier (ATR)") // Calculate EMAs ema60 = ta.ema(close, ema60Period) ema90 = ta.ema(close, ema90Period) // Calculate ATR atr = ta.atr(atrPeriod) // MACD calculation [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) // Define the trailing stop and profit target longStop = close - multiplier * atr shortStop = close + multiplier * atr longProfitTarget = close + profitTargetMultiplier * atr shortProfitTarget = close - profitTargetMultiplier * atr // Entry conditions longCondition = close > ema60 and ema60 > ema90 and macdLine > signalLine and close > longStop shortCondition = close < ema60 and ema60 < ema90 and macdLine < signalLine and close < shortStop // Exit conditions based on profit target longProfitCondition = close >= longProfitTarget shortProfitCondition = close <= shortProfitTarget // Plot the EMAs, Stops, and MACD for visualization plot(ema60, color=color.blue, title="60 EMA") plot(ema90, color=color.red, title="90 EMA") plot(longStop, color=color.green, title="Long Stop", style=plot.style_linebr) plot(shortStop, color=color.red, title="Short Stop", style=plot.style_linebr) hline(0, "Zero Line", color=color.gray) plot(macdLine - signalLine, color=color.blue, title="MACD Histogram") // Strategy execution using conditional blocks if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) // Exit based on profit target and trailing stop if longProfitCondition or close < longStop strategy.close("Long") if shortProfitCondition or close > shortStop strategy.close("Short")