Estrategia de trading extremo con triple RSI


Fecha de creación: 2023-11-02 14:34:21 Última modificación: 2023-11-02 14:34:21
Copiar: 0 Número de Visitas: 1089
1
Seguir
1617
Seguidores

Estrategia de trading extremo con triple RSI

Descripción general

La estrategia utiliza tres indicadores RSI de diferentes períodos para determinar si el mercado ha alcanzado las zonas extremas de sobrecompra y sobreventa, lo que emite señales de compra y venta. La principal forma de determinar la tendencia del mercado es observar una combinación de indicadores de diferentes períodos.

Principio de estrategia

La estrategia utiliza el indicador RSI de 2 ciclos, 7 ciclos y 14 ciclos al mismo tiempo. Se emite una señal de negociación cuando tres indicadores RSI muestran una señal de sobreventa o sobreventa al mismo tiempo.

Concretamente, cuando el RSI de 2 ciclos es menor que 10, el RSI de 7 ciclos es menor que 20, el RSI de 14 ciclos es menor que 30, se considera que el mercado está en un estado de sobreventa y emite una señal de compra. Cuando el RSI de 2 ciclos es mayor que 90, el RSI de 7 ciclos es mayor que 80, el RSI de 14 ciclos es mayor que 70, se considera que el mercado está en un estado de sobreventa y emite una señal de venta.

En el código se ajustan los parámetros de precisión para ajustar el valor mínimo de los juicios de sobreventa y sobreventa del RSI, y se presume que 3, cuanto menor sea el valor, el juicio de sobreventa y sobreventa será más estricto.

Cuando se emite una señal de compra o venta, si el precio se invierte y supera el precio de apertura del día, se elimina la posición actual y se implementa un stop loss de seguimiento de tendencia.

Análisis de las ventajas

  • A través de la combinación de indicadores RSI de varios períodos, se puede juzgar con mayor precisión la situación de sobrecompra y sobreventa en el mercado, filtrando las señales falsas.

  • Se puede ajustar la sensibilidad de la estrategia en función del mercado mediante el uso de diferentes parámetros para ajustar las condiciones de determinación de sobreventa y sobreventa.

  • Implementar el seguimiento de los precios de apertura para detener los pérdidas a tiempo y bloquear los beneficios.

Análisis de riesgos

  • El RSI es un indicador de desviación y no es muy eficaz para evaluar el cambio de tendencia del mercado.

  • La configuración del indicador RSI debe ajustarse a la alta volatilidad, de lo contrario se detendrá con frecuencia.

  • El triple RSI se desencadena menos a la vez y es posible que se pierda una buena oportunidad de negociación.

  • Los parámetros de los juicios sobre sobreventa y sobrecompra deben ajustarse adecuadamente, y se recomienda probar la eficacia de los datos en diferentes mercados.

Dirección de optimización

  • Se puede considerar la inclusión de otros indicadores para la confirmación, como la línea de Brin, KDJ, etc., para evitar que el RSI se desvíe.

  • Los parámetros del RSI se pueden optimizar automáticamente según el tipo de situación.

  • Se pueden probar otras condiciones de salida de parada, como la parada ATR, etc.

  • Se pueden añadir condiciones para filtrar los períodos de negociación para evitar períodos de tiempo inadecuados.

Resumir

La estrategia utiliza una combinación de indicadores RSI de varios períodos para determinar las zonas de sobreventa y sobreventa. La ventaja es que se puede mejorar la precisión de la determinación y el cierre de pérdidas a tiempo. La desventaja es que es fácil de omitir, los indicadores RSI son fácilmente erróneos. Se recomienda realizar pruebas de optimización de parámetros y agregar otros indicadores para confirmar, para obtener mejores resultados.

Código Fuente de la Estrategia
/*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()