Estrategia de negociación del RSI de Laguerre

El autor:¿ Qué pasa?, Fecha: 2023-12-19 14:04:46
Las etiquetas:

img

Resumen general

La estrategia de negociación del RSI de Laguerre se basa en el filtro de John EHLERS Laguerre aplicado al indicador RSI. Al ajustar el coeficiente α, esta estrategia aumenta o disminuye el retraso y la suavidad del RSI para filtrar el ruido y generar señales comerciales más claras.

Estrategia lógica

El indicador central de esta estrategia es el RSI de Laguerre. Su fórmula de cálculo es la siguiente:

L0 = (1-γ)Src + γL0[1] L1 = -γL0 + L0[1] + γL1 [1] L2 = -γL1 + L1[1] + γL2 [1] L3 = -γL2 + L2[1] + γL3 [1]

Aquí γ=1-α, α es un coeficiente ajustable, Src representa el precio. L0 a L3 son 4 indicadores que contienen relaciones recursivas. Sobre esta base, se puede calcular la integral ascendente cu y la integral descendente cd:

cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0

Entonces Laguerre RSI se puede calcular utilizando cu y cd:

LaRSI = cu / (cu + cd)

A través de la estructura de filtro recursivo, Laguerre RSI conserva la capacidad de identificación de tendencias de RSI mientras filtra mucho ruido aleatorio, generando señales comerciales más claras y suaves.

Las reglas específicas para el comercio son: Ir largo cuando Laguerre RSI cruza por encima de 20, y ir corto cuando Laguerre RSI cruza por debajo de 80.

Análisis de ventajas

Las principales ventajas de la estrategia RSI de Laguerre son:

  1. Filtra eficazmente el ruido del RSI a través de la estructura del filtro de Laguerre, haciendo que las señales comerciales sean más claras y confiables

  2. El coeficiente α ajustable hace que los parámetros de la estrategia sean flexibles para la optimización para adaptarse a más entornos de mercado

  3. Se mantiene la validez a largo plazo del RSI, permitiendo al mismo tiempo la identificación del impulso mediante el filtrado, la integración de tendencias y sobrecompras/sobrevendidas.

  4. Reglas de estrategia sencillas e intuitivas que son fáciles de implementar y funcionan bien en diversos entornos de mercado

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Los ajustes inadecuados de α pueden dar lugar a un retraso excesivo o a un filtrado excesivo, por lo que se pierden los cambios de precio

  2. En mercados volátiles pueden producirse pérdidas comerciales frecuentes

  3. Algunas oportunidades alcistas pueden perderse en mercados alcistas sostenidos a largo plazo

Direcciones de optimización

Esta estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Utilice algoritmos de aprendizaje automático para optimizar la configuración del coeficiente α

  2. Añadir mecanismos de stop loss para reducir el riesgo de pérdida

  3. Combinar otros indicadores para filtrar señales falsas

  4. Aumentar el modelo de flexibilización cuantitativa para asegurar los beneficios en etapas específicas

Conclusión

La estrategia de Laguerre RSI identifica de manera efectiva las situaciones de sobrecompra y sobreventa a través de mecanismos de filtrado, evitando la interferencia del ruido al emitir señales comerciales.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © mertriver1
// Developer: John EHLERS
//@version=3
// Author:Kıvanç Özbilgiç
strategy("Laguerre RSI", shorttitle="LaRSI", overlay=false)
src = input(title="Source", defval=close)
alpha = input(title="Alpha", type=float, minval=0, maxval=1, step=0.1, defval=0.2)
colorchange = input(title="Change Color ?", type=bool, defval=false)

Date1      = input(true, title = "=== Date Backtesting ===")
FromDay1   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth1 = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear1  = input(defval = 2020, title = "From Year", minval = 2017)

ToDay1     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth1   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear1    = input(defval = 9999, title = "To Year", minval = 2017)

start1     = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00) 
finish1    = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59)        
window1()  => time >= start1 and time <= finish1 ? true : false

gamma=1-alpha
L0 = 0.0
L0 := (1-gamma) * src + gamma * nz(L0[1])
L1 = 0.0
L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1])

L2 = 0.0
L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1])

L3 = 0.0
L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1])

cu= (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0)

cd= (L0<L1 ? L1-L0 : 0) + (L1<L2 ? L2-L1 : 0) + (L2<L3 ? L3-L2 : 0)

temp= cu+cd==0 ? -1 : cu+cd
LaRSI=temp==-1 ? 0 : cu/temp

Color = colorchange ? (LaRSI > LaRSI[1] ? green : red) : blue
plot(100*LaRSI, title="LaRSI", linewidth=2, color=Color, transp=0)
plot(20,linewidth=1, color=maroon, transp=0)
plot(80,linewidth=1, color=maroon, transp=0)

strategy.entry("Long",   true, when = window1() and crossover(cu, cd))
strategy.entry("Short", false, when = window1() and crossunder(cu, cd))

Más.