Strategi ini direka berdasarkan prinsip saluran dinamik dan penjejakan trend purata bergerak. Ia mengira saluran harga dinamik, menilai arah trend melalui rel atas dan bawah saluran, dan menghasilkan isyarat perdagangan dengan menggabungkan purata bergerak untuk menapis turun naik harga. Strategi ini sesuai untuk perdagangan trend jangka sederhana dan pendek.
Prinsip utama strategi ini ialah:
Mengira saluran harga dinamik. Garis tengah saluran dikira dari harga tertinggi dan harga terendah. Rel atas adalah garis tengah + turun naik harga MA, dan rel bawah adalah garis tengah - turun naik harga MA.
Menghakimi arah trend. Apabila harga memecahkan melalui rel atas, ia ditakrifkan sebagai bullish. Apabila harga memecahkan melalui rel bawah, ia ditakrifkan sebagai bearish.
Gunakan MA turun naik harga tempoh tertentu untuk menapis bunyi bising dari turun naik harga rawak.
Menghasilkan isyarat perdagangan. Apabila bullish, isyarat beli dihasilkan apabila harga penutupan lebih rendah daripada harga terbuka dalam tempoh itu. Apabila bearish, isyarat jual dihasilkan apabila harga penutupan lebih tinggi daripada harga terbuka.
Kelebihan strategi ini ialah:
Risiko strategi ini ialah:
Penyelesaian:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Strategi ini mengintegrasikan idea penilaian trend saluran dinamik dan MA, dan berfungsi dengan baik dalam menangkap arah trend dalam jangka sederhana dan pendek.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //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(false, defval = false, title = "Show Bands") needbg = input(false, 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) //up = and trend == 1 ? 1 : 0 //dn = and trend == -1 ? 1 : 0 up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0 dn = close > ld and trend == -1 and (close > open or color == false) ? 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)