Ini adalah strategi perdagangan automatik yang berjalan panjang atau pendek berdasarkan persilangan dua purata bergerak eksponensial (EMA) dengan tempoh masa yang berbeza.
Strategi ini menggunakan dua EMA, satu adalah EMA pada bingkai masa yang lebih besar, dan yang lain adalah EMA pada bingkai masa semasa. Apabila EMA semasa melintasi di atas EMA yang lebih besar, ia menjadi panjang. Apabila EMA semasa melintasi di bawah EMA yang lebih besar, ia menjadi pendek.
Khususnya, strategi pertama menentukan dua parameter EMA:
Kemudian ia mengira dua EMA:
Akhirnya, ia memasuki perdagangan berdasarkan:
Dengan menilai arah trend melalui persimpangan antara dua EMA dari tempoh yang berbeza, ia mengotomatiskan perdagangan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai beberapa risiko:
Risiko boleh dikurangkan dengan menetapkan stop loss, mengoptimumkan parameter, menambah penunjuk lain dan sebagainya.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Strategi silang EMA menangkap trend dengan penunjuk mudah, sesuai 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()