
Strategi ini adalah sistem perdagangan trend-tracking berdasarkan pelbagai indeks moving averages (EMA) dan sliding moving averages (SMMA). Ia menggunakan persilangan EMA jangka pendek dan jangka panjang untuk menghasilkan isyarat perdagangan, sambil menggunakan SMMA sebagai penunjuk pengesahan trend, dan memperkenalkan garis EMA tambahan sebagai rujukan untuk sokongan dan rintangan.
Strategi ini menggunakan EMA 10 dan 22 hari sebagai garis isyarat utama, SMMA 200 hari sebagai penapis trend, dan EMA 50, 100 dan 200 hari sebagai penilaian tambahan. Apabila EMA jangka pendek naik melintasi EMA jangka panjang dan harga berada di atas SMMA, sistem menghasilkan isyarat multitasking; apabila EMA jangka pendek turun melintasi EMA jangka panjang dan harga berada di bawah SMMA, sistem menghasilkan isyarat kosong.
Ini adalah strategi pengesanan trend yang menggabungkan sistem pelbagai garis rata-rata, menggunakan kombinasi garis rata-rata berkala yang berbeza, untuk menangkap trend dan mengawal risiko. Kelebihan utama strategi ini adalah mekanisme pengesahan berganda, tetapi juga perlu berhati-hati dalam prestasi di pasaran goyah. Dengan pengoptimuman parameter yang munasabah dan pengurusan risiko, strategi ini dapat memberikan kesan yang baik di pasaran yang sedang tren.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with SMMA and Additional EMAs", overlay=true)
// Input parameters for EMAs and SMMA
emaShortLength = input.int(10, title="Short EMA Length")
emaLongLength = input.int(22, title="Long EMA Length")
smmaLength = input.int(200, title="SMMA Length")
// Additional EMA lengths
ema1Length = input.int(50, title="EMA 1 Length")
ema2Length = input.int(100, title="EMA 2 Length")
ema3Length = input.int(200, title="EMA 3 Length")
// Calculate EMAs and SMMA
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
smma = ta.sma(ta.sma(close, smmaLength), 2) // SMMA approximation
ema1 = ta.ema(close, ema1Length)
ema2 = ta.ema(close, ema2Length)
ema3 = ta.ema(close, ema3Length)
// Plot EMAs and SMMA on the chart
plot(emaShort, color=color.blue, linewidth=2, title="Short EMA")
plot(emaLong, color=color.red, linewidth=2, title="Long EMA")
plot(smma, color=color.white, linewidth=2, title="SMMA")
plot(ema1, color=color.green, linewidth=1, title="EMA 1")
plot(ema2, color=color.purple, linewidth=1, title="EMA 2")
plot(ema3, color=color.yellow, linewidth=1, title="EMA 3")
// Buy condition: Short EMA crosses above Long EMA and price is above SMMA
buyCondition = ta.crossover(emaShort, emaLong) and close > smma
// Sell condition: Short EMA crosses below Long EMA and price is below SMMA
sellCondition = ta.crossunder(emaShort, emaLong) and close < smma
// Execute Buy order
if (buyCondition)
strategy.entry("Buy", strategy.long)
alert("Buy Signal: Short EMA crossed above Long EMA and price is above SMMA.", alert.freq_once_per_bar_close)
// Execute Sell order
if (sellCondition)
strategy.entry("Sell", strategy.short)
alert("Sell Signal: Short EMA crossed below Long EMA and price is below SMMA.", alert.freq_once_per_bar_close)