Estrategia de ruptura de doble vía basada en el indicador RSI


Fecha de creación: 2024-01-08 10:28:26 Última modificación: 2024-01-08 10:28:26
Copiar: 1 Número de Visitas: 634
1
Seguir
1617
Seguidores

Estrategia de ruptura de doble vía basada en el indicador RSI

Descripción general

Esta estrategia se llama estrategia de ruptura de dos vías basada en el indicador RSI. Utiliza la combinación de dos vías del indicador RSI para juzgar y alcanzar un precio bajo. Se considera una señal de compra cuando el indicador RSI está por debajo de la línea baja establecida (default 40) y se confirma la compra si el RSI10 es menor que el RSI14 y se considera una señal de venta cuando el indicador RSI está por encima de la línea alta establecida (default 70) y se confirma la venta si el RSI10 es superior al RSI14.

Principio de estrategia

La lógica central de esta estrategia es usar el doble rango del indicador RSI para juzgar. El indicador RSI generalmente se configura con 14 ciclos, lo que representa la fortaleza o debilidad de las acciones en los últimos 14 días. Esta estrategia agrega el RSI10 como indicador de juicio auxiliar.

Cuando el RSI 14 rompe la órbita de 40, se considera que el precio de las acciones cae por debajo de la debilidad, y es posible que se forme una oportunidad de rebote de soporte. En este momento, si el RSI 10 es menor que el RSI 14, lo que indica que la tendencia a corto plazo sigue a la baja, se puede confirmar aún más la señal bajista.

Cuando el RSI 14 rompe la órbita de 70, se considera que el precio de las acciones entra en la zona de fuerza a corto plazo, y es posible que haya una oportunidad de reajuste hacia atrás. En este momento, si el RSI 10 es mayor que el RSI 14, lo que indica que la tendencia a corto plazo continúa hacia arriba, se puede confirmar aún más la señal bajista. Por lo tanto, se produce una señal de venta cuando se cumple el RSI 14 > = 70 y el RSI 10 > el RSI 14.

Así, la combinación de los RSI14 y RSI10 constituye la lógica central de la estrategia de dos vías.

Ventajas estratégicas

  1. El uso de una combinación de dos indicadores RSI permite una captura más precisa de las posiciones de compra y venta
  2. El mecanismo móvil de parada de pérdidas permite detener los pérdidas a tiempo y controlar las pérdidas máximas.
  3. Configuración de un mecanismo de salida de suspensión, que puede retirarse cuando se alcanza el objetivo de ganancias, para evitar la devolución de ganancias

Riesgo estratégico

  1. Los indicadores RSI son propensos a generar falsas señales y no pueden evitar las pérdidas por completo
  2. Si el punto de parada se establece demasiado cerca, puede que se produzca un segundo de salida, y si se establece demasiado cerca, el riesgo puede ser difícil de controlar.
  3. Si se produce una anomalía, como un salto rápido en el aire, también se producen pérdidas.

Para aprovechar al máximo esta estrategia, se pueden ajustar adecuadamente los parámetros del RSI, controlar estrictamente las posiciones de stop loss, evitar operaciones demasiado densas y buscar una rentabilidad estable y duradera.

Dirección de optimización de la estrategia

  1. Se puede considerar la combinación con otros indicadores, como KDJ, MACD, etc., para lograr la verificación de múltiples indicadores
  2. Se pueden configurar los parámetros de RSI para diferentes variedades para que los parámetros se acerquen más a las características de la variedad
  3. Se puede configurar un stop loss dinámico para ajustar el stop loss en tiempo real en función de indicadores como el ATR
  4. Los parámetros RSI se pueden optimizar automáticamente mediante técnicas de aprendizaje automático

Resumir

Esta estrategia se basa en el pensamiento de dos vías del RSI para juzgar, y en cierta medida filtra parte de la señal de ruido. Sin embargo, ninguna estrategia de indicador individual puede ser perfecta, el RSI es susceptible a ser engañosa, y debe ser vista con precaución.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji

//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)

backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry 
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
    trail_profit_line_color := color.black
    stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)

if true// and time <= backtest_timeframe_end
    buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
    exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
    //ENTRY:
    if strategy.position_size == 0 and buy_condition
        entry_price := close
        trailing_SL_buffer := ATR_buffer
        stop_loss_price := close - ATR_buffer
        strategy.entry("Long",strategy.long, comment="buy")
        bar_count := 0
    else if strategy.position_size > 0
        bar_count := bar_count + 1

    //EXIT: 
    // Case (A) hits trailing stop
    if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
        if close > entry_price
            strategy.close("Long", comment="take profit [trailing]")
            stop_loss_price := 0
        else if close <= entry_price and bar_count
            strategy.close("Long", comment="stop loss")
            stop_loss_price := 0
        bar_count := 0
    // Case (B) take targeted profit relative to risk 
    if strategy.position_size > 0 and TARGET_PROFIT_MODE
        if take_profit_long
            strategy.close("Long", comment="take profits [risk:reward]")
            stop_loss_price := 0
        bar_count := 0
    // Case (C)
    if strategy.position_size > 0 and exit_condition
        if take_profit_long
            strategy.close("Long", comment="exit[rsi]")
            stop_loss_price := 0
        bar_count := 0