Esta estrategia se llama
La lógica central de esta estrategia se basa en la combinación de bandas de Bollinger e indicadores RSI.
En primer lugar, las bandas de Bollinger contienen tres líneas: línea media, línea superior y línea inferior. La línea media es la media móvil simple de n días, mientras que la línea superior y la línea inferior son k veces la desviación estándar por encima y por debajo de la línea media. Cuando el precio alcanza o toca la línea superior o inferior, indica que la acción está en estado de sobrecompra o sobreventa.
En esta estrategia, la duración del período de la línea media de Bollinger Bands es de 235 días, y el valor del parámetro k es 2. Genera señales de compra cuando el precio cae por debajo de la línea inferior de Bollinger o cruza por encima de la línea media, y genera señales de venta cuando el precio se eleva por encima de la línea superior de Bollinger.
En segundo lugar, el indicador RSI refleja el nivel de sobrecompra / sobreventa de una acción. RSI por encima de 70 sugiere el estado de sobrecompra, mientras que por debajo de 30 el estado de sobreventa.
En esta estrategia, las bandas de Bollinger y los indicadores RSI se utilizan juntos: las señales de compra se generan cuando el RSI rompe el nivel de sobreventa mientras el precio toca o cae por debajo de la línea inferior de Bollinger. Las señales de venta se generan cuando el RSI se rompe desde el nivel de sobrecompra mientras el precio sube por encima de la línea superior de Bollinger.
Esta estrategia tiene las siguientes ventajas:
También hay algunos riesgos asociados con esta estrategia:
Hay varias direcciones para optimizar aún más esta estrategia:
Esta es una estrategia de largo plazo particularmente adecuada para acciones altamente volátiles como el FNGU. Al combinar las bandas de Bollinger y el RSI, genera señales comerciales alrededor de los niveles de precios sobrecomprados / sobrevendidos, con el objetivo de capturar oportunidades de inversión de precios.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true) ///////////// RSI RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length RSIoverSold = 50 RSIoverBought = 50 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length BBmult = 2 BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev BBtarget38 = BBbasis + 0.38 * BBdev // Line at 38% of Bollinger Band width BBtarget50 = BBbasis + 0.50 * BBdev // Line at 50% of Bollinger Band width ///////////// EMA emaLength = input(20, title="EMA Period Length") ema = ema(close, emaLength) source = close buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band sellEntry = crossunder(source, BBupper) ///////////// Plotting plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line") plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line") plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line") plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width") // Line at 38% plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width") // Line at 50% plot(ema, color=color.orange, title="EMA") // Plot EMA ///////////// RSI + Bollinger Bands Strategy longCondition = crossover(vrsi, RSIoverSold) and buyEntry sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper close_long = close > BBbasis close_short = close < BBbasis if (not na(vrsi)) if longCondition strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy") else strategy.cancel(id="Buy") if close_long strategy.close("Buy") if (sellCondition) strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell") else strategy.cancel(id="Sell") if close_short strategy.close("Sell")