Estrategia de negociación del RSI en el ciclo transversal

El autor:¿ Qué pasa?, Fecha: 2023-10-25 11:20:59
Las etiquetas:

img

Resumen general

Esta estrategia utiliza los principios de sobrecompra y sobreventa del indicador RSI y combina el RSI de varios ciclos para generar señales, realizando operaciones de ciclo cruzado. La estrategia juzga las señales de sobrecompra y sobreventa de acuerdo con los ajustes del ciclo del RSI, y utiliza la media móvil del RSI para filtrar para evitar señales incorrectas.

Estrategia lógica

La estrategia genera principalmente señales comerciales a través de los juicios de sobrecompra y sobreventa del indicador RSI. RSI significa Índice de Fuerza Relativa, su fórmula es: RSI = 100 - (100 / (1 + RS)), donde RS es la relación de las ganancias promedio de cierre sobre las pérdidas promedio de cierre durante un período. El índice RSI oscila entre 0 y 100, generalmente considerado como sobreventa por debajo de 30 y sobrecompra por encima de 70.

La estrategia establece un parámetro alto sobrecompra y un parámetro bajo sobreventa. Cuando el RSI es mayor que sobrecompra, se juzga como sobrecomprado. Cuando el RSI es menor que sobreventa, se juzga como sobrevendido. Los valores predeterminados de sobrecompra y sobreventa en la estrategia son 70 y 30 respectivamente.

Para generar señales de compra y venta, la estrategia utiliza la línea promedio móvil del indicador RSI para filtrar. Cuando el RSI cruza su línea promedio móvil, se genera la señal de compra Es_compra. Cuando el RSI cruza por debajo de su línea promedio móvil, se genera la señal de venta Es_venta. El parámetro promedio móvil periodos_media es predeterminado para 14 períodos.

Después de generar señales de compra y venta, la estrategia abre posiciones para operaciones largas o cortas. Además, la estrategia también establece stop loss y take profit en porcentaje para evitar pérdidas excesivas y bloquear las ganancias.

Ventajas de la estrategia

  1. Utilice el indicador RSI para juzgar las condiciones de sobrecompra y sobreventa, evitando perseguir máximos y vender mínimos.

  2. Aplicar la media móvil del indicador RSI para filtrar para evitar señales falsas.

  3. Combinar las configuraciones de varios ciclos del indicador RSI para generar señales comerciales más estables.

  4. Establecer mecanismos de stop loss y obtener ganancias para controlar eficazmente los riesgos.

  5. La lógica de la estrategia es simple y clara, fácil de entender y modificar.

  6. Parámetros personalizables, adaptables a diferentes productos y ciclos.

Riesgos de la estrategia

  1. El indicador RSI tiene un efecto de retraso, puede perder el mejor momento para la reversión de precios.

  2. La media móvil causa retrasos en las señales de negociación, incapaz de capturar las inversiones de tendencia a tiempo.

  3. Los parámetros fijos de sobrecompra y sobreventa no son lo suficientemente flexibles y deben ajustarse para diferentes ciclos y productos.

  4. La configuración incorrecta de stop loss y take profit puede dar lugar a pérdidas o pérdidas de ganancias.

  5. Las posiciones largas y cortas son sólo 1 lote, incapaces de utilizar plenamente los fondos para el comercio de diferencias.

Direcciones de optimización

  1. Combinar otros indicadores como MACD, KD para el juicio de la señal de negociación.

  2. Aplicar una media móvil adaptativa para rastrear las tendencias.

  3. Establecer parámetros dinámicos de sobrecompra y sobreventa, ajustar basado en la volatilidad del mercado.

  4. Optimizar los algoritmos de stop loss y take profit, como el stop loss posterior.

  5. Añadir un mecanismo de gestión de posiciones, ajustar dinámicamente las posiciones en función del tamaño del capital.

  6. Añadir filtrado de tendencias para evitar operaciones frecuentes en mercados de rango.

  7. Prueba posterior para optimizar los parámetros y seleccionar la combinación óptima de parámetros.

Resumen de las actividades

Esta estrategia se basa en los principios de sobrecompra y sobreventa del indicador RSI, utiliza promedios móviles para filtrar para generar señales comerciales, realizando el comercio típico de ciclos cruzados. La estrategia tiene una estructura lógica clara y configuraciones de parámetros, adaptables a diferentes productos y ciclos a través del ajuste de parámetros, lo que la convierte en una estrategia de trading de ciclos cruzados confiable y efectiva.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
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/
// © samuelkanneman

//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime         = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime           = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)

//////Proceso///////

mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)

Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)

comprado= strategy.position_size > 0
vendido = strategy.position_size < 0

//time to test 
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)


// long

if (not comprado and Es_compra and dateFilter  )
    // realizar long
    cantidad = strategy.equity/hlc3
    strategy.entry ("compra", strategy.long , cantidad)
    SL := close*(1-(StopLoss/100))
    TP := close*(1+(TakeProfit/100))
    
if close >= TP
    strategy.close ("compra" , comment="Salto TP")  

if (comprado and Es_venta  )
    strategy.close ("compra" , comment="Sobre Venta")

if close <= SL
    strategy.close ("compra" , comment="Salto SL")
    
// short

if (not vendido and Es_venta and dateFilter  )
    // realizar short
    cantidad = strategy.equity/hlc3
    strategy.entry ("venta", strategy.short , cantidad)
    SL := close*(1+(StopLoss/100))
    TP := close*(1-(TakeProfit/100))
    
if close <= TP
    strategy.close ("venta" , comment="Salto TP")  

if (vendido and Es_compra  )
    strategy.close ("venta" , comment="Sobre Compra")

if close >= SL
    strategy.close ("venta" , comment="Salto SL")

    

    
    
   ///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)

bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)


// 1d 70 22 5 4 3 15    6 meses
//1h 70 20 6 4 5 7      1 mese
//15m 70 20 5 4 4 7      1 semana


Más.