Estrategia cuantitativa de doble indicador


Fecha de creación: 2023-12-21 10:59:16 Última modificación: 2023-12-21 10:59:16
Copiar: 1 Número de Visitas: 658
1
Seguir
1623
Seguidores

Estrategia cuantitativa de doble indicador

Descripción general

La estrategia genera una señal de negociación mediante la combinación de 123 indicadores de reversión y el indicador RAVI. De ellos, 123 reversión pertenece a la estrategia de reversión, que utiliza el movimiento del precio de las acciones durante dos días consecutivos para determinar el movimiento del precio futuro. El indicador RAVI determina si el precio ha entrado en la zona de sobreventa y sobreventa. La estrategia toma una decisión de hacer más vacío mediante el juicio combinado de las dos señales.

Principio de estrategia

123 el giro

El indicador se basa en el valor de K del indicador aleatorio. En concreto, el precio de cierre del día actual es menor que el de los dos días anteriores, y el 9 de noviembre la línea lenta aleatoria es inferior a 50 y el precio de cierre del día actual es mayor que el de los dos días anteriores, y el 9 de noviembre la línea rápida aleatoria es superior a 50 y queda en blanco. Así se confirma la entrada a través del punto de inflexión.

Indicadores del RAVI

El indicador determina las compras y las ventas a través de la diferencia entre la línea rápida y la línea lenta. En concreto, la diferencia entre la línea media de 7 días y la línea media de 65 días, se hace más cuando es mayor que un parámetro y se hace vacío cuando es menor que un parámetro.

Señales de estrategia

Cuando el 123 se invierte y el RAVI produce una señal de polinomio simultáneo. La señal de polinomio es igual a 1 para los dos indicadores y la señal de polinomio es igual a -1 para los dos indicadores. Así, se confirma con el doble indicador para evitar la señal errónea de un solo indicador.

Análisis de las ventajas

  • La combinación de los dos indicadores puede mejorar la precisión de la señal y evitar señales erróneas
  • 123 utiliza información de línea K inversa, RAVI utiliza información de línea uniforme para juzgar el mercado desde múltiples perspectivas
  • Los parámetros de RAVI son ajustables y se pueden optimizar para diferentes variedades y entornos de mercado
  • La inversión de la tendencia, tanto para capturar como para seguirla

Riesgo y optimización

  • Combinación de indicadores dobles, fácil de generar señales inconsistentes. Se puede considerar el parámetro de diferencia de precio, cuando los dos indicadores difieren en un parámetro también se puede emitir una señal
  • La inversión 123 es una estrategia de alta frecuencia que requiere combinar con otras estrategias de baja frecuencia para reducir la frecuencia de las transacciones
  • RAVI es bueno para capturar tendencias de línea media y larga, y Combine, un indicador de línea corta, mejora la resistencia a los riesgos de la estrategia

Resumir

La estrategia tiene en cuenta los factores de reversión y los factores de tendencia, y reduce la probabilidad de emisión de señales erróneas mediante la confirmación de dos indicadores. En el siguiente paso, se puede introducir un algoritmo de aprendizaje automático para lograr la optimización de los parámetros de adaptación. O bien, se puede considerar una combinación de estrategias para formar una combinación con otros tipos de estrategias para reducir el máximo retorno mientras se mantienen los beneficios.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/05/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 indicator represents the relative convergence/divergence of the moving 
// averages of the financial asset, increased a hundred times. It is based on 
// a different principle than the ADX. Chande suggests a 13-week SMA as the 
// basis for the indicator. It represents the quarterly (3 months = 65 working days) 
// sentiments of the market participants concerning prices. The short moving average 
// comprises 10% of the one and is rounded to seven.
//
// 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


RAVI(LengthMAFast, LengthMASlow, TradeLine) =>
    pos = 0.0
    xMAF = sma(close, LengthMAFast)
    xMAS = sma(close, LengthMASlow)
    xRAVI = ((xMAF - xMAS) / xMAS) * 100
    pos:= iff(xRAVI > TradeLine, 1,
    	   iff(xRAVI < TradeLine, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Range Action Verification Index (RAVI)", 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, "---- Range Action Verification Index (RAVI) ----")
LengthMAFast = input(title="Length MA Fast", defval=7)
LengthMASlow = input(title="Length MA Slow", defval=65)
TradeLine = input(0.14, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRAVI = RAVI(LengthMAFast, LengthMASlow, TradeLine)
pos = iff(posReversal123 == 1 and posRAVI == 1 , 1,
	   iff(posReversal123 == -1 and posRAVI == -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 )