Strategi ini menggunakan penunjuk ribut yang dipertingkatkan untuk menentukan titik perubahan harga, melakukan lebih banyak apabila harga mendekati batas bawah ribut, dan menghentikan posisi ketika K-garis hijau muncul, bertujuan untuk menangkap peluang untuk bangkit di bawah ribut.
Hitung parameter basis dan dev untuk band riak biasa, dan had upper BB dan had lower BB
Hitung rata-rata SMA dan peratusan tertentu perpindahan dari SMA pada lintasan atas dan bawah (upex2 dan dnex2)
Hitung nilai purata upperBB,lowerBB,upex2,dnex2 dan hasilkan kurva upx3 dan dnex3
Ambil upex3 dengan nilai yang lebih besar di upper BB sebagai upex baru, dan dnex3 dengan nilai yang lebih kecil di lower BB sebagai dnex baru.
Apabila harga lebih rendah daripada dnex, masuk lebih banyak; apabila garis K berwarna hijau ((harga penutupan lebih besar daripada harga bukaan), tutup kedudukan.
Garis lonjakan yang dipertingkatkan meningkatkan kepekaan indikator Garis lonjakan asal, yang dapat menangkap peluang untuk membalikkan harga lebih awal.
Digabungkan dengan penapis isyarat K-line, mengelakkan gangguan yang kerap dalam penyusunan.
Retrospektif menunjukkan bahawa strategi ini stabil dalam keuntungan dari 2008-2018, dengan keluk pendapatan yang rata, dan penarikan balik maksimum kurang daripada 20%.
Parameter seperti penggunaan dana, masa dagangan, dan risiko boleh dikawal.
Tetapan parameter band tidak betul boleh menyebabkan frekuensi dagangan yang terlalu tinggi atau kehilangan peluang.
Tidak ada peluang untuk menjana keuntungan jika trend berbalik.
Isyarat penapisan K mungkin terlewat dan tidak dapat menghentikan permainan dalam masa yang tepat.
Data pengesanan hanya 10 tahun, perlu meluaskan jarak sampel untuk menguji ketahanan.
Tidak dapat menyesuaikan diri dengan lompatan besar atau jurang.
Uji kombinasi parameter yang berbeza untuk mengoptimumkan parameter pita gelombang.
Melakukan penyaringan dengan isyarat indikator lain untuk meningkatkan kadar perdagangan yang menguntungkan.
Bergabung dengan strategi shorting, pertimbangkan untuk shorting apabila harga melebihi paras atas.
Tetapkan syarat-syarat berhenti untuk mengawal kerugian tunggal.
Membangunkan program penyelarasan automatik untuk mengoptimumkan parameter mengikut perubahan pasaran.
Peraturan kemasukan yang dioptimumkan untuk ciri-ciri lompat udara dan jarak.
Memperluas jangka masa pengukuran semula, memeriksa parameter kelembapan.
Strategi ini menggunakan peningkatan ribut untuk menentukan titik-titik perubahan harga, melakukan lebih banyak di lokasi yang berdekatan dengan rel di bawah ribut, dan bekerjasama dengan isyarat penapisan K-line untuk berhenti cepat, pengukuran prestasi yang baik. Tetapi strategi ini hanya melakukan pelbagai arah, Optimization Julat sampel adalah terhad, parameter utama perlu dioptimumkan lebih lanjut, dan mungkin menghadapi risiko penurunan pendapatan apabila keadaan pasaran berubah. Langkah seterusnya memerlukan pengenalan pelbagai isyarat penapis untuk meningkatkan kadar perdagangan yang menguntungkan, meningkatkan peluang melakukan shorting, dan menggunakan kitaran pengesanan yang lebih lama untuk menguji kehandalan kombinasi parameter untuk meningkatkan kebolehpasaran dan kestabilan strategi.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Advanced Bollinger Bands Strategy v1.0", shorttitle = "ABB str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
p = input(20, "bars")
d = input(25, "percent")
showlines = input(true, defval = true, title = "Show Lines?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(close, p)
dev = mult * stdev(close, p)
source = close
upperBB = basis + dev
lowerBB = basis - dev
b1 = plot(basis, color=gray, linewidth=1)
p1 = plot(upperBB, color=aqua, linewidth=1)
p2 = plot(lowerBB, color=aqua, linewidth=1)
//SMAs
sma = sma(close, p)
upex2 = sma * ((100 + d) / 100)
dnex2 = sma * ((100 - d) / 100)
upex3 = (upex2 + upperBB) / 2
dnex3 = (dnex2 + lowerBB) / 2
upex = max(upperBB, upex3)
dnex = min(lowerBB, dnex3)
//exit = (high > sma and low < sma)
exit = close > open
//Lines
col = showlines ? blue : na
plot(upex, linewidth = 3, color = col, transp = 0)
plot(sma, linewidth = 3, color = col, transp = 0)
plot(dnex, linewidth = 3, color = col, transp = 0)
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[p]))
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex)
if exit
strategy.close_all()