Estrategia de avance de dos vías para el índice de rentabilidad

El autor:¿ Qué pasa?, Fecha: 2024-01-08 10:28:26
Las etiquetas:

img

Resumen general

La estrategia se llama RSI Dual-track Breakthrough Strategy. Utiliza las dos pistas del indicador RSI para el juicio para lograr el objetivo de comprar bajo y vender alto. Cuando el indicador RSI cae por debajo de la pista inferior establecida (default 40), se considera una señal de compra. En este momento, si RSI10 es menor que RSI14, confirma aún más la compra; cuando el indicador RSI se eleva por encima de la pista superior establecida (default 70), se considera una señal de venta. En este momento, si RSI10 es mayor que RSI14, confirma aún más la venta. La estrategia también establece los mecanismos de movimiento stop loss y take profit.

Principio de la estrategia

La lógica central de esta estrategia es utilizar las dos pistas del indicador RSI para el juicio. El indicador RSI generalmente se establece en 14 períodos, representando la fortaleza y debilidad de la acción en los últimos 14 días.

Cuando el RSI14 se rompe por debajo de la pista de 40, se cree que el precio de la acción ha roto el lado débil y puede haber una posibilidad de rebote de soporte. En este momento, si el RSI10 es menor que el RSI14, significa que la tendencia a corto plazo sigue bajando, lo que puede confirmar aún más la señal de venta.

Cuando el RSI14 rompe por encima de la pista de 70, se cree que el precio de la acción ha entrado en un área fuerte a corto plazo y puede haber una posibilidad de un ajuste de retroceso. En este momento, si el RSI10 es mayor que el RSI14, significa que la tendencia a corto plazo continúa hacia arriba, lo que puede confirmar aún más la señal de compra.

Por lo tanto, el juicio combinado de RSI14 y RSI10 constituye la lógica central de la estrategia de doble vía.

Ventajas de la estrategia

  1. El juicio combinado de indicadores RSI duales puede capturar las señales comerciales con mayor precisión
  2. La adopción de un mecanismo de stop loss móvil puede reducir la pérdida a tiempo y controlar la extracción máxima
  3. La configuración del mecanismo de salida de beneficios permite la salida cuando se alcanza el beneficio objetivo, evitando el retroceso de los beneficios

Riesgos de la estrategia

  1. El indicador RSI es propenso a generar señales falsas y las pérdidas no se pueden evitar por completo
  2. Si el punto de stop loss se establece demasiado cerca puede ser retirado pronto, si se establece demasiado alto es difícil controlar los riesgos
  3. En condiciones de mercado anormales como el gap, también puede conducir a pérdidas.

Para aprovechar plenamente esta estrategia, los parámetros del RSI se pueden ajustar adecuadamente, la posición de stop loss debe controlarse estrictamente, evitar operaciones demasiado frecuentes y buscar una rentabilidad constante.

Direcciones de optimización de la estrategia

  1. Considere la posibilidad de incorporar otros indicadores para la validación de combinaciones, como KDJ, MACD, etc.
  2. Establecer los parámetros de RSI respectivamente basados en las características de los diferentes productos
  3. Configurar la pérdida de parada dinámica basada en indicadores como ATR para ajustar la posición de parada oportunamente
  4. Optimiza los parámetros de RSI automáticamente mediante técnicas de aprendizaje automático

Resumen de las actividades

Esta estrategia hace un juicio basado en la idea de doble vía de RSI y filtra algunas señales ruidosas hasta cierto punto. Pero ninguna estrategia de indicador individual puede ser perfecta, el indicador RSI es propenso a engañar y debe ser visto con precaución. Esta estrategia incorpora mecanismos de stop loss móviles y take profit para controlar los riesgos, lo cual es esencial.


/*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


Más.