
Strategi ini adalah sistem pelacakan tren berdasarkan sinyal crossover multi-index moving average (EMA). Dengan menggabungkan 20, 50 dan 150 siklus EMA, strategi ini membangun kerangka kerja identifikasi tren dan eksekusi perdagangan yang lengkap. Strategi ini memanfaatkan hubungan crossover antara EMA periode yang berbeda untuk menentukan perubahan tren pasar dan waktu perdagangan tertentu.
Strategi ini menggunakan rata-rata bergerak indeks dari tiga periode yang berbeda: EMA20 untuk tren jangka pendek, EMA50 untuk tren jangka menengah, EMA150 untuk tren jangka panjang. Ketika EMA50 melewati EMA150 membentuk persimpangan emas, menunjukkan tren naik jangka panjang terbentuk; Ketika EMA50 melewati EMA150 membentuk persimpangan mati, menunjukkan tren turun jangka panjang terbentuk.
Strategi ini menggunakan kombinasi dari beberapa indeks moving averages untuk membangun sistem perdagangan pelacakan tren yang lengkap. Strategi ini memiliki logika yang jelas, implementasi yang sederhana, dan skalabilitas yang baik. Dengan arah optimasi yang disarankan, strategi ini dapat meningkatkan stabilitas dan adaptasi strategi lebih lanjut. Strategi ini cocok untuk melacak tren jangka menengah dan panjang, tetapi perlu memperhatikan pilihan dan pengendalian risiko lingkungan pasar.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA2050150 Crossover Strategy#ganges", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
// EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
// Cross conditions
longCondition = ta.crossover(ema20, ema50)
flatCondition = ta.crossunder(ema20, ema50)
deathCross = ta.crossunder(ema50, ema150)
goldenCross = ta.crossover(ema50, ema150)
// // Trade execution
// if longCondition and time >= startDate and time <= endDate and strategy.position_size == 0
// strategy.entry("Long", strategy.long)
// if flatCondition and time >= startDate and time <= endDate and strategy.position_size > 0
// strategy.close("Long")
// Plot EMAs
plot(ema20, title="EMA 20", color=color.blue)
plot(ema50, title="EMA 50", color=color.orange)
plot(ema150, title="EMA 150", color=color.red)
// Plot cross signals
plotshape(series=goldenCross, location=location.belowbar, color=color.green, style=shape.labelup, title="Golden Cross", size=size.small, text="Golden Cross")
plotshape(series=deathCross, location=location.abovebar, color=color.red, style=shape.labeldown, title="Death Cross", size=size.small, text="Death Cross")
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Buy Signal", size=size.small, text="Buy")
plotshape(series=flatCondition, location=location.abovebar, color=color.orange, style=shape.triangledown, title="Sell Signal", size=size.small, text="Sell")
// Trade execution
if longCondition and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if flatCondition and strategy.position_size > 0
strategy.close("Long")