
Strategi ini menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk membangun sinyal perdagangan untuk mengidentifikasi dan melacak tren. Ini menghasilkan sinyal beli ketika garis cepat melintasi garis lambat. Ini menghasilkan sinyal jual ketika garis cepat melintasi garis lambat.
Strategi ini menggunakan Exponential Moving Average dengan dua periode yang berbeda sebagai dasar keputusan perdagangan. Parameter moving average cepat ditetapkan pada 30 hari untuk menangkap perubahan harga yang lebih pendek. Parameter moving average lambat ditetapkan pada 100 hari untuk menentukan arah tren lini panjang dalam harga.
Ketika garis cepat melewati garis lambat dari bawah, berarti pasar masuk ke tren naik, menghasilkan sinyal beli; ketika garis cepat melewati garis lambat dari atas, berarti pasar masuk ke tren turun, menghasilkan sinyal jual.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini didasarkan pada sistem keputusan perdagangan yang dibangun dengan dua garis rata, untuk menilai tren pasar melalui hubungan harga rata-rata cepat dan rata-rata lambat, menghasilkan sinyal yang sederhana dan jelas. Strategi ini menyaring sebagian dari kebisingan, dapat berjalan lancar, dan cocok untuk perdagangan tren garis tengah dan panjang. Namun ada juga beberapa kekurangan, dengan melakukan optimasi multi-indikator dan pengendalian risiko, strategi ini dapat dioptimalkan menjadi lebih umum dan efisien.
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// === Inputs ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 30, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = close, title = "Slow MA Source")
maSlowLength = input(defval = 100, title = "Slow MA Period", minval = 1)
// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop = input(defval = true, title = "Use Initial Stop Loss?")
slPoints = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS = input(defval = true, title = "Use Trailing Stop?")
tslPoints = input(defval = 0, title = "Trail Points", minval = 1)
useTSO = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset = input(defval = 0, title = "Trail Offset Points", minval = 1)
// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)
plot(fastMA, color=blue)
plot(slowMA, color=purple)
goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())
// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())
if (useStop)
strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)