Strategi ini terutamanya menggunakan Indeks Kekuatan Relatif (RSI) digabungkan dengan Bollinger Bands untuk penilaian isyarat perdagangan. Khususnya, ia pergi lama apabila RSI melintasi di atas tahap oversold dan di bawah Bollinger Band bawah, dan pergi pendek apabila RSI melintasi di bawah tahap overbought dan di atas Bollinger Band atas.
Strategi ini pertama kali mengira penunjuk RSI dan Bollinger Bands. Penunjuk RSI mencerminkan kekuatan relatif instrumen perdagangan. Apabila RSI berada di bawah zon oversold (default 30), ia bermakna instrumen itu oversold dan harus membeli. Bollinger Bands termasuk band atas, band tengah dan band bawah, yang mencerminkan julat turun naik harga dengan baik. Membeli berhampiran band bawah dan menjual berhampiran band atas boleh memberikan isyarat yang agak boleh dipercayai. Strategi ini menggabungkan penunjuk RSI dan Bollinger Bands untuk penilaian isyarat perdagangan. Ia menghasilkan isyarat beli apabila RSI naik dari zon oversold ke atasnya (default 30), dan harga naik dari band bawah ke atasnya; ia menghasilkan isyarat jual apabila RSI jatuh dari zon overbought ke bawahnya (default 70), dan harga turun dari band atas ke bawahnya.
Penyelesaian:
Strategi keseluruhan adalah kukuh, secara berkesan menggabungkan RSI dan Bollinger Bands untuk menghentikan kerugian. Penambahbaikan lanjut dapat dicapai dengan menguji dan mengoptimumkan parameter. Juga perlu menyedari potensi risiko kehilangan isyarat kerana peraturan yang ketat. Secara umum, ini adalah strategi perdagangan kuantitatif yang boleh dipercayai.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("BB + RSI 20MIN,", shorttitle="BBRSI 20MIN", overlay=true ) // Strategy Tester Start Time sYear = input(2019, title = "Start Year") sMonth = input(04, title = "Start Month", minval = 01, maxval = 12) sDay = input(01, title = "Start Day", minval = 01, maxval = 31) sHour = input(00, title = "Start Hour", minval = 00, maxval = 23) sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59) startTime = true ///////////// RSI RSIlength = input(9,title="RSI Period Length") RSIoverSold = input(30, minval=1,title="RSIL") RSIoverBought = input(69, minval=1,title="RSIh") price = open vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(60, minval=1,title="Bollinger Period Length") BBmult = input(2.0, minval=0.001, maxval=50,title="Bb") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = crossover(source, BBlower) sellEntry = crossunder(source, BBupper) plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line") p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line") p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line") fill(p1, p2) ///////////// Colors switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Background Color?") TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na barcolor(switch1?TrendColor:na) bgcolor(switch2?TrendColor:na,transp=50) ///////////// RSI + Bollinger Bands Strategy if (not na(vrsi)) if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower)) strategy.entry("RSI_BB_L", strategy.long and startTime, stop=BBlower, comment="RSI_BB_L") else strategy.cancel(id="RSI_BB_L") if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper)) strategy.entry("RSI_BB_S", strategy.short and startTime, stop=BBupper,comment="RSI_BB_S") else strategy.cancel(id="RSI_BB_S") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)