Triple BB Bands Breakout con la estrategia RSI

El autor:¿ Qué pasa?, fecha: 2024-02-29 14:57:49
Las etiquetas:

img

Resumen general

Esta estrategia combina las bandas de Bollinger y los indicadores RSI para generar señales de negociación. Supervisa si los precios de cierre de tres velas rompen las bandas superiores o inferiores al mismo tiempo, y combina el indicador Vortex y el indicador RSI para confirmar las señales de negociación.

Principio de la estrategia

La estrategia se basa principalmente en los siguientes principios:

  1. Utilice bandas de Bollinger de 20 períodos, considere emitir señales de negociación cuando los precios rompan las bandas superiores o inferiores al cierre
  2. Se requieren tres candelabros para romper a través de la misma vez para evitar falsos breakouts
  3. Combinar el indicador Vortex, cuando se haya sobrecomprado fuertemente VIP>1.25, cuando se haya sobrevendido fuertemente VIM>1.25, filtrar las señales
  4. Combine el indicador RSI para determinar sobrecomprado y sobrevendido, considere ir corto cuando el RSI atraviesa 70, y considere ir largo cuando el RSI atraviesa 30
  5. Cuando se cumplen las condiciones anteriores, se generan señales largas y cortas

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Las bandas de triple BB filtran las fallas y aseguran la fiabilidad de las fallas
  2. El indicador Vortex evalúa la fortaleza del mercado y evita operaciones desfavorables en el mercado
  3. El indicador RSI evalúa el área de sobrecompra y sobreventa, combinado con el indicador de bandas de Bollinger para la entrada
  4. La combinación de múltiples indicadores permite evaluar de manera exhaustiva la situación del mercado y la fiabilidad de la señal es relativamente alta.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Indicador de bandas de Bollinger es muy sensible a los parámetros, longitud y multiplicador StdDev necesitan ser optimizados
  2. El indicador Vortex es también muy sensible al parámetro del ciclo, que necesita ser ajustado para diferentes mercados
  3. El indicador RSI es propenso a la divergencia y también puede perder tendencias
  4. Si hay desacuerdo en el juicio de los tres indicadores, será imposible entrar, perdiendo algunas oportunidades

Las medidas de control de riesgos incluyen:

  1. Optimizar los parámetros y utilizar los parámetros con la mayor tasa de ganancia en backtesting
  2. Combinar otros indicadores, como el filtrado del volumen de operaciones
  3. Relajar adecuadamente la lógica de juicio del indicador para evitar perder buenas oportunidades

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar la longitud y el multiplicador de StdDev de las bandas de Bollinger para encontrar los parámetros óptimos
  2. Optimizar el ciclo del indicador Vortex para que sea más adecuado para diferentes mercados
  3. Aumentar otros indicadores juicio, como el volumen de operaciones, el MACD, etc., para enriquecer las señales diversificadas
  4. Ajustar la lógica de evaluación del indicador para evitar la imposibilidad de introducir debido a la divergencia del indicador
  5. Aumentar la estrategia de stop loss para controlar la pérdida máxima por operación

Resumen de las actividades

Esta estrategia combina múltiples indicadores para el juicio. Al tiempo que garantiza la confiabilidad de la señal, también tiene algunos problemas. A través de la optimización de parámetros, fuentes de señal enriquecidas, lógica de juicio ajustada y stop loss, etc., la estabilidad y rentabilidad de la estrategia se pueden mejorar aún más. Proporciona una buena idea para el comercio cuantitativo.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noway0utstorm

//@version=5
strategy(title='RSI + BB  over 3 bar+--- vortex0.71.3  ', shorttitle='NoWaytruongphuthinh', format=format.price, precision=4,overlay = true)

length = input(20, title="Length")
mult = input(2.0, title="Multiplier")
source = close

basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)

upperBand = basis + dev
lowerBand = basis - dev

isClosedBar = ta.change(time("15"))

var bool closeAboveUpperBand = false
var bool closeBelowLowerBand = false


// Vortex Indicator Settings
period_ = input.int(14, title='Period', minval=2)

VMP = math.sum(math.abs(high - low[1]), period_)
VMM = math.sum(math.abs(low - high[1]), period_)
STR = math.sum(ta.atr(1), period_)
VIP = VMP / STR
VIM = VMM / STR

//
lengthrsi = input(14, title="RSI Length")
overboughtLevel = input(70, title="Overbought Level")
oversoldLevel = input(30, title="Oversold Level")

sourcersi = close
rsiValue = ta.rsi(sourcersi, lengthrsi)

shouldShort = rsiValue > overboughtLevel
shouldLong = rsiValue < oversoldLevel




if bool(isClosedBar[1]) and bool(isClosedBar[2]) and bool(isClosedBar[3])

    if close[1] > upperBand[1] and close[2] > upperBand[2] and close[3] > upperBand[3] and VIP > 1.25 and VIM < 0.7 and rsiValue > overboughtLevel
        strategy.entry("Short", strategy.short)
        closeAboveUpperBand := false  // Reset the condition when entering a new Short position
    if close[1] < lowerBand[1] and close[2] < lowerBand[2] and close[3] < lowerBand[3] and VIP < 0.7 and VIM > 1.25 and rsiValue < oversoldLevel
        strategy.entry("Long", strategy.long)
        closeBelowLowerBand := false  // Reset the condition when entering a new Long position



if strategy.position_size > 0  // Check if there is an open Long position
    closeAboveUpperBand := close > upperBand  // Update the condition based on close price
    if closeAboveUpperBand
        strategy.close("Long",disable_alert=true)  // Close the Long position if close price is above upper band

if strategy.position_size < 0  // Check if there is an open Short position
    closeBelowLowerBand := close < lowerBand  // Update the condition based on close price
    if closeBelowLowerBand
        strategy.close("Short",disable_alert=true)  // Close the Short position if close price is below lower band

// Plots
plot(basis, color=color.orange, title="Basis")
p1 = plot(upperBand, color=color.blue, title="Upper Band")
p2 = plot(lowerBand, color=color.blue, title="Lower Band")
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

Más.