
Strategi ini didasarkan pada persilangan dua rata-rata bergerak ((EMA) untuk menghasilkan sinyal perdagangan. Ketika EMA jangka pendek (20 hari) dari bawah ke atas melintasi EMA jangka panjang (50 hari), menghasilkan sinyal beli; Ketika EMA jangka pendek dari atas ke bawah melintasi EMA jangka panjang, menghasilkan sinyal jual.
Strategi EMA adalah strategi perdagangan yang sederhana dan mudah dimengerti, sesuai dengan pasar tren. Strategi ini menggunakan persilangan rata-rata bergerak jangka pendek dan jangka panjang untuk menangkap perubahan tren pasar, sambil memperkenalkan referensi tren jangka panjang. Meskipun ada beberapa keterbatasan, seperti kinerja yang buruk di pasar yang bergolak, dan keterbelakangan rata-rata bergerak, strategi ini dapat ditingkatkan lebih lanjut dengan cara memperkenalkan indikator lain, mengoptimalkan parameter, dan menambahkan langkah-langkah pengendalian risiko.
/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true)
// Define the length for moving averages
short_ma_length = input.int(20, "Short MA Length")
long_ma_length = input.int(50, "Long MA Length")
long_ma_200_length = input.int(200, "Long MA 200 Length")
// Define start time for testing
start_time = timestamp(2024, 01, 01, 00, 00)
// Calculate current date and time
current_time = timenow
// Calculate moving averages
ema20 = ta.ema(close, short_ma_length)
ema50 = ta.ema(close, long_ma_length)
ema200 = ta.ema(close, long_ma_200_length)
// Crossing conditions
crossed_above = ta.crossover(ema20, ema50)
crossed_below = ta.crossunder(ema20, ema50)
// Entry and exit conditions within the specified time frame
if true
if (crossed_above)
strategy.entry("Buy", strategy.long)
alert("Buy Condition", alert.freq_once_per_bar_close)
if (crossed_below)
strategy.entry("Sell", strategy.short)
alert("Sell Condition", alert.freq_once_per_bar_close)
// Plotting moving averages for visualization
plot(ema20, color=color.green, title="EMA20")
plot(ema50, color=color.red, title="EMA50")
plot(ema200, color=color.blue, title="EMA200")
// Placing buy and sell markers
plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")