
Strategi ini dicipta berdasarkan prinsip trend-tracking di saluran dinamik dan garis rata. Ia mengira saluran dinamik harga, menentukan arah trend harga melalui saluran naik dan turun, digabungkan dengan dispersi harga gelombang garis rata, menghasilkan isyarat perdagangan.
Strategi ini berdasarkan kepada prinsip-prinsip berikut:
Hitung saluran harga dinamik. Garis tengah saluran dikira melalui harga tertinggi dan terendah, saluran atas adalah garis tengah + garis purata harga yang tidak rata, saluran bawah adalah garis tengah - garis purata harga yang tidak rata.
Menentukan arah trend. Ditetapkan sebagai bullish apabila harga naik ke atas dan turun apabila harga turun ke bawah.
Suara gelombang serpihan. Suara yang dihasilkan oleh turun naik harga serpihan secara rawak menggunakan purata harga serpihan untuk tempoh tertentu.
Menjana isyarat perdagangan. Apabila bullish, menghasilkan isyarat beli apabila harga penutupan kitaran lebih rendah daripada harga pembukaan; apabila bearish, menghasilkan isyarat jual apabila harga penutupan kitaran lebih tinggi daripada harga pembukaan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai risiko:
Penyelesaian:
Strategi ini boleh dioptimumkan dengan:
Strategi ini mengintegrasikan idea-idea yang dinamika saluran dan penilaian trend linear, yang berfungsi dengan baik dalam menangkap arah trend dalam garis pendek dan tengah. Tetapi terdapat juga batasan tertentu, yang memerlukan ujian lanjut dan pengoptimuman untuk menyesuaikan diri dengan lebih banyak keadaan pasaran.
/*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)