Estrategia de negociación para la inversión de los índices de variabilidad de las cotizaciones

El autor:¿ Qué pasa?, Fecha: 2023-11-14 16:49:02
Las etiquetas:

img

Resumen general

La estrategia de negociación de reversión del RSI es una estrategia de negociación cuantitativa que identifica las condiciones de sobrecompra y sobreventa utilizando el indicador del índice de fuerza relativa (RSI) y realiza operaciones largas o cortas en los puntos de reversión.

Estrategia lógica

La estrategia se basa en la siguiente lógica central:

  1. El RSI puede reflejar si el mercado actual está sobrecomprado o sobrevendido. El RSI mide el impulso relativo de la tendencia al alza versus a la baja calculando la relación entre los cambios promedio al alza y los cambios promedio a la baja durante un período de tiempo.

  2. Cuando el RSI entra en la zona de sobrecompra (generalmente considerado como RSI por encima de 70), indica un fuerte impulso alcista. Habrá más operadores que mantendrán posiciones alcistas durante mucho tiempo y el espacio para continuar al alza es limitado. El precio puede revertir a la baja para corregir la condición de sobrecompra.

  3. Cuando el RSI entra en la zona de sobreventa (generalmente por debajo de 30), indica un fuerte impulso a la baja. Habrá más operadores que mantendrán posiciones bajistas y el espacio para continuar a la baja es limitado. El precio puede revertir hacia arriba para corregir la condición de sobreventa.

  4. Por lo tanto, podemos establecer el umbral de sobrecompra del RSI en 90 y el umbral de sobreventa en 10. Ir corto cuando el RSI entra en la zona de sobrecompra y ir largo cuando el RSI entra en la zona de sobreventa para capturar reversiones.

Específicamente, la lógica de la estrategia es:

  1. Calcular el valor del indicador RSI, utilizando el precio de cierre como fuente del RSI, con una duración de 2 períodos.

  2. Cuando el RSI cruza por encima de 90, indica entrar en la zona de sobrecompra, corta.

  3. Establezca un stop loss para cada operación: stop largo al precio más bajo, stop corto al precio más alto.

  4. Si el RSI continúa en niveles más extremos de sobrecompra / sobreventa, ajuste el stop de seguimiento para dar más espacio.

  5. Considere tomar ganancias cuando el RSI vuelva a la zona neutral alrededor de 50.

  6. Si no hay reversión después de 3 barras, cierre la operación para evitar pérdidas ilimitadas.

Ventajas

La estrategia de reversión del RSI tiene las siguientes ventajas:

  1. El uso de RSI para identificar condiciones de sobrecompra / sobreventa puede capturar con eficacia los puntos de reversión del mercado.

  2. Las estrategias de reversión tienen la ventaja sistemática de seguir las tendencias.

  3. El mecanismo de stop loss controla efectivamente la pérdida en operaciones individuales.

  4. La parada de seguimiento puede ajustar de manera flexible la distancia de parada en función del movimiento continuo del precio, equilibrando entre mantener la parada activada y capturar más diferencia de precio.

  5. La salida forzada después de las barras fijas asegura que las operaciones sin reversión oportuna no conduzcan a pérdidas ilimitadas.

  6. Los parámetros de RSI ajustables pueden adaptar la estrategia a diferentes mercados.

Los riesgos

La estrategia también presenta los siguientes riesgos:

  1. Como estrategia de indicador técnico, el rendimiento de la reversión del RSI puede tener sesgo de ajuste de curva.

  2. Aunque el RSI puede identificar condiciones de sobrecompra/sobreventa, no puede predecir el momento exacto de la reversión.

  3. Los niveles de sobrecompra/sobreventa del RSI pueden no estar establecidos razonablemente.

  4. Probabilidad de que el precio haga otra reversión antes de alcanzar el take profit.

  5. La distancia de pérdida de parada establecida de manera irrazonablemente apretada o demasiado floja puede hacer que las paradas sean ineficaces.

  6. Las comisiones comerciales también pueden afectar la rentabilidad de la estrategia.

Mejoras

La estrategia puede mejorarse de las siguientes maneras:

  1. Los indicadores de rendimiento de los mercados de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas de divisas.

  2. Añadir más filtros para evitar falsas señales de reversión, como combinar con el MACD, etc. para aumentar la probabilidad.

  3. Optimizar la estrategia de stop loss, por ejemplo, paradas basadas en ATR, distancias ajustadas a la volatilidad.

  4. Optimizar la estrategia de tomar ganancias, como moverse a tomar ganancias, arrastrando más diferencia de precios.

  5. Añadir modelos de aprendizaje automático para ayudar a juzgar las reversiones y mejorar la tasa de éxito.

  6. Prueba de estrategias en diferentes mercados e instrumentos para encontrar los mejores parámetros para el comercio real.

  7. Combina con el volumen de negociación, sólo considera las señales de reversión cuando el volumen aumenta.

Conclusión

En conclusión, la estrategia de reversión del RSI aprovecha la fortaleza del RSI para identificar las condiciones de mercado sobrecompradas y sobrevendidas y las operaciones en los puntos de reversión, proporcionando rendimientos sistemáticos decentes. Pero también tiene riesgos que deben abordarse a través de parámetros del RSI y optimización de stop / take profit, y filtrado con otros indicadores. Si se ejecuta correctamente, la reversión del RSI puede formar un componente efectivo en un sistema de negociación cuantitativa.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)

//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission  value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size



strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red


plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)


// long = rsi <= 10 
// var float longsl = 0
// var int long_ts_points = 0

// if long
//     longsl:= low
//     long_ts_points := 200
    
// if rsi >= 70
//     long_ts_points := 100
// else if rsi >= 80
//     long_ts_points := 80


// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
//     strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3  and not long)


short = rsi >= 90 
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0

if short
    shortsl:= high
    short_ts_points := 200
    
if rsi <= 30
    short_ts_points := 100
    //stClose :=1
else if rsi <= 20
    short_ts_points := 80 
//else
    //stClose := 0

plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
    strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)


//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3  and not short)










Más.