Ini adalah strategi perdagangan otomatis yang berjalan panjang atau pendek berdasarkan persilangan dua rata-rata bergerak eksponensial (EMA) dengan periode waktu yang berbeda.
Strategi ini menggunakan dua EMA, satu adalah EMA pada kerangka waktu yang lebih besar, dan yang lainnya adalah EMA pada kerangka waktu saat ini.
Secara khusus, strategi pertama mendefinisikan dua parameter EMA:
Kemudian ia menghitung dua EMA:
Akhirnya, ia memasuki perdagangan berdasarkan:
Dengan menilai arah tren melalui persilangan antara dua EMA dari periode yang berbeda, itu mengotomatisasi perdagangan.
Strategi ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Risiko dapat dikurangi dengan mengatur stop loss, mengoptimalkan parameter, menambahkan indikator lain dll.
Strategi dapat dioptimalkan dalam aspek berikut:
Strategi EMA crossover menangkap tren dengan indikator sederhana, cocok untuk pemula untuk belajar dan berlatih.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") tf = input("D", title = "Big Timeframe") len = input(3, minval = 1, title = "MA length") src = input(close, title = "MA Source") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MAs ma1 = request.security(syminfo.tickerid, tf, sma(src, len)) ma2 = sma(src, len) plot(ma1, linewidth = 2, color = blue, title = "Big TF MA") plot(ma2, linewidth = 2, color = red, title = "MA") //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if ma2 > ma1 strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if ma2 < ma1 strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()