Strategi Perdagangan Kuantitatif RSI dan Bollinger Bands


Tanggal Pembuatan: 2024-01-08 10:16:22 Akhirnya memodifikasi: 2024-01-08 10:16:22
menyalin: 0 Jumlah klik: 704
1
fokus pada
1617
Pengikut

Strategi Perdagangan Kuantitatif RSI dan Bollinger Bands

Ringkasan

Strategi ini mengidentifikasi peluang perdagangan dengan kombinasi indikator yang relatif kuat ((RSI) dan Bollinger Bands. Strategi ini adalah strategi reset rata-rata dalam perdagangan kuantitatif. Beli ketika RSI berada di bawah titik terendah yang ditetapkan.

Prinsip Strategi

  1. Menggunakan indikator RSI untuk menentukan apakah pasar berada dalam kondisi oversold. RSI di bawah 30 dianggap sebagai sinyal oversold.

  2. Menggunakan saluran Brinline untuk menentukan apakah harga mulai berbalik naik. Bila harga berbalik dari Brinline ke bawah dan melintasi Brinline ke tengah, multirute berakhir.

  3. Kombinasi sinyal RSI oversell dan sinyal Bollinger Loop dapat diatur untuk membeli titik. Beli ketika kedua sinyal dipicu secara bersamaan, menunggu harga melintasi Bollinger Loop dan melakukan penutupan posisi.

Analisis Keunggulan

  1. Strategi ini menggabungkan RSI dengan Brinline untuk menentukan waktu yang tepat untuk membeli.

  2. Indikator RSI dapat memfilter banyak kasus false breakout dan mengurangi perdagangan yang tidak perlu.

  3. Brinline channel berfungsi sebagai indikator stop loss untuk mengontrol risiko transaksi tunggal.

Analisis risiko

  1. Indikator RSI dapat mengirimkan sinyal yang salah, yang menyebabkan kehilangan kesempatan untuk membeli.

  2. Setting yang tidak tepat pada parameter Brinline Channel dapat menyebabkan stop loss yang terlalu longgar atau terlalu ketat.

  3. Pilihan jenis perdagangan yang tidak tepat, seperti risiko likuiditas yang lebih besar ketika berdagang saham dengan nilai pasar kecil.

Arah optimasi

  1. Kombinasi parameter yang berbeda dapat diuji, seperti siklus RSI, siklus jalur Brinell dan kelipatan, untuk mencari parameter yang optimal.

  2. Indikator lain seperti KD, MACD, dan lain-lain dapat dikombinasikan dengan kondisi pembelian yang lebih ketat untuk memfilter sinyal.

  3. Stop loss dapat diatur berdasarkan jenis perdagangan yang berbeda, seperti stop loss volatilitas.

Meringkaskan

Strategi ini pertama-tama menggunakan RSI rendah untuk membeli dan kemudian menggunakan Bollinger Bands High Stop Loss. Strategi ini adalah strategi perdagangan dengan nilai rata-rata. Strategi ini dapat lebih akurat menentukan posisi untuk membeli dan menjual poin, sehingga mendapatkan efek strategi yang lebih baik. Langkah selanjutnya dapat lebih disempurnakan dengan sinyal optimasi parameter, penyaringan, dan strategi stop loss.

Kode 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()