
Strategi ini berdasarkan kepada persilangan dua purata bergerak ((EMA) untuk menghasilkan isyarat perdagangan. Apabila EMA jangka pendek ((20 hari) dari bawah ke atas melalui EMA jangka panjang ((50 hari)), ia menghasilkan isyarat beli; Apabila EMA jangka pendek dari atas ke bawah melalui EMA jangka panjang, ia menghasilkan isyarat jual.
EMA adalah strategi perdagangan yang mudah difahami dan sesuai untuk pasaran trend. Ia menggunakan persilangan purata bergerak jangka pendek dan jangka panjang untuk menangkap perubahan trend pasaran, sambil memperkenalkan rujukan trend jangka panjang. Walaupun terdapat beberapa batasan, seperti prestasi yang buruk dalam pasaran yang bergolak, dan keterlambatan purata bergerak, strategi ini dapat meningkatkan lagi kestabilan dan keuntungan dengan memperkenalkan petunjuk lain, mengoptimumkan parameter, memasukkan langkah-langkah kawalan risiko dan sebagainya.
/*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")