Strategi ini menghasilkan sinyal perdagangan berdasarkan persilangan dua rata-rata bergerak dengan periode yang berbeda.
Strategi ini memungkinkan pengguna untuk memilih jenis dan panjang rata-rata bergerak. Jenis termasuk SMA, EMA, VWMA, dll. Panjang menentukan periode rata-rata bergerak.
Dua rata-rata bergerak dihitung berdasarkan pilihan pengguna. Jika garis yang lebih cepat melintasi di atas garis yang lebih lambat, sebuah salib emas terbentuk dan sinyal beli dihasilkan. Jika garis yang lebih cepat melintasi di bawah garis yang lebih lambat, sebuah salib kematian terbentuk dan sinyal jual dihasilkan.
Ketika harga rata-rata jangka pendek di atas harga rata-rata jangka panjang, itu dianggap sebagai tren naik dan posisi panjang harus diambil.
Risiko dapat dikelola dengan mengoptimalkan parameter, menggabungkan indikator lain untuk generasi sinyal, menerapkan stop loss/take profit, dll.
Strategi ini memiliki logika yang sederhana dan jelas untuk menghasilkan sinyal dengan crossover MAs ganda. Ini memungkinkan penyesuaian parameter yang fleksibel dan kombinasi dengan strategi lain untuk optimasi, tetapi risiko pasar yang berbeda harus dipantau dan manajemen uang sangat penting. Secara keseluruhan ini adalah strategi yang layak 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)