Estrategia de inversión de seguimiento de impulso de dos factores

El autor:¿ Qué pasa?, Fecha: 2024-01-18 11:33:40
Las etiquetas:

img

Resumen general

Esta estrategia combina el factor de reversión de precios y el factor de impulso de las acciones para construir un modelo de dos factores para capturar oportunidades derivadas de reversiones a corto plazo y persistencia a largo plazo en el mercado. Primero utiliza 123 patrones de gráficos para determinar señales de reversión de precios a corto plazo, luego incorpora el indicador Laguerre RSI para juzgar la tendencia a mediano y largo plazo, y finalmente logra una integración efectiva de señales de dos factores.

Principios de estrategia

La estrategia consta de dos partes:

  1. 123 Factor de patrón de reversión

    Esta parte detecta señales de reversión de precios a corto plazo examinando el cambio en los precios de cierre en los últimos dos días. Específicamente, si el precio de cierre de ayer es menor que el de los dos días anteriores y el precio de cierre de hoy es mayor que el de ayer, se puede determinar como una señal de reversión de precios alcista.

  2. Factor RSI filtrado de Laguerre

    Esta parte construye un indicador RSI más sensible utilizando filtros Laguerre. La sensibilidad de los indicadores RSI tradicionales a los cambios de precios es relativamente baja. Por el contrario, los filtros Laguerre pueden construir indicadores utilizando menos datos históricos, mejorando así la sensibilidad a las fluctuaciones de precios.

En última instancia, la estrategia combina las señales de ambos factores, asegurando que se produzcan reversiones a corto plazo en línea con las tendencias generales del mercado, con el fin de capitalizar las oportunidades de retroceso.

Ventajas de la estrategia

La mayor ventaja de esta estrategia radica en la combinación exitosa de factores de reversión y tendencia. El factor de reversión captura oportunidades de retroceso a corto plazo después de las consolidaciones de precios, mientras que el factor de tendencia asegura que el sesgo general largo / corto no cambie.

Además, la introducción del RSI Laguerre aumenta la sensibilidad del modelo a los cambios de precios, lo cual es especialmente crucial para el comercio de alta frecuencia.

Análisis de riesgos

El riesgo principal que enfrenta esta estrategia es la posibilidad de señales contradictorias de los dos factores. Especialmente durante las correcciones volátiles del mercado, los precios a corto plazo pueden revertirse con frecuencia mientras que las tendencias a mediano y largo plazo también comienzan a cambiar. En tales casos, los dos tipos de señales pueden no coincidir fácilmente o experimentar retrasos. Esto conduce a señales de estrategia incorrectas y oportunidades de entrada perdidas o pérdidas innecesarias.

Además, las configuraciones de parámetros deficientes también pueden conducir a un mal rendimiento de la estrategia. Los parámetros para los indicadores técnicos pertenecientes a los factores de inversión y tendencia deben optimizarse y probarse por separado. Las combinaciones incorrectas de parámetros pueden disminuir significativamente la eficacia de la estrategia.

Direcciones de optimización

Los principales enfoques de las optimizaciones futuras para esta estrategia incluyen el filtrado de señales y la selección de parámetros. Se podrían introducir más condiciones de filtrado para que surtan efecto cuando las señales de doble factor entran en conflicto, asegurando que las operaciones solo se coloquen en escenarios de alta certeza. Esto puede reducir drásticamente las señales falsas.

Para la selección de parámetros, se podrían intentar métodos de aprendizaje automático y experimentos científicos para probar sistemáticamente varias combinaciones de parámetros y llegar a configuraciones óptimas.

Resumen de las actividades

Esta estrategia ha fusionado con éxito los factores de inversión y tendencia a través de un modelo de doble factor para capitalizar los retrocesos a corto plazo y la persistencia a mediano y largo plazo.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is RSI indicator which is more sesitive to price changes. 
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior 
// indicators using very short data lengths as well. The use of shorter 
// data lengths means you can make the indicators more responsive to 
// changes in the price.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

LB_RSI(gamma,BuyBand,SellBand) =>
    pos = 0.0
    xL0 = 0.0
    xL1 = 0.0
    xL2 = 0.0
    xL3 = 0.0
    xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
    xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
    xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
    xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
    CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0)  + (xL2 >= xL3 ? xL2 - xL3 : 0)
    CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1)  + (xL2 >= xL3 ? 0 : xL3 - xL2)
    nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
    pos := iff(nRes > BuyBand, 1,
    	     iff(nRes < SellBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posLB_RSI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Más.