Strategi Dagangan Kuantitatif RSI dan Bollinger Bands


Tarikh penciptaan: 2024-01-08 10:16:22 Akhirnya diubah suai: 2024-01-08 10:16:22
Salin: 0 Bilangan klik: 704
1
fokus pada
1617
Pengikut

Strategi Dagangan Kuantitatif RSI dan Bollinger Bands

Gambaran keseluruhan

Strategi ini mengenal pasti peluang perdagangan dengan menggabungkan indikator yang agak kuat ((RSI) dan saluran Brining, dan merupakan strategi pulangan rata-rata dalam perdagangan kuantitatif. Beli apabila RSI berada di bawah paras terendah yang ditetapkan, tanpa peluang melangkau ketika harga melintasi saluran Brining.

Prinsip Strategi

  1. Penggunaan RSI untuk menentukan sama ada pasaran berada dalam keadaan oversold. Apabila RSI di bawah 30, ia dianggap sebagai isyarat oversold.

  2. Menggunakan saluran garis Brin untuk menentukan sama ada harga mula berpatah balik ke atas. Apabila harga berpatah balik dari garis Brin ke bawah dan melintasi garis Brin ke tengah, lakukan pelbagai arah berakhir.

  3. Gabungan antara isyarat RSI oversell dan isyarat Bolling out loop, anda boleh menetapkan titik beli. Beli apabila kedua-dua isyarat mencetuskan pada masa yang sama, dan tunggu harga melintasi Bolling out loop.

Analisis kelebihan

  1. Strategi ini menggabungkan RSI dan Bolling Line untuk menentukan masa pembelian dengan lebih tepat.

  2. Indeks RSI boleh menyaring banyak penipuan palsu dan mengurangkan perdagangan yang tidak perlu.

  3. Saluran Brinline berfungsi sebagai penunjuk stop loss untuk mengawal risiko transaksi tunggal.

Analisis risiko

  1. Indeks RSI mungkin memberi isyarat yang salah, menyebabkan peluang pembelian yang terlewatkan.

  2. Tetapan parameter laluan binari yang tidak betul boleh menyebabkan stop loss terlalu longgar atau ketat.

  3. Pemilihan jenis perdagangan yang tidak tepat, seperti risiko kecairan yang lebih besar apabila berdagang saham dengan nilai pasaran kecil.

Arah pengoptimuman

  1. Anda boleh menguji kombinasi parameter yang berbeza, seperti kitaran RSI, kitaran laluan Brinell dan kelipatan, untuk mencari parameter yang optimum.

  2. Ia boleh digabungkan dengan penunjuk lain seperti KD, MACD, dan lain-lain untuk menetapkan syarat pembelian yang lebih ketat untuk menapis isyarat.

  3. Stop loss boleh ditetapkan mengikut jenis dagangan yang berbeza, seperti stop loss kadar turun naik.

ringkaskan

Strategi ini pertama menggunakan RSI rendah membeli, kemudian menggunakan Bollinger Bands tinggi berhenti kehilangan, adalah strategi perdagangan berbalik rata-rata. Berbanding dengan menggunakan RSI atau Bollinger Bands sebagai satu-satunya indikator, strategi ini boleh lebih tepat menentukan tempat membeli dan menjual tempat, sehingga mendapat kesan strategi yang lebih baik. Langkah seterusnya boleh diperbaiki dengan parameter mengoptimumkan isyarat, penapisan, strategi berhenti kehilangan dan sebagainya.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's BB + RSI Strategy v1.0", shorttitle = "BB+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
rsiuse = input(true, defval = true, title = "Use RSI")
bbuse = input(true, defval = true, title = "Use BB")
showbb = input(true, defval = true, title = "Show BB Overlay")
bbperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "BB period")
bbsource = input(ohlc4, title = "BB source")
bbmult = input(2, defval = 2, minval = 1, maxval = 100, title = "BB Mult")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 1000, title = "RSI period")
rsisource = input(close, title = "RSI source")
rsilimit = input(30, defval = 30, minval = 1, maxval = 49, title = "RSI Limit")
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")

//RSI
rsi = rsi(rsisource, rsiperiod)

//BB
basis = sma(bbsource, bbperiod)
dev = bbmult * stdev(bbsource, bbperiod)
upper = basis + dev
lower = basis - dev

//Overlay
col = showbb ? blue : na
plot(upper, color = col)
plot(basis, color = col)
plot(lower, color = col)

//Signals
up = (rsi < rsilimit or rsiuse == false) and (low < lower or bbuse == false)
cl = close > open

//Trading
lot = 0.0 
lot := strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, lot)
if cl
    strategy.entry("Close", strategy.short, 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()