
Strategi ini dirancang berdasarkan prinsip pelacakan tren saluran dinamis dan garis rata. Ini menghitung saluran dinamis harga, menilai arah tren harga melalui jalur naik dan turun, digabungkan dengan dispersi harga filter garis rata, menghasilkan sinyal perdagangan. Strategi ini berlaku untuk perdagangan tren garis pendek tengah.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Perhitungan saluran harga dinamis. Garis tengah saluran dihitung melalui harga tertinggi dan terendah. Garis atas saluran adalah garis tengah + garis rata-rata dispersi harga, dan garis bawah saluran adalah garis tengah - garis rata-rata dispersi harga.
Menentukan arah tren. Ini didefinisikan sebagai bullish ketika harga naik ke atas dan turun ketika harga turun ke bawah.
Hujan gelombang. Hujan yang disebabkan oleh fluktuasi acak harga gelombang dengan menggunakan rata-rata tingkat dispersi harga untuk periode tertentu.
menghasilkan sinyal perdagangan. Ketika bullish, menghasilkan sinyal beli ketika harga penutupan siklusnya lebih rendah dari harga pembukaan; ketika bearish, menghasilkan sinyal jual ketika harga penutupan siklusnya lebih tinggi dari harga pembukaan.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki risiko sebagai berikut:
Solusi yang sesuai:
Strategi ini dapat dioptimalkan dengan:
Strategi ini mengintegrasikan ide-ide dari saluran dinamis dan penilaian tren linier, yang bekerja dengan baik dalam menangkap arah tren di garis tengah dan pendek. Namun, ada juga keterbatasan tertentu yang memerlukan pengujian lebih lanjut dan pengoptimalan untuk menyesuaikan lebih banyak situasi pasar.
/*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)