Estrategia de reversión de la media móvil cruzada doble

El autor:¿ Qué pasa?, Fecha: 2023-11-24 17:03:47
Las etiquetas:

img

Resumen general

La estrategia de reversión de la media móvil doble es una estrategia de seguimiento de tendencias que combina la estrategia de reversión 123 y la estrategia del oscilador de deterioro de DiNapoli para generar señales de negociación a través de la reversión de la media móvil doble para rastrear las tendencias del mercado.

Estrategia lógica

La estrategia consta de dos partes:

  1. 123 Estrategia de reversión: Esta estrategia utiliza el indicador estocástico para generar señales. Envía una señal de compra cuando el precio de cierre aumenta después de dos días consecutivos de caída, mientras que la línea rápida estocástica está por debajo de la línea lenta y por debajo de 50; envía una señal de venta cuando el precio de cierre disminuye después de dos días consecutivos de aumento, mientras que la línea rápida estocástica está por encima de la línea lenta y por encima de 50.

  2. DiNapoli Detrended Oscillator Strategy: Esta estrategia utiliza la línea media móvil del precio para generar señales de negociación cuando el precio excede o cae por debajo de la línea media móvil en un cierto valor.

Después de que cada una de las dos estrategias anteriores genere señales de negociación separadas, esta estrategia las integra y solo envía órdenes de negociación reales cuando las dos señales son consistentes, es decir, cuando las dos medias móviles forman señales en la misma dirección; de lo contrario, no se toma ninguna acción.

Análisis de ventajas

Al combinar dos señales de negociación de promedios móviles, esta estrategia puede realizar un seguimiento eficaz de las tendencias del mercado y presenta las siguientes ventajas:

  1. Aproveche al máximo las fortalezas del indicador estocástico para juzgar el impulso y las tendencias, evitando las pérdidas causadas por señales engañosas de cualquier indicador individual.

  2. El indicador DiNapoli puede identificar eficazmente las tendencias y evitar la apertura innecesaria de posiciones debido a fluctuaciones aleatorias.

  3. El cruce de medias móviles dobles puede reducir eficazmente las señales falsas y mejorar la calidad de la señal para proporcionar pruebas sólidas para juzgar la dirección del mercado.

  4. Los parámetros ajustables de la estrategia permiten a los usuarios elegir combinaciones de parámetros en función de sus preferencias personales para adaptarse de manera flexible a diferentes entornos de mercado.

Análisis de riesgos

La estrategia también presenta los siguientes riesgos:

  1. En un mercado alcista, la estrategia puede perder oportunidades de compra debido a la configuración excesivamente cautelosa de los parámetros del indicador.

  2. En un mercado bajista, las señales de cruce de la media móvil dual pueden retrasarse, lo que resulta en condiciones de sobrecompra y sobreventa.

  3. En el caso de un movimiento unilateral del mercado, las señales de cruce de la media móvil dual pueden ser lentas.

Optimización

La estrategia se puede optimizar de las siguientes maneras:

  1. Prueba y optimiza los parámetros de los indicadores estocásticos y de DiNapoli para encontrar las combinaciones óptimas de parámetros.

  2. Añadir otros indicadores de juicio auxiliares como el indicador de volumen para enriquecer la lógica interna de la estrategia y mejorar la precisión de las señales.

  3. Utilizar métodos de aprendizaje automático para entrenar y optimizar los parámetros de estrategia y las reglas de generación de señales para adaptarlos plenamente a los cambios del mercado.

  4. Evaluar las estructuras locales con indicadores técnicos avanzados para distinguir entre señales a mediano y largo plazo, lo que permite que la estrategia funcione en múltiples plazos.

Conclusión

La estrategia de reversión de cruce de promedio móvil doble integra dos indicadores para formar señales comerciales de cruce de promedio móvil doble, que pueden rastrear efectivamente las tendencias del mercado y obtener rendimientos relativamente buenos mientras controlan los riesgos. Es una estrategia de seguimiento de tendencias confiable. La estrategia se puede mejorar y actualizar continuamente a través de la optimización de parámetros y la adición de indicadores auxiliares. Tiene amplias perspectivas de aplicación.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/02/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
// DiNapoli Detrended Oscillator Strategy
//
// 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

DiNapoli(Length, Trigger) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = close - xSMA
    pos := iff(nRes > Trigger, 1,
    	     iff(nRes <= Trigger, -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DiNapoli Detrended Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDiN = input(14, minval=1)
TriggerDiN = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDiN = DiNapoli(LengthDiN, TriggerDiN)
pos = iff(posReversal123 == 1 and posDiN == 1 , 1,
	   iff(posReversal123 == -1 and posDiN == -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.