Penapis berbilang Strategi perdagangan jalur Bollinger


Tarikh penciptaan: 2024-01-17 15:12:57 Akhirnya diubah suai: 2024-01-17 15:12:57
Salin: 1 Bilangan klik: 592
1
fokus pada
1617
Pengikut

Penapis berbilang Strategi perdagangan jalur Bollinger

Gambaran keseluruhan

Strategi perdagangan Brin-band pilihan ganda adalah strategi perdagangan kuantitatif yang menggabungkan indikator Brin-band, indikator garis rata, indikator RSI, dan ciri grafik K-line untuk memfilterkan pelbagai syarat dan menghantar isyarat perdagangan apabila syarat dipenuhi. Ini adalah strategi pengesanan trend yang tipikal untuk mendapatkan keuntungan dengan menangkap pergerakan trend harga pada garis tengah dan panjang.

Prinsip Strategi

Pengiraan penunjuk

Strategi ini menggunakan tiga indikator utama, jalur Brin, garis purata dan RSI. Di antaranya, jalur tengah jalur Brin adalah garis purata bergerak sederhana n hari harga, jalur atas dan bawah adalah jalur tengah + 2 kali standard perbezaan dan jalur tengah - 2 kali standard perbezaan.

Isyarat dagangan

Strategi ini menghasilkan isyarat perdagangan berdasarkan tiga syarat utama:

(1) Brin membawa terobosan ke bawah & entiti garis K bertentangan. Apabila harga penutupan melintasi terobosan ke bawah, dan warna entiti garis K bertentangan dengan arah trend semasa, lakukan lebih banyak.

(2) Brin berehat & entiti garis K bertentangan. Apabila harga penutupan berada di bawah lintasan, dan warna entiti garis K bertentangan dengan arah trend semasa, buat kosong.

(3) Entiti K-line bertukar. Jika arah memegang kedudukan sama dengan warna entiti K-line bertukar, maka kedudukan kosong.

Di samping itu, strategi ini juga menyediakan syarat tambahan seperti penapis linear, penapis entiti K-line, penapis RSI untuk mengawal kemasukan secara ketat.

Analisis kelebihan

  • Kawalan ketat pelbagai keadaan untuk mengurangkan risiko penembusan palsu
  • Menggunakan trend-following untuk mengurangkan frekuensi transaksi
  • Indeks RSI membantu membuat keputusan untuk mengelakkan perangkap pembalikan

Analisis risiko

  • Setting parameter Brinband yang tidak betul boleh menyebabkan kurang isyarat
  • Kegagalan untuk menembusi mungkin menyebabkan kerugian yang lebih besar.
  • Frekuensi dagangan rendah, mungkin kehilangan sebahagian peluang dagangan

Risiko boleh dikurangkan dengan menyesuaikan parameter Brin, dan kawalan ketat terhadap stop loss.

Arah pengoptimuman

  • Anda boleh menguji prestasi strategi di bawah parameter yang berbeza untuk mencari parameter yang optimum
  • Algoritma pembelajaran mesin boleh dimasukkan untuk membolehkan strategi mengoptimumkan parameter secara automatik
  • Lebih banyak faktor dan penapis boleh ditambah untuk meningkatkan kestabilan strategi

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pengesanan trend garis tengah yang tipikal. Dengan penyaringan pelbagai syarat, mengawal masa masuk dan keluar dengan ketat, menggunakan kaedah perdagangan trend, anda dapat mengurangkan perdagangan yang tidak perlu, menangkap trend garis tengah pasaran. Strategi ini mempunyai ruang yang besar untuk pengoptimuman, dengan cara menyesuaikan parameter, menambahkan lebih banyak alat bantu dapat meningkatkan kestabilan dan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.4", shorttitle = "Bollinger str 1.4", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(1, defval = 1, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

usebf = input(true, defval = true, title = "Use body-filter")
usecf = input(true, defval = true, title = "Use color-filter")
userf = input(true, defval = true, title = "Use RSI-filter")

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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebf == false

//Color filter
bar = close > open ? 1 : close < open ? -1 : 0 
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
ursi = rsi > 70 or userf == false
drsi = rsi < 30 or userf == false

//Signals
up = close <= lower and rb and body and drsi and (close < strategy.position_avg_price or strategy.position_size == 0)
dn = close >= upper and gb and body and ursi and (close > strategy.position_avg_price or strategy.position_size == 0)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if  exit
    strategy.close_all()