
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada persilangan rata-rata bergerak indeks ganda (EMA). Strategi ini menggunakan persilangan EMA jangka pendek (siklus 14) dan EMA jangka panjang (siklus 100) untuk menangkap titik pergeseran tren pasar dan menentukan waktu masuk dengan menilai posisi persilangan rata-rata jangka pendek dan rata-rata jangka panjang.
Logika inti dari strategi ini didasarkan pada perubahan dinamika tren harga. EMA jangka pendek lebih sensitif terhadap perubahan harga, sedangkan EMA jangka panjang lebih mampu menyaring kebisingan pasar dan mencerminkan tren utama. Ketika momentum harga jangka pendek meningkat di atas rata-rata jangka panjang, menunjukkan bahwa pasar mungkin mulai memasuki tren naik; Ketika momentum jangka pendek melemah di bawah rata-rata jangka panjang, menunjukkan bahwa pasar mungkin beralih ke tren turun.
Strategi kuantitatif EMA adalah sistem pelacakan tren yang klasik dan praktis. Dengan menggabungkan indeks bergerak rata-rata jangka pendek dan jangka panjang, strategi ini dapat menangkap peluang konversi tren pasar dengan lebih baik. Meskipun ada beberapa risiko keterlambatan dan sinyal palsu, namun dengan optimasi parameter dan langkah-langkah pengendalian risiko yang tepat, efek perdagangan yang stabil masih dapat dicapai. Kesederhanaan dan skalabilitas strategi membuatnya menjadi kerangka kerja dasar yang baik untuk perdagangan kuantitatif.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy", overlay=true)
// Input for EMAs
shortEmaLength = input(14, title="Short EMA Length")
longEmaLength = input(100, title="Long EMA Length")
// Calculate EMAs
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
// Plot EMAs
plot(shortEma, color=color.blue, title="9 EMA")
plot(longEma, color=color.red, title="100 EMA")
// Historical Signal Tracking
var float lastBuyPrice = na
var float lastSellPrice = na
// Buy and Sell Signals
buySignal = ta.crossover(shortEma, longEma)
sellSignal = ta.crossunder(shortEma, longEma)
// Track last buy and sell prices
if (buySignal)
lastBuyPrice := close
if (sellSignal)
lastSellPrice := close
// Plot buy and sell signals on the chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Logic
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.close("Buy")