Strategi Pengesanan Trend Purata Bergerak Berganda menggunakan gabungan purata bergerak cepat dan perlahan untuk menentukan arah trend, bersama dengan warna badan candlestick sebagai isyarat kemasukan.
Strategi ini menggunakan purata bergerak perlahan 20 tempoh untuk menentukan trend keseluruhan. Crossover ke atas menunjukkan trend menaik manakala crossover ke bawah menunjukkan trend menurun. MA pantas 5 tempoh berfungsi sebagai penapis kemasukan. Perdagangan hanya dicetuskan apabila harga memecahkan MA pantas. Di samping itu, warna badan lilin N baru-baru ini diperiksa. Isyarat panjang dicetuskan apabila warna badan berubah menjadi merah dalam trend menaik. Isyarat pendek dicetuskan apabila warna badan berubah menjadi hijau dalam trend menurun. Ini membantu mengelakkan pecah palsu.
Strategi ini mengkaji tindakan harga menggunakan tiga dimensi - trend, MA jangka pendek dan badan lilin, meningkatkan kebolehpercayaan isyarat. Isyarat dihasilkan hanya apabila ketiga-tiga sejajar, menapis beberapa bunyi bising.
Menggabungkan trend berikut dan pembalikan purata, dapat disesuaikan di seluruh persekitaran pasaran.
Ulasan pelbagai faktor isyarat sebelumnya meningkatkan kadar kemenangan dengan mengelakkan isyarat palsu.
Boleh dioptimumkan menggunakan panjang MA, warna lilin diperiksa dll.
Logik yang jelas, ringkas, mesra pemula.
Whipsaws semasa pasaran julat boleh membawa kepada kerugian / pengeluaran. Pertimbangkan had kerugian atau mengoptimumkan parameter MA.
Usahakan mengubah jumlah lilin yang diperiksa atau melumpuhkan pembalikan purata.
Ujian belakang yang meluas diperlukan untuk mengesahkan parameter dan prestasi.
Meneroka jenis MA lain seperti EMA, KAMA dan lain-lain.
Tambah peraturan saiz kedudukan e.g. kuantiti tetap atau berasaskan peratusan ekuiti.
Membina mekanisme stop loss. Pertimbangkan untuk keluar jika harga ditutup di bawah MA yang perlahan.
Ujian di pelbagai instrumen untuk mengesahkan kestabilan.
Strategi Dual MA mendapat keuntungan daripada perdagangan trend sambil mengekstrak alfa pembalikan purata dalam jangka masa yang lebih pendek. Prestasi dan potensi keuntungan dapat ditingkatkan lagi melalui pengoptimuman. Walaupun kesederhanaannya, ia membolehkan pemula memahami konsep utama sekitar menggabungkan trend dan pembalikan purata. Pengesahan komprehensif adalah mesti di seluruh instrumen dan parameter.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA") src = input(close, defval = close, title = "Source of Slow MA") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") fastsma = ema(src, fastlen) //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 //Trend 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 trend = low > ma ? 1 : high < ma ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Signals up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0 dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //Trading longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)