
Strategi ini bertujuan untuk menggunakan purata bergerak indeks dan perhentian yang tidak jelas berdasarkan purata penghimpunan chande yang dinamik untuk mengesan perubahan atau kesinambungan trend yang berpotensi. Strategi ini menggabungkan beberapa indikator untuk menentukan masa masuk dan menetapkan paras berhenti dan berhenti berdasarkan turun naik pasaran, berusaha untuk mengawal risiko sambil menemui trend baru.
Strategi ini menggunakan EMA ganda 60 dan 90 untuk menentukan arah trend. Apabila EMA jangka pendek melintasi EMA jangka panjang, ia memberi isyarat bullish. Pada masa yang sama, MACD melintasi garis perlahan untuk mengesahkan bullish.
Peraturan keluar strategi adalah: harga menyentuh stop based ATR atau melepasi CDC dan keluar dari stop loss.
Strategi ini menggabungkan arah trend utama yang dinilai oleh EMA dan masa masuk yang disahkan oleh MACD, untuk mengelakkan pecah palsu. Tempat berhenti dan tempat berhenti yang bergerak adalah berdasarkan perhitungan turun naik pasaran, dan dapat menguruskan risiko dengan baik.
Selain itu, parameter input strategi boleh disesuaikan, pengguna boleh menyesuaikan kitaran EMA, kitaran ATR dan faktor CDC yang diperlukan untuk menjadikan strategi lebih sesuai dengan cara perdagangan mereka.
Risiko terbesar dalam strategi ini adalah kesalahan dalam menilai trend. EMA mudah memberi isyarat yang salah apabila pasaran berada dalam penumpuan. Dalam kes ini, pengesahan MACD sangat penting. Selain itu, faktor stop loss CDC harus ditingkatkan dengan sewajarnya untuk menangani lonjakan besar yang disebabkan oleh kejadian yang tidak dijangka.
Strategi ini memanfaatkan kelebihan penilaian trend dan indikator turun naik untuk mengenal pasti peluang yang berpotensi dalam sekuriti yang ditargetkan. Dengan pengoptimuman parameter dan penambahbaikan mekanisme, strategi ini dijangka meningkatkan kestabilan dan keuntungan lebih lanjut.
/*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")