
Strategi ini dikenali sebagai strategi perdagangan kuantitatif Bollinger Bands, merupakan strategi perdagangan indeks dan saham berdasarkan peningkatan saluran Bollinger Bands. Strategi ini dapat memperoleh keuntungan dalam pasaran yang bergelora dengan menyesuaikan parameter Bollinger Bands untuk mengoptimumkan kedudukan panjang dan pendek pada masa yang sama.
Logik teras strategi ini adalah berdasarkan laluan Brin Belt. Brin Belt terdiri daripada lintasan tengah, lintasan atas, dan lintasan bawah, lintasan tengah adalah purata bergerak harga penutupan n hari, lintasan atas dan bawah adalah penyimpangan di bawah lintasan tengah. Apabila harga mendekati lintasan atas, mewakili pasaran mungkin terlalu panas, akan membentuk peluang kosong; apabila harga mendekati lintasan bawah, mewakili pasaran mungkin diremehkan, akan membentuk peluang berganda.
Strategi ini menggunakan dua pita Brin, pita Brin 1 digunakan untuk melakukan lebih banyak, dan pita Brin 2 digunakan untuk melakukan kosong. Parameter pita Brin 1 telah dioptimumkan, panjangnya 25 dan bias 2.9 kali; parameter pita Brin 2 juga telah dioptimumkan, panjangnya 36 dan bias 3.2 kali.
Berbanding dengan strategi Brin Belt tradisional, strategi ini mempunyai kelebihan berikut:
Ia membolehkan perdagangan dua hala pelbagai ruang. Ia juga boleh digunakan dalam senario dua hala, dan dapat menangkap peluang perdagangan di peringkat pasaran yang berbeza.
Parameter telah dioptimumkan. Kedua-dua set parameter Brin telah diuji dengan teliti, dan dapat menghantar isyarat perdagangan yang berkesan.
Risiko boleh dikawal. Menggunakan kaedah berhenti bergerak, risiko unilateral dapat dikawal dengan berkesan.
Strategi ini juga mempunyai risiko yang berpotensi:
Risiko kegagalan tali pinggang Brin. Apabila pasaran mengalami turun naik yang teruk, saluran tali pinggang Brin mungkin gagal.
Hentikan kerugian yang dilindungi oleh risiko. Hentikan kerugian bergerak mungkin dilindungi, yang akan meningkatkan kerugian. Hentikan kerugian boleh ditangguhkan dengan sewajarnya atau berhenti tepat pada masanya untuk mengelakkannya.
Risiko frekuensi dagangan yang terlalu tinggi. Tetapan parameter yang terlalu sensitif boleh menyebabkan perdagangan yang terlalu kerap dan meningkatkan kos perdagangan.
Strategi ini masih boleh dioptimumkan:
Gabungan dengan isyarat penapisan petunjuk lain, mengelakkan kesalahan perdagangan apabila Brin terputus.
Parameter penyesuaian dinamik untuk menjadikan Burin lebih sesuai dengan ciri-ciri pasaran yang berbeza-beza. Contohnya, penggunaan Burin yang menyesuaikan diri.
Mengoptimumkan kaedah berhenti, menggunakan berhenti yang dikesan atau berhenti bergerak indeks, dan sebagainya, untuk mengawal risiko dengan berkesan.
Menggabungkan algoritma pembelajaran mesin untuk mencapai pengoptimuman parameter secara automatik.
Strategi ini secara keseluruhannya adalah berdasarkan laluan tali pinggang ganda, dengan optimasi parameter, mencapai pengoptimuman perdagangan dua hala jangka panjang dan pendek. Berbanding dengan strategi tali pinggang tradisional, ia mempunyai kelebihan untuk melakukan banyak shorting dan kawalan risiko, sesuai untuk menangkap peluang di pelbagai peringkat pasaran, dan mempunyai nilai praktikal tertentu.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99
//@version=4
strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01)
source = close
length = input(25, minval=1, title="Length BB long")
mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long")
length2 = input(36, minval=1, title="Length BB short")
mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short")
basis = sma(source, length)
dev = mult * stdev(source, length)
dev2 = mult2 * stdev(source, length2)
upper = basis + dev2
lower = basis - dev
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)
longEntry=input(true)
shortEntry=input(true)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
tplong=input(0.065, step=0.005, title="Take profit % for long")
sllong=input(0.04, step=0.005, title="Stop loss % for long")
tpshort=input(0.025, step=0.005, title="Take profit % for short")
slshort=input(0.04, step=0.005, title="Stop loss % for short")
if(longEntry)
strategy.entry("long",1,c,when=buyEntry)
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort')
strategy.close("long",when=sellEntry)
if(shortEntry)
strategy.entry("short",0,c,when=sellEntry)
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
strategy.close("short",when=buyEntry)