Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan Bollinger Bands untuk mengenal pasti peluang perdagangan, yang tergolong dalam strategi pembalikan purata dalam perdagangan kuantitatif. Ia membeli apabila RSI berada di bawah ambang dan menutup kedudukan apabila harga melanggar di atas jalur tengah Bollinger Bands. Tidak ada peluang pendek.
Gunakan penunjuk RSI untuk menilai sama ada pasaran terlalu laris. RSI di bawah 30 dianggap isyarat terlalu laris.
Gunakan Bollinger Bands untuk menentukan sama ada harga mula melonjak ke atas. Apabila harga melonjak dari band bawah dan pecah di atas band tengah, arah panjang berakhir.
Gabungkan isyarat oversold RSI dan isyarat breakout Bollinger Bands untuk menetapkan titik masuk beli. Beli apabila kedua-dua isyarat mencetuskan dan tutup kedudukan apabila harga memecahkan di atas jalur tengah untuk mengambil keuntungan.
Strategi ini menggabungkan penunjuk pembalikan rata-rata RSI dan penunjuk saluran Bollinger Bands untuk mencari titik masuk dengan lebih tepat.
Penunjuk RSI boleh menapis banyak kegagalan palsu dan mengurangkan perdagangan yang tidak perlu.
Bollinger Bands bertindak sebagai stop loss untuk mengawal risiko setiap perdagangan.
Indikator RSI boleh memberikan isyarat yang salah, menyebabkan peluang membeli hilang.
Tetapan parameter Bollinger Band yang tidak betul boleh menyebabkan stop loss terlalu longgar atau ketat.
Memilih instrumen dagangan yang tidak betul, seperti dagangan stok cap kecil dengan risiko kecairan yang lebih tinggi.
Uji kombinasi parameter yang berbeza seperti tempoh RSI, tempoh Bollinger dan pengganda untuk mencari parameter yang optimum.
Menggabungkan penunjuk lain seperti KD, MACD untuk menetapkan syarat beli yang lebih ketat untuk menapis isyarat.
Tentukan stop loss berdasarkan turun naik untuk instrumen dagangan yang berbeza, seperti menggunakan stop loss turun naik.
Strategi ini menggunakan logik membeli pada tahap terendah RSI dan menjual pada tahap tertinggi Bollinger, yang tergolong dalam strategi pembalikan purata. Berbanding dengan menggunakan penunjuk tunggal seperti RSI atau Bollinger Bands, strategi ini dapat mencari titik masuk dan keluar dengan lebih tepat, dengan itu mencapai hasil yang lebih baik. Langkah seterusnya boleh ditingkatkan melalui pengoptimuman parameter, penapisan isyarat, strategi stop loss dll.
/*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()