
Strategi ini didasarkan pada konsep Brinband, yang mengatur jalur atas dan bawah dari saluran harga, dan dengan demikian melakukan penilaian tren dan menghasilkan sinyal perdagangan. Secara khusus, adalah menghitung rata-rata deviasi mutlak harga sebagai jalur bandwidth, jalur tengah sebagai rata-rata bergerak sederhana dari harga, jalur atas dan bawah ditambah 1 atau 2 kali lipat jalur bandwidth untuk jalur tengah masing-masing.
Strategi ini mencakup beberapa poin utama:
Perhitungan garis tengah harga, yaitu rata-rata bergerak sederhana harga.
Perhitungan rata-rata bergerak sederhana dari deviasi mutlak harga sebagai bandwidth saluran.
Berdasarkan lintasan tengah dan bandwidth, lintasan atas dan bawah ditentukan. lintasan atas adalah lintasan tengah ditambah 1 atau 2 kali lipat bandwidth, lintasan bawah adalah lintasan tengah dikurangi 1 atau 2 kali lipat bandwidth.
Perhitungan indikator penilaian tren overhead. Bila harga lebih tinggi dari track 2 maka overhead, bila harga lebih rendah dari track 2 maka overhead.
Menciptakan sinyal perdagangan. Jika harga naik ke arah 2, maka harga naik. Jika harga turun ke arah 2, maka harga turun.
Setting stop loss line △ Multiple stop loss line adalah di bawah rel 1, dan kosong single stop loss line adalah di atas rel 1 △
Perhitungan posisi sesuai dengan persyaratan manajemen dana.
Strategi ini menggabungkan pemikiran tentang menilai tren rata-rata bergerak, menilai overbought dan oversold, dan membalikkannya. Dengan perbedaan dua jalur untuk menilai tren yang kuat dan lemah, sementara memainkan fungsi Brin yang kembali ke sumbu tengah, secara keseluruhan membentuk sistem perdagangan yang lebih stabil.
Strategi ini memiliki beberapa keuntungan utama:
Dengan menggunakan sistem dual track, kita bisa lebih baik menilai kekuatan dan kelemahan tren.
Brin memiliki fungsi regresi yang kuat, yang dapat secara efektif mencegah penembusan palsu.
Perbedaan dua jalur berkolaborasi dengan sumbu tengah regresi Brin, membentuk sinyal perdagangan yang lebih stabil.
Ada logika Exit Stop Loss yang jelas untuk mengendalikan risiko.
Posisi diatur sesuai dengan persyaratan manajemen dana untuk menghindari superleverage.
Strategi yang jelas, mudah dipahami dan dioptimalkan.
Parameter yang dapat diatur secara fleksibel, sesuai dengan optimasi pasar yang berbeda.
Strategi ini juga memiliki beberapa risiko:
Tidak tepatnya pengaturan parameter Brin Belt dapat menyebabkan efek Sungai Pager dan tidak dapat secara efektif melacak harga.
Perbedaan dua jalur tidak sepenuhnya menghindari kesalahan penilaian tren.
Di pasar yang bergejolak, mungkin akan lebih banyak sinyal yang tidak efektif.
“Kematian akibat penembusan palsu”.
Ada keterlambatan waktu tertentu, mungkin kehilangan titik konversi siklus.
Keuntungan dan kerugian lebih terbatas dari pada titik stop loss, sehingga tidak mungkin untuk melacak tren tanpa batas.
Langkah-langkah manajemen risiko yang sesuai:
Optimalkan parameter agar Burin dapat beradaptasi dengan siklus yang berbeda.
Periksa kombinasi indikator lainnya untuk menghindari kesalahan penilaian.
Menurunkan Posisi dan Mengontrol Kerugian
Mengoptimalkan Stop Loss, Menjamin Rasio Keuntungan
Siklus yang tepat untuk mengurangi keterlambatan.
Angin harus stabil, tidak bisa terus menerus mengejar dan membunuh.
Strategi ini dapat dioptimalkan dari beberapa arah:
Optimalkan parameter Brin-band agar dapat lebih baik melacak harga. Parameter adaptasi dapat diperkenalkan.
Cobalah berbagai jenis moving average, seperti EMA, DWMA, dll.
Menambahkan filter tren untuk menghindari kesalahan perdagangan di pasar yang bergoyang.
Tambahkan Exit yang lebih agresif untuk mendapatkan lebih banyak keuntungan tren. Anda dapat mempertimbangkan stop loss kecil, stop loss bergerak, indikator exit, dll.
Memperkenalkan beberapa siklus waktu untuk kombinasi, siklus yang berbeda sesuai dengan situasi pasar yang berbeda.
Menambahkan logika kondisional tambahan, seperti lonjakan volume transaksi, untuk menghindari false breaks.
Anda dapat mempertimbangkan untuk membalikkan Brin Belt, menjual di atas rel, dan membeli di bawah rel.
Melakukan pengujian optimasi parameter untuk mencari kombinasi parameter optimal.
Strategi ini memiliki ide yang jelas dan memiliki stabilitas yang kuat. Pada saat yang sama, ada ruang untuk perbaikan, dan dapat menjadi strategi perdagangan kuantitatif yang sangat praktis melalui optimasi parameter, optimasi logika, dan manajemen risiko. Strategi ini memberikan referensi ide yang bagus untuk strategi awal perdagangan kuantitatif.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © noro
//@version=4
strategy(title = "Noro's Bands Strategy", shorttitle = "Bands", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)
//Sattings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(20, defval = 20, minval = 1, maxval = 1000, title = "Length")
src = input(ohlc4, title = "Source")
showbb = input(true, title = "Show Bands")
showof = input(true, title = "Show Offset")
showbg = input(false, title = "Show Background")
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")
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2
//Trend
trend = 0
trend := high > hd2 ? 1 : low < ld2 ? -1 : trend[1]
bgcol = showbg == false ? na : trend == 1 ? color.lime : color.red
bgcolor(bgcol, transp = 70)
//Lines
colo = showbb == false ? na : color.black
offset = showof ? 1 : 0
plot(hd2, color = colo, linewidth = 1, transp = 0, offset = offset, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, offset = offset, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, offset = offset, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, offset = offset, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, offset = offset, title = "Low band 2")
//Trading
size = strategy.position_size
needstop = needlong == false or needshort == false
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if distsma > 0
strategy.entry("Long", strategy.long, lot, stop = hd2, when = truetime and needlong)
strategy.entry("Short", strategy.short, lot, stop = ld2, when = truetime and needshort)
sl = size > 0 ? ld2 : size < 0 ? hd2 : na
if size > 0 and needstop
strategy.exit("Stop Long", "Long", stop = sl)
if size < 0 and needstop
strategy.exit("Stop Short", "Short", stop = sl)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("Long")
strategy.cancel("Short")