Strategi ini mengidentifikasi dan mengikuti tren dengan membangun Saluran Harga untuk menghitung penyimpangan harga dari garis tengah dan menggunakan rata-rata bergerak untuk menyaring sinyal.
Strategi ini secara keseluruhan cukup kuat dalam melacak tren jangka menengah hingga panjang secara efektif sambil menghasilkan sinyal perdagangan melalui trend breakout. Perbaikan lebih lanjut dapat dilakukan melalui optimasi parameter dan penyaringan sinyal untuk menyesuaikan strategi dengan lebih banyak produk dan lingkungan pasar.
/*backtest start: 2023-01-30 00:00:00 end: 2024-02-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.1", shorttitle = "NoroBands str 1.1", overlay=true) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, "Color") needbb = input(true, defval = false, title = "Show Bands") needbg = input(true, defval = false, title = "Show Background") src = close //PriceChannel 1 lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 90) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 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)