Estrategia de negociación de RSI extremo triple

El autor:¿ Qué pasa?, fecha: 2023-11-02 14:34:21
Las etiquetas:

img

Resumen general

Esta estrategia utiliza tres indicadores RSI con diferentes períodos para determinar si el mercado ha alcanzado niveles extremadamente sobrecomprados o sobrevendidos, y genera señales de compra y venta en consecuencia.

Estrategia lógica

La estrategia utiliza indicadores RSI de 2 períodos, 7 períodos y 14 períodos simultáneamente.

Específicamente, cuando el RSI de 2 períodos está por debajo de 10, el RSI de 7 períodos está por debajo de 20 y el RSI de 14 períodos está por debajo de 30, el mercado se considera sobreventa y se genera una señal de compra.

El código utiliza un parámetro de precisión para ajustar los valores de umbral de sobrecompra / sobreventa del RSI. El valor predeterminado es 3, y los valores más bajos significan criterios de sobrecompra / sobreventa más estrictos.

Cuando se genera una señal de compra o venta, si el precio se invierte y rompe el precio de apertura del día, la posición actual se cerrará para obtener ganancias o reducir pérdidas.

Análisis de ventajas

  • El uso de una combinación de indicadores RSI de varios períodos puede identificar con mayor precisión las condiciones de sobrecompra/sobreventa y filtrar las señales falsas.

  • El ajuste fino de los criterios de sobrecompra/sobreventa con diferentes parámetros permite ajustar la sensibilidad de la estrategia en función de las condiciones del mercado.

  • La implementación de paradas abiertas de seguimiento de precios ayuda a obtener ganancias de manera oportuna.

Análisis de riesgos

  • Los indicadores del RSI son propensos a la divergencia, lo que no es eficaz para identificar las inversiones de tendencia.

  • Para los períodos de alta volatilidad, los parámetros del RSI deben ajustarse, de lo contrario puede desencadenar paradas con demasiada frecuencia.

  • Las señales RSI triples que se activan juntas son raras, lo que puede perder buenas oportunidades comerciales.

  • Los parámetros de los criterios de sobrecompra/sobreventa deben ajustarse y probarse en diferentes mercados.

Direcciones de optimización

  • Considere la posibilidad de añadir otros indicadores de confirmación, como bandas de Bollinger, KDJ, etc., para evitar la divergencia del RSI.

  • Optimiza automáticamente los parámetros del RSI basados en diferentes regímenes de mercado.

  • Prueba otras condiciones de salida de parada, como las paradas ATR.

  • Añadir filtros para evitar el comercio durante períodos inadecuados.

Conclusión

Esta estrategia identifica zonas de sobrecompra/sobreventa utilizando una combinación de indicadores de RSI de varios períodos, e implementa paradas de seguimiento de tendencias. Las ventajas incluyen una mejor precisión, una parada oportuna; Las desventajas incluyen operaciones faltantes, errores de evaluación del RSI. Se recomienda realizar pruebas de optimización de parámetros, junto con la adición de indicadores de confirmación, para lograr un mejor rendimiento.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-28 10:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")


//RSI-2
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//RSI-7
middleup = rma(max(change(close), 0), 7)
middledown = rma(-min(change(close), 0), 7)
middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown))

//RSI-14
slowup = rma(max(change(close), 0), 14)
slowdown = rma(-min(change(close), 0), 14)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Signals
acc = 10 - accuracy
up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3)
dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3)
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open)

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Más.