Strategi ini menghasilkan isyarat perdagangan berdasarkan persilangan dua purata bergerak dengan tempoh yang berbeza.
Strategi ini membolehkan pengguna memilih jenis dan panjang purata bergerak. Jenis termasuk SMA, EMA, VWMA, dll. Panjang menentukan tempoh purata bergerak.
Dua purata bergerak dikira berdasarkan pilihan pengguna. Jika garis yang lebih cepat melintasi di atas garis yang lebih perlahan, salib emas terbentuk dan isyarat beli dihasilkan. Jika garis yang lebih cepat melintasi di bawah garis yang lebih perlahan, salib kematian terbentuk dan isyarat jual dihasilkan.
Apabila harga purata jangka pendek di atas harga purata jangka panjang, ia dianggap sebagai trend menaik dan kedudukan panjang harus diambil.
Risiko boleh dikendalikan dengan mengoptimumkan parameter, menggabungkan penunjuk lain untuk penjanaan isyarat, melaksanakan stop loss / mengambil keuntungan, dll.
Strategi ini mempunyai logik yang mudah dan jelas untuk menjana isyarat dengan silang MAs berganda. Ia membolehkan penyesuaian parameter yang fleksibel dan kombinasi dengan strategi lain untuk pengoptimuman, tetapi risiko pasaran yang berbeza harus dipantau dan pengurusan wang adalah penting. Secara keseluruhan ia adalah strategi yang patut dipertimbangkan.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 plot(ma, color = blue, linewidth = 3, transp = 0) trend = low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short)