Estrategia cuantitativa de índice de reversión que integra señales de tendencia dual


Fecha de creación: 2023-12-26 15:47:36 Última modificación: 2023-12-26 15:47:36
Copiar: 0 Número de Visitas: 536
1
Seguir
1623
Seguidores

Estrategia cuantitativa de índice de reversión que integra señales de tendencia dual

Descripción general

El nombre de la estrategia se llama la estrategia de la inversión de la inversión de la doble señal de tendencia de la fusión de la fusión. Fusión de dos diferentes señales de la estrategia, una de las cuales es una señal de inversión a corto plazo basada en el indicador aleatorio, y la otra es una señal de tendencia a largo plazo basada en el volumen de transacción, que se combinan para formar una señal de entrada estable.

Principio de estrategia

La estrategia consta de dos partes. La primera parte utiliza el indicador Stoch de 9 días para generar una señal de reversión a corto plazo. En concreto, si el precio de cierre se elevaba el día anterior, mientras que la línea rápida del 9 día estaba por debajo de 50 y la línea lenta estaba por encima de 50, se hacía más; si el precio de cierre se reducía el día anterior, mientras que la línea rápida del 9 día estaba por encima de 50 y la línea lenta estaba por debajo de 50.

La segunda parte utiliza el índice de volumen de transacciones negativo (NVI) para formar una señal de tendencia a largo plazo. La fórmula de cálculo del NVI es que si el volumen de transacciones es menor que el del día anterior, se acumula la tasa de cambio en el precio de cierre del día; si el volumen de transacciones es mayor o igual al del día anterior, se mantiene el valor del día anterior sin cambios.

Finalmente, la estrategia combina las dos señales. La señal de entrada se forma solo cuando la señal de reversión a corto plazo y la señal de tendencia a largo plazo están sincronizadas. Esto ayuda a filtrar las falsas señales y aumenta la estabilidad.

Análisis de las ventajas

La mayor ventaja de esta estrategia reside en la estabilidad de la señal. Las señales de reversión a corto plazo pueden capturar los ajustes a corto plazo del mercado, mientras que las señales de tendencia a largo plazo aseguran la invariabilidad de la tendencia general. La combinación de ambos aumenta considerablemente la estabilidad de la señal y puede filtrar eficazmente las señales de corto plazo con una mayor tasa de error.

Además, la estrategia tiene menos parámetros y es fácil de optimizar. El usuario solo necesita ajustar los parámetros de NVI para adaptarse a las características de los diferentes mercados.

Análisis de riesgos

El mayor riesgo de esta estrategia es que puede haber una diferencia de tiempo entre las dos señales. Puede haber un cierto retraso entre las señales de reversión a corto plazo y las señales de tendencia a largo plazo, lo que hace que las dos señales no sean consistentes durante un período de tiempo y no puedan formar una señal de entrada estable.

Además, el índice NVI es más sensible a cambios de volumen de transacciones inusualmente grandes, lo que puede conducir a errores en el juicio de tendencias a largo plazo.

Para reducir estos riesgos, los parámetros del indicador NVI pueden ajustarse adecuadamente, o se puede aumentar el stop loss para controlar las pérdidas individuales.

Dirección de optimización

La estrategia se puede optimizar principalmente en los siguientes aspectos:

  1. Optimización de los parámetros de los indicadores de Stoch para mejorar la captura de retorno.

  2. Optimizar la longitud de ciclo de los indicadores de NVI y mejorar la capacidad de identificar tendencias a largo plazo.

  3. Se añaden las condiciones de filtración de tráfico para eliminar las falsas señales de tráfico anormal.

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

Resumir

La estrategia se basa en la inversión de corto plazo y el diseño de un mecanismo de entrada de estabilidad de la tendencia a largo plazo, que puede controlar eficazmente la tasa de falsos informes, mejorar la estabilidad de la señal. El siguiente paso puede ser optimizado en la modificación de los parámetros, el aumento de las condiciones de filtración, etc., para mejorar aún más la estabilidad de la estrategia.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/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
// The theory behind the indexes is as follows: On days of increasing 
// volume, you can expect prices to increase, and on days of decreasing 
// volume, you can expect prices to decrease. This goes with the idea of 
// the market being in-gear and out-of-gear. Both PVI and NVI work in similar 
// fashions: Both are a running cumulative of values, which means you either 
// keep adding or subtracting price rate of change each day to the previous day`s 
// sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add 
// anything; if today`s volume is greater, then add today`s price rate of change. 
// For NVI, add today`s price rate of change only if today`s volume is less than 
// yesterday`s.
//
// 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


NVI(EMA_Len) =>
    pos = 0.0
    nRes = 0.0
    xROC = roc(close, EMA_Len)
    nRes := iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
    nResEMA = ema(nRes, EMA_Len)
    pos := iff(nRes > nResEMA, 1,
    	     iff(nRes < nResEMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Negative Volume Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Negative Volume Index ----")
EMA_Len = input(50, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNVI = NVI(EMA_Len)
pos = iff(posReversal123 == 1 and posNVI == 1 , 1,
	   iff(posReversal123 == -1 and posNVI == -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 )