Ini adalah strategi trend-mengikuti yang menggabungkan 3 Exponential Moving Averages (EMA) dengan Indeks Pergerakan Arah (DMI) dan penunjuk Moving Average Convergence Divergence (MACD) untuk menentukan arah trend dan menjana isyarat beli / jual. komponen utama termasuk isyarat silang EMA, DMI untuk kekuatan trend, dan MACD untuk pengesahan momentum.
Logik teras bergantung kepada 3 EMA - 34, 89, dan 200 - yang dikira pada kerangka masa M5 untuk mengenal pasti trend keseluruhan.
Isyarat beli diaktifkan apabila: - Penutupan harga merentasi di atas 34 EMA - +DI (pergerakan arah menaik) > 17 - ADX (kekuatan trend) > -DI
Isyarat jual dihasilkan apabila: - Penutupan harga melintasi di bawah 34 EMA - -DI (pergerakan arah bearish) > 17 - ADX > +DI
Pengesahan tambahan datang dari penunjuk MACD sebelum entri.
Strategi ini mempunyai beberapa kelebihan utama:
Risiko utama yang perlu dipertimbangkan:
Kaedah pengurangan: - Gunakan stop-loss yang sesuai, saiz kedudukan - Mengoptimumkan panjang EMA untuk keadaan pasaran semasa - Lihat tindakan harga untuk pengesahan visual
Penambahbaikan lanjut untuk strategi:
Ringkasnya, ini adalah sistem trend berikut yang kukuh yang menggabungkan penunjuk mudah tetapi kuat untuk berdagang ke arah trend yang berlaku. konfigurasi EMA tiga kali mengukur trend pelbagai jangka masa sementara pemeriksaan DMI dan MACD meningkatkan masa dan kebarangkalian entri yang menguntungkan. Dengan pengoptimuman dan pengurusan risiko yang betul, ia boleh menjadi tambahan yang berkesan untuk peniaga trend.
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("2 EMA di+ Buy Sell, strategy ", overlay=true) // Define the EMA calculation function ema(src, length) => ta.ema(src, length) // Calculate and plot EMA on M5 ema34_M5 = ema(close, 34) ema89_M5 = ema(close, 89) ema200_M5 = ema(close, 200) // Plot EMAs plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2) plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2) plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2) // Define DMI parameters len = input(14, title="DI Length") up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, len) plusDI = 100 * ta.rma(plusDM, len) / trur minusDI = 100 * ta.rma(minusDM, len) / trur // Calculate ADX adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len) // Define MACD parameters fastLength = input(12, title="Fast Length") slowLength = input(26, title="Slow Length") signalLength = input(9, title="Signal Length") // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) // Create buy/sell conditions buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI // Strategy logic strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Create alerts for buy/sell signals alertcondition(buyCondition, title="Buy Signal", message="Buy Signal") alertcondition(sellCondition, title="Sell Signal", message="Sell Signal") // Plot buy/sell arrows on the price chart bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na) plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)