Bollinger Bands + RSI Double Long Strategy
Strategi ini menggabungkan penunjuk Bollinger Bands dan penunjuk RSI untuk pergi lama apabila kedua-duanya menunjukkan isyarat oversold, dan untuk menutup kedudukan panjang apabila kedua-duanya menunjukkan isyarat overbought.
Strategi ini menggabungkan kekuatan Bollinger Bands dan penunjuk RSI untuk berdagang apabila kedua-duanya menunjukkan ekstrem. Ini mengelakkan isyarat palsu dari satu indikator dan meningkatkan ketepatan isyarat. Berbanding dengan versi sebelumnya, hanya menubuhkan kedudukan panjang mengurangkan risiko perdagangan. Pengoptimuman masa depan boleh dilakukan melalui penyesuaian parameter, mekanisme stop loss, menggabungkan dengan penunjuk trend dan lain-lain untuk menjadikan strategi dapat disesuaikan dengan persekitaran pasaran yang berbeza.
/*backtest start: 2023-11-30 00:00:00 end: 2023-12-07 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Bollinger + RSI, Double Strategy Long-Only (by ChartArt) v1.2", shorttitle="CA_-_RSI_Bol_Strat_1.2", overlay=true) // ChartArt's RSI + Bollinger Bands, Double Strategy UPDATE: Long-Only // // Version 1.2 // Idea by ChartArt on October 4, 2017. // // This strategy uses the RSI indicator // together with the Bollinger Bands // to buy when the price is below the // lower Bollinger Band (and to close the // long trade when this value is above // the upper Bollinger band). // // This simple strategy only longs when // both the RSI and the Bollinger Bands // indicators are at the same time in // a oversold condition. // // In this new version 1.2 the strategy was // simplified by going long-only, which made // it more successful in backtesting. // // List of my work: // https://www.tradingview.com/u/ChartArt/ // // __ __ ___ __ ___ // / ` |__| /\ |__) | /\ |__) | // \__, | | /~~\ | \ | /~~\ | \ | // // ///////////// RSI RSIlength = input(6,title="RSI Period Length") RSIoverSold = 50 RSIoverBought = 50 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(200, minval=1,title="Bollinger Period Length") BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") 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 long = (crossover(vrsi, RSIoverSold) and crossover(source, BBlower)) close_long = (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper)) if (not na(vrsi)) if long strategy.entry("RSI_BB", strategy.long, stop=BBlower, comment="RSI_BB") else strategy.cancel(id="RSI_BB") if close_long strategy.close("RSI_BB") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)