Strategi Pelacakan Tren Rata-rata Bergerak Ganda adalah strategi yang menggunakan kombinasi rata-rata bergerak cepat dan lambat untuk menentukan tren pasar, dan menghasilkan sinyal perdagangan ketika arah tren berubah.
Strategi Pelacakan Tren Rata-rata Bergerak Ganda menggunakan dua rata-rata bergerak - rata-rata bergerak cepat (5 periode) dan rata-rata bergerak lambat (21 periode). MA cepat digunakan untuk menghasilkan sinyal perdagangan sementara MA lambat digunakan untuk menentukan arah tren pasar. Ketika MA cepat melintasi di atas MA lambat, sinyal beli dihasilkan. Ketika MA cepat melintasi di bawah MA lambat, sinyal jual dihasilkan.
Strategi ini juga menggunakan indikator saluran harga untuk membantu menentukan tren. Saluran harga ditentukan oleh rata-rata bergerak dari harga tertinggi dan terendah. Ketika harga menembus saluran, itu menunjukkan pembalikan tren. Strategi ini menggunakan dua saluran harga dengan periode masing-masing 21 dan 5, yang sesuai dengan periode MA.
Saat menentukan sinyal beli dan jual, strategi ini mengharuskan lilin merah/hijau berturut-turut muncul (bisa disesuaikan pengguna) sebagai kondisi filter tambahan.
Singkatnya, logika untuk menentukan tren dalam strategi ini adalah:
Dengan menilai tren di seluruh kerangka waktu, kebisingan pasar dapat secara efektif disaring dan arah tren dikonfirmasi.
Strategi Pelacakan Tren Rata-rata Bergerak Ganda memiliki keuntungan berikut:
Kesimpulannya, strategi ini memiliki stabilitas yang relatif baik secara keseluruhan dan berkinerja baik di pasar dengan tren yang kuat.
Strategi Pelacakan Tren Rata-rata Bergerak Ganda juga memiliki beberapa risiko, terutama:
Langkah-langkah yang sesuai untuk mengurangi risiko meliputi:
Ada ruang untuk optimalisasi strategi lebih lanjut, terutama di arah seperti:
Arah optimalisasi ini dapat meningkatkan stabilitas, kemampuan beradaptasi dan tingkat kecerdasan strategi.
Sebagai kesimpulan, strategi Pelacakan Tren Rata-rata Bergerak Ganda adalah strategi yang relatif kuat mengikuti tren. Ini menggabungkan rata-rata bergerak dan saluran harga untuk menentukan arah dan kekuatan tren, menghasilkan sinyal perdagangan dengan MA cepat. Filter lilin tambahan juga membantu menghindari sinyal yang salah. Parameter yang dapat disesuaikan memungkinkan adaptasi dengan lingkungan pasar yang berbeda. Ada juga ruang yang cukup untuk optimasi lebih lanjut untuk membangun strategi perdagangan otomatis yang dapat diandalkan dan cerdas.
/*backtest start: 2023-12-24 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs Strategy v1.8", shorttitle = "Trend MAs str 1.8", 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") needstops = input(false, "stops") stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %") useohlc4 = input(false, defval = false, title = "Use OHLC4") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") needbg = input(false, defval = false, title = "Need trend Background?") needarr = input(false, defval = false, title = "Need entry arrows?") src = useohlc4 == true ? ohlc4 : close fastsma = ema(src, 5) //PriceChannel 1 lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //PriceChannel 2 lasthigh2 = highest(src, fastlen) lastlow2 = lowest(src, fastlen) center2 = (lasthigh2 + lastlow2) / 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 and low[1] > ma[1] and low[2] > ma[2] ? 1 : high < ma and high[1] < ma[1] ? -1 : trend[1] trend1 = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend1[1] trend2 = low > center2 and low[1] > center2[1] ? 1 : high < center2 and high[1] < center2[1] ? -1 : trend1[1] trend = trend1 == 1 and trend2 == 1 ? 1 : trend2 == -1 and trend2 == -1 ? -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 < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0 dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA") plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2") //Arrows plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0) plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0) //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 90) //Alerts alertcondition(up == 1, title='buy', message='Uptrend') alertcondition(dn == 1, title='sell', message='Downtrend') //Trading stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1] stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1] longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) strategy.exit("Stop Long", "Long", stop = stoplong) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na) strategy.exit("Stop Short", "Short", stop = stopshort)