Estrategia de agregación de múltiples indicadores RSI


Fecha de creación: 2024-01-02 12:06:14 Última modificación: 2024-01-02 12:06:14
Copiar: 0 Número de Visitas: 697
1
Seguir
1621
Seguidores

Estrategia de agregación de múltiples indicadores RSI

Descripción general

La estrategia de agregación de múltiples RSI es una estrategia que utiliza múltiples indicadores de fuerza relativa (RSI) para operar en el momento de elegir una acción. La estrategia utiliza simultáneamente indicadores RSI de 1, 2, 3, 4 y 5 períodos diferentes, que generan una señal de compra cuando cualquier indicador RSI está por debajo del límite establecido y una señal de venta cuando todos los indicadores RSI están por encima de sus respectivos límites, para lograr entradas y salidas programadas de la acción.

Principio de estrategia

La lógica central de esta estrategia es seguir al mismo tiempo los indicadores RSI de 1, 2, 3, 4, y 5 períodos diferentes, incluyendo el RSI de 4 períodos, 7 períodos, 14 períodos, 21 períodos y 28 períodos. Los cinco indicadores RSI establecen respectivamente diferentes límites, generando una señal de compra siempre que cualquier indicador RSI esté por debajo del límite correspondiente.

Por ejemplo, el límite del indicador RSI de 4 períodos se establece en 15, y cuando el RSI de 4 períodos es inferior a 15, se genera una señal de compra. La estrategia detecta al mismo tiempo si los indicadores RSI de otros períodos también están por debajo del límite correspondiente, y si lo son, también se genera una señal de compra.

Cuando todos los cinco indicadores RSI están por encima de sus respectivos límites, se produce una señal de venta, lo que permite obtener ganancias. Así, mediante la agregación de señales de varios indicadores periódicos, se puede mejorar la precisión de las entradas.

Ventajas estratégicas

  1. Utiliza múltiples indicadores RSI para mejorar la precisión de las entradas

La estrategia utiliza 5 indicadores RSI de diferentes períodos al mismo tiempo, generando una señal de compra cuando cualquier RSI está por debajo del límite. Esto puede mejorar la fiabilidad de la señal y evitar señales erróneas causadas por un solo indicador. La agregación de múltiples indicadores puede mejorar la precisión de las entradas.

  1. Indicadores de diferentes períodos de tiempo adaptados a diferentes situaciones del mercado

El uso de un indicador RSI de 1, 2, 3, 4 y 5 ciclos permite adaptarse a las fluctuaciones de las acciones en diferentes ciclos. Por ejemplo, el RSI de 28 ciclos es adecuado para el comercio de líneas largas, y el RSI de 4 ciclos es adecuado para el comercio de líneas cortas. Esto garantiza que la estrategia pueda funcionar correctamente en una variedad de situaciones de mercado.

  1. La estructura del código es clara y fácil de entender.

La estrategia tiene una estructura de nombres y códigos de variables muy clara, y el proceso de cálculo de los diferentes indicadores y señales es muy sencillo. Esto hace que la estrategia sea fácil de entender, modificar y optimizar. Esta es una ventaja muy importante de la estrategia de cuantificación.

Riesgo estratégico

  1. El mercado unilateral no es válido

Esta estrategia depende principalmente de la generación de señales de sobreventa y sobreventa, cuya eficacia se restringe en situaciones de tendencia unilateral ascendente o descendente. Este es un problema común en las estrategias que utilizan indicadores de inversión.

  1. Optimización de parámetros muy difícil

La estrategia contiene varios indicadores y parámetros, lo que dificulta la optimización de los parámetros. Una combinación irrazonable de parámetros puede reducir considerablemente la eficacia de la estrategia. Esto requiere el uso de herramientas de optimización para encontrar los parámetros óptimos.

  1. Cambios frecuentes de espacio múltiple

Debido al uso de múltiples indicadores de ciclo, los cambios de estrategia pueden ser más frecuentes, lo que conlleva mayores costos de transacción y riesgo de deslizamiento.

Dirección de optimización de la estrategia

  1. Indicadores de tendencia combinados

Se pueden incluir indicadores de tendencia como MA o BOLL para evitar descuentos en situaciones unilaterales. Por ejemplo, se puede entrar en juego solo si los indicadores de tendencia también aceptan la reversión.

  1. Reducción del número de indicadores

Trate de reducir el número de indicadores RSI utilizados y reducir la dificultad de optimización de los parámetros. Los experimentos muestran que 2-3 combinaciones de indicadores pueden obtener buenos resultados.

  1. Optimización de la gama de parámetros

Utiliza métodos como la optimización de la longitud de paso y la optimización aleatoria para encontrar el mejor rango y combinación de los parámetros RSI para maximizar el rendimiento de la estrategia.

Resumir

La estrategia de agregación de indicadores RSI múltiples a través de la congregación de señales RSI de varios ciclos, mejora la precisión de las entradas y permite el comercio de acciones a tiempo. Tiene ventajas en el uso de varios indicadores, pero también tiene problemas de ineficacia unilateral, dificultad para optimizar. Se puede mejorar aún más la estrategia Robustness mediante la adición de indicadores de tendencia, la reducción del número de indicadores y la optimización de parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Symphony v1.0", shorttitle = "Symphony 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
usersi1 = input(true, defval = true, title = "Use RSI 1")
rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period")
rsilimit1 = input(15, defval = 15, minval = 2, maxval = 50, title = "RSI 1 Limit")
usersi2 = input(true, defval = true, title = "Use RSI 2")
rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period")
rsilimit2 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 2 Limit")
usersi3 = input(true, defval = true, title = "Use RSI 3")
rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period")
rsilimit3 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(true, defval = true, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(true, defval = true, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 5 Limit")
cf = input(false, defval = false, title = "Use color filter")
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
rsi1 = rsi(close, rsiperiod1)
rsi2 = rsi(close, rsiperiod2)
rsi3 = rsi(close, rsiperiod3)
rsi4 = rsi(close, rsiperiod4)
rsi5 = rsi(close, rsiperiod5)

//Signals
up1 = rsi1 < rsilimit1 and usersi1  
up2 = rsi2 < rsilimit2 and usersi2
up3 = rsi3 < rsilimit3 and usersi3
up4 = rsi4 < rsilimit4 and usersi4
up5 = rsi5 < rsilimit5 and usersi5

up = up1 or up2 or up3 or up4 or up5
exit = rsi1 > rsilimit1 and rsi2 > rsilimit2 and rsi3 > rsilimit3 and rsi4 > rsilimit4 and rsi5 > rsilimit5
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Background
col = up ? lime : na
bgcolor(col, transp = 0)

//Trading
if up and (close < open or cf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
 
if  exit
    strategy.close_all()