Ini adalah strategi mengikuti trend berdasarkan tiga isyarat crossover Exponential Moving Average (EMA). Strategi ini menggabungkan 9-period, 15-period, dan 50-period EMA, menggunakan isyarat crossover antara EMA jangka pendek dan sederhana sambil menggunakan EMA jangka panjang sebagai penapis trend, ditambah dengan mekanisme stop-loss dan take-profit dinamik untuk pengurusan risiko. Reka bentuk strategi ini sepenuhnya mempertimbangkan kedua-dua trend-mengikut dan keperluan pengurusan risiko, menjadikannya sesuai untuk perdagangan jangka menengah hingga panjang.
Logik teras bergantung pada pemantauan isyarat silang antara EMA 9-period dan 15-period sambil menggunakan EMA 50-period sebagai penunjuk pengesahan trend.
Ini adalah strategi trend berikut yang direka dengan baik dengan logik yang jelas. Gabungan beberapa EMA memastikan kebolehpercayaan isyarat sambil mencapai trend berikut yang berkesan. Mekanisme pengurusan risiko terbina dalam menyediakan kestabilan untuk operasi strategi. Melalui arah pengoptimuman yang dicadangkan, terdapat ruang untuk penambahbaikan lanjut. Strategi ini sesuai untuk peniaga yang mencari pulangan yang mantap, tetapi memerlukan ujian menyeluruh dan pengoptimuman parameter untuk ciri pasaran tertentu sebelum pelaksanaan.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true) // Customizable Inputs ema9Length = input(9, title="EMA 9 Length") ema15Length = input(15, title="EMA 15 Length") ema50Length = input(50, title="EMA 50 Length") stopLossPoints = input(100, title="Stop Loss Points") takeProfitPoints = input(200, title="Take Profit Points") // Calculate EMAs ema9 = ta.ema(close, ema9Length) ema15 = ta.ema(close, ema15Length) ema50 = ta.ema(close, ema50Length) // Detect crossovers crossover_above = ta.crossover(ema9, ema15) crossover_below = ta.crossunder(ema9, ema15) // Plot EMAs plot(ema9, color=color.blue, title="EMA 9") plot(ema15, color=color.red, title="EMA 15") // Make the 50 EMA invisible plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none) // Plot buy and sell signals as shapes plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Execute trades if (crossover_above and close > ema50) strategy.entry("Buy", strategy.long) if (crossover_below and close < ema50) strategy.close("Buy") // Apply stop loss and take profit if (crossover_above and close > ema50) strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints) // Alerts for notifications if (crossover_above and close > ema50) alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close) if (crossover_below and close < ema50) alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)