Strategi ini menggunakan dua indikator rata-rata bergerak untuk mengidentifikasi arah tren dan peluang panjang/pendek. rata-rata bergerak yang lebih lambat (garis biru) digunakan untuk menentukan arah tren keseluruhan, sementara rata-rata bergerak yang lebih cepat (garis merah) dikombinasikan dengan saluran harga digunakan untuk menemukan peluang perdagangan.
Hitung dua rata-rata bergerak - MA yang lebih lambat dengan periode 21 untuk menentukan tren keseluruhan, dan MA yang lebih cepat dengan periode 5 yang dikombinasikan dengan saluran harga untuk menemukan peluang perdagangan.
Periksa apakah harga saat ini menembus saluran harga yang terbentuk pada periode sebelumnya.
Hitung jumlah dan arah lilin baru-baru ini. Misalnya, beberapa lilin bearish berturut-turut dapat menandakan peluang panjang, sementara lilin bullish berturut-turut dapat menandakan peluang pendek. Jumlah lilin dapat dikonfigurasi melalui parameter Bars.
Kombinasi semua faktor di atas untuk menghasilkan sinyal panjang / pendek. Sinyal dipicu ketika pergerakan harga sejajar dengan arah tren MA yang lebih lambat, MA cepat atau saluran harga menghasilkan sinyal, dan kondisi pergerakan lilin cocok.
Sistem rata-rata bergerak ganda secara efektif melacak arah tren.
MA yang lebih cepat dan saluran harga yang dikombinasikan mendeteksi titik-titik awal untuk menangkap peluang perdagangan.
Juga mempertimbangkan arah candlestick dan menghitung untuk menghindari terjebak oleh pembalikan pasar.
Parameter MA yang dapat disesuaikan bekerja untuk produk dan kerangka waktu yang berbeda.
MAs ganda dapat menghasilkan sinyal palsu selama pasar sisi. dapat menambahkan osilator atau ATR untuk menghindari perdagangan pasar bergolak.
Masih berisiko terjebak dalam pergerakan pasar yang luar biasa.
Tidak mungkin untuk sepenuhnya menghindari pembalikan akan terus meningkatkan logika dan parameter untuk membuat strategi lebih kuat.
Tambahkan indikator pendukung seperti ADX, MACD untuk menghindari perdagangan yang salah di pasar yang bergolak.
Perhitungan stop loss dinamis, misalnya berdasarkan ATR dan preferensi risiko.
Optimasi parameter melalui pembelajaran mesin untuk kemampuan adaptif.
Parameter penyesuaian yang tepat berdasarkan karakteristik instrumen, misalnya periode yang lebih pendek untuk kripto.
Secara keseluruhan strategi ini bekerja dengan sangat baik dalam melacak tren pasar, dengan peluang terobosan tambahan. Dengan peningkatan yang tepat dapat dibuat menjadi strategi kuantitas berkualitas tinggi yang layak secara komersial. Kami akan terus meningkatkannya untuk memperdagangkan lebih banyak pasar secara stabil.
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs Strategy v1.9 Extreme", shorttitle = "Trend MAs str 1.9 extreme", 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?") needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)") src = useohlc4 == true ? ohlc4 : close //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 trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[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 up2 = high < center and high < center2 and bar == -1 ? 1 : 0 dn2 = low > center and low > center2 and bar == 1 ? 0 : 0 //Lines 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 or (up2 == 1 and needex == true) 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)