Esta estrategia combina los indicadores VSTOP y RSI para ir largo cuando el RSI está sobrecomprado y ir corto cuando el RSI está sobrevendido, mientras que utiliza VSTOP para determinar la dirección de la tendencia y reducir las pérdidas a tiempo cuando la tendencia se invierte.
Calcule el valor del indicador RSI y establezca líneas de sobrecompra y sobreventa.
Calcule el VSTOP, que es una línea de stop loss basada en el rango de fluctuación de precios.
Calcular el indicador ATR y establecer el coeficiente ATR multiplicado
Registre el precio máximo y el precio mínimo
Según el estado de tendencia alcista is_uptrend, calcule la línea de stop loss actual: stop = is_uptrend? max - mult * ATR : min + mult * ATR
Actualizar la línea de stop loss: vstop1 = is_uptrend? max(vstop_prev, stop) : min(vstop_prev, stop)
Cuando ocurre la inversión de tendencia, restablecer la línea stop loss entrar
Cuando el RSI está sobrevendido, si el precio cruza por encima de VSTOP, corta; cuando el RSI está sobrecomprado, largo.
La combinación del indicador de tendencia y el indicador de sobrecompra/sobreventa ayuda a captar las oportunidades de reversión en los mercados de tendencia.
El uso de VSTOP para establecer el stop loss controla los riesgos de manera efectiva.
Los parámetros flexibles de RSI se pueden optimizar para diferentes productos.
VSTOP rastrea sistemáticamente las pérdidas de parada sin intervención manual.
Si el parámetro ATR se establece demasiado grande o demasiado pequeño, la línea de stop loss no tendría sentido.
En los mercados de rango limitado, el RSI puede desencadenar señales de negociación frecuentes, aumentando la frecuencia de negociación y el costo de deslizamiento.
La inversión fallida es el principal riesgo de esta estrategia. Los operadores deben observar la dirección de la tendencia en un marco de tiempo más largo para evitar el comercio contra tendencia. Los promedios móviles a largo plazo se pueden usar para determinar la tendencia.
Considere combinar otros indicadores para filtrar señales no válidas, por ejemplo, volumen, canal de Donchian, etc.
Optimizar los parámetros basados en los resultados de las pruebas de retroceso para encontrar la combinación óptima de parámetros.
Investigar cómo ajustar dinámicamente el coeficiente ATR para adaptarlo a diferentes entornos de mercado.
Explorar el cierre de la estrategia durante los períodos de alto riesgo.
Esta estrategia integra el juicio de tendencia y los niveles de sobrecompra / sobreventa para capturar oportunidades de reversión en los mercados de tendencia. VSTOP proporciona una gestión sistemática de stop loss para el control de riesgos. La estrategia se puede mejorar aún más a través de la optimización de parámetros y la combinación de otros indicadores.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Vstop and RSI", overlay=true) //RSI Section length = input(2, "RSI Period") overSold = input(30, "Oversold Level") overBought = input(70, "Overbought Level") price = close vrsi = rsi (price, length) //VSTOP Section vlength = input(2, "Vstop Length") mult = input(2, "Vstop Mult") atr_ = atr(vlength) max1=0.0 min1=0.0 is_uptrend_prev = false stop=0.0 vstop_prev=0.0 vstop1=0.0 is_uptrend=false is_trend_changed=false max_ = 0.0 min_ = 0.0 vstop=0.0 max1 := max(nz(max_[1]), close) min1 := min(nz(min_[1]), close) is_uptrend_prev := nz(is_uptrend[1], true) stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_ vstop_prev := nz(vstop[1]) vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend := close - vstop1 >= 0 is_trend_changed := is_uptrend != is_uptrend_prev max_ := is_trend_changed ? close : max1 min_ := is_trend_changed ? close : min1 vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1 plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2) if vrsi > overBought strategy.entry("Buy", strategy.long, comment="Buy") if vrsi < overSold and vstop > price strategy.entry("Sell", strategy.short, comment="Sell")