Las bandas de Bollinger + la doble estrategia larga del RSI
Esta estrategia combina el indicador Bollinger Bands y el indicador RSI para ir largo cuando ambos muestran una señal de sobreventa, y para cerrar la posición larga cuando ambos muestran una señal de sobrecompra.
Esta estrategia combina los puntos fuertes de las bandas de Bollinger y los indicadores RSI para operar cuando ambos muestran extremos. Esto evita señales falsas de un solo indicador y mejora la precisión de la señal. En comparación con las versiones anteriores, solo el establecimiento de posiciones largas reduce el riesgo comercial. Las optimizaciones futuras se pueden hacer a través de ajuste de parámetros, mecanismos de stop loss, combinación con indicadores de tendencia, etc. para hacer que la estrategia sea adaptable a diferentes entornos de mercado.
/*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)