
Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada moving average (EMA) dan moving average (SMMA) multi-indeks. Ini memanfaatkan persilangan EMA jangka pendek dan jangka panjang untuk menghasilkan sinyal perdagangan, sekaligus menggunakan SMMA sebagai indikator konfirmasi tren, dan memperkenalkan garis EMA tambahan sebagai referensi untuk posisi dukungan dan resistensi.
Strategi ini menggunakan EMA 10 dan 22 sebagai sinyal utama, SMMA 200 sebagai filter tren, dan EMA 50, 100, dan 200 sebagai penilaian tambahan. Sistem menghasilkan sinyal multitasking ketika EMA jangka pendek naik melewati EMA jangka panjang dan harga berada di atas SMMA; Sistem menghasilkan sinyal blanko ketika EMA jangka pendek turun melewati EMA jangka panjang dan harga berada di bawah SMMA.
Ini adalah strategi pelacakan tren yang menggabungkan sistem garis rata-rata ganda, dengan penggunaan kombinasi garis rata-rata berkala yang berbeda, dapat menangkap tren dan mengendalikan risiko. Keunggulan inti dari strategi ini adalah mekanisme konfirmasi ganda, tetapi juga perlu memperhatikan kinerja di pasar yang bergoyang. Dengan pengoptimalan parameter yang masuk akal dan manajemen risiko, strategi ini dapat memberikan hasil yang baik di pasar 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)