Estrategia combinada de inversión de impulso de múltiples factores


Fecha de creación: 2023-11-21 11:20:31 Última modificación: 2023-11-21 11:20:31
Copiar: 1 Número de Visitas: 600
1
Seguir
1617
Seguidores

Estrategia combinada de inversión de impulso de múltiples factores

Descripción general

La estrategia es una estrategia de combinación de múltiples factores, combinada con el uso de un factor de reversión y un factor de movimiento, cuyo objetivo es descubrir oportunidades de reversión en el mercado. La estrategia utiliza primero un factor de reversión largo y negativo para identificar oportunidades de reversión después de la caída de la composición, y luego utiliza el indicador de movimiento para realizar una segunda selección y filtrar las falsas señales de reversión bajo la gran tendencia, lo que bloquea oportunidades de arbitraje de reversión en la línea corta.

Principio de estrategia

La estrategia tiene dos partes:

  1. 123 el factor de reversión

Esta parte utiliza la idea de la reversión intradiaria para determinar la relación entre el cierre del día anterior y el cierre de los dos días anteriores, junto con la identificación de oportunidades de reversión en la línea K lenta. La lógica específica es:

  • Señales de compra: se produce una señal de compra cuando el precio de cierre se eleva después de dos días consecutivos de caída, y la línea de K lenta está por debajo de 50 durante nueve días.

  • Señales de venta: si el precio de cierre de un día cae después de dos días consecutivos de subida, y la línea K rápida es superior a 50 en nueve días, se genera una señal de venta.

  1. El indicador de la oscilación dinámica de Elgdick (ETSI)

Esta sección utiliza el método de la dinámica de los precios de las tres EMA para construir el indicador de dinámica. La fórmula del indicador es la siguiente:

   xPrice1 = close - close[1]  
   xPrice2 = abs(close - close[1])
   xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u) 
   xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u)
   xTSI = xSMA_R / xSMA_aR * 100
   xEMA_TSI = EMA(xTSI, N)

De ellos, xSMA_R es el EMA de la dinámica de los precios, xSMA_aR es el EMA de la amplitud de la fluctuación de los precios, xTSI es el indicador de la dinámica de la relación entre los dos, xEMA_TSI es el EMA de la dinámica de los xTSI. El indicador juzga la relación entre xTSI y xEMA_TSI, como una señal de dirección de negociación.

Finalmente, la estrategia realiza una operación AND de las dos partes de la señal, generando instrucciones de negociación reales solo cuando las dos partes de la señal se emiten de forma simultánea.

Ventajas estratégicas

La mayor ventaja de esta estrategia es su diseño multifactorial, que permite filtrar señales falsas y descubrir oportunidades de comercio de alta calidad. En concreto, se trata de tres puntos:

  1. El factor de reversión 123 puede identificar puntos de rebote a corto plazo después de la caída de la liquidación.

  2. El indicador de la dinámica de Elgdick puede determinar eficazmente la dirección de la gran tendencia y evitar que la señal de reversión ocurra en la gran tendencia, lo que filtra las falsas señales.

  3. Las dos partes de la señal utilizan el AND para mejorar la calidad de la señal y aumentar la estabilidad de la estrategia.

Riesgo estratégico

A pesar de que la estrategia utiliza un diseño multifactorial para controlar el riesgo, los principales riesgos son:

  1. Las señales de reversión pueden ocurrir en una tendencia de oscilación y no pueden generar ganancias.

  2. La configuración de los parámetros entre los dos factores es subjetiva y puede ser demasiado adecuada para una variedad específica.

  3. El riesgo de pérdidas puede aumentar si los precios vuelven a subir después de una reversión.

Estos riesgos pueden mitigarse mediante la optimización de los parámetros para adaptarse a más variedades, el control del tiempo de tenencia después de la reversión, el monitoreo en tiempo real de los cambios en la relación de indicadores, etc.

Optimización de la estrategia

La estrategia se puede optimizar principalmente en los siguientes aspectos:

  1. Ajuste los parámetros de los dos factores para encontrar una muestra de datos más compatible.

  2. Aumentar las estrategias de stop loss y controlar las pérdidas individuales.

  3. Se utilizan diferentes combinaciones de parámetros para las variedades de tendencia y las variedades de convulsión.

  4. Aumentar el mecanismo de ponderación de los factores, para que los factores de mejor rendimiento tengan más peso.

  5. Aumentar los algoritmos de aprendizaje automático para la optimización y actualización automática de los parámetros.

Resumir

La estrategia combina con éxito los factores de reversión y los indicadores de dinámica para lograr un diseño de optimización de múltiples factores. Puede identificar eficazmente las oportunidades de reversión a corto plazo y utilizar los indicadores de dinámica para realizar una segunda verificación de la señal, lo que aumenta la probabilidad de éxito de la estrategia. Aunque la estrategia todavía tiene cierto espacio para mejorar, su idea central proporciona una buena referencia para el diseño de estrategias cuantitativas.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/2020
// 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
// r - Length of first EMA smoothing of 1 day momentum        4
// s - Length of second EMA smoothing of 1 day smoothing      8    
// u- Length of third EMA smoothing of 1 day momentum         6  
// Length of EMA signal line                                  3
// Source of Ergotic TSI                                      Close
//
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to 
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods.  
//
// 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


ETSI(r,s,u,SmthLen) =>
    pos = 0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(ema(xPrice1,r), s),u)
    xSMA_aR = ema(ema(ema(xPrice2, r), s),u)
    Val1 = 100 * xSMA_R
    Val2 = xSMA_aR
    xTSI = iff (Val2 != 0, Val1 / Val2, 0)
    xEMA_TSI = ema(xTSI, SmthLen)
    pos:= iff(xTSI > xEMA_TSI, 1,
    	   iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(4, minval=1)
s = input(8, minval=1)
u = input(6, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETSI = ETSI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posETSI == 1 , 1,
	   iff(posReversal123 == -1 and posETSI == -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 )