Estrategia de negociación de dos promedios móviles basada en un precio sintético con deterioro

El autor:¿ Qué pasa?, Fecha: 2023-09-19 17:13:28
Las etiquetas:

Resumen general

Esta es una estrategia de negociación de media móvil dual basada en el precio sintético deteriorado (DSP). DSP es una función que está en fase con el ciclo dominante de los datos de precios reales, obtenida restando una EMA de medio ciclo de la EMA de ciclo trimestral. Cuando DSP cruza por encima de la banda superior o por debajo de la banda inferior, se realizan operaciones unilaterales.

Estrategia lógica

  1. Calcular el precio medio de HL xHL2 del ciclo 1/2.

  2. Calcular la EMA de 1/4 de ciclo (xEMA1) y la EMA de 1/2 de ciclo (xEMA2) de xHL2 basándose en la longitud.

  3. Obtener DSP restando xEMA2 de xEMA1.

  4. Establecer los parámetros de banda superior e inferior, ir largo cuando DSP cruza por encima de la banda superior, y ir corto cuando cruza por debajo de la banda inferior.

  5. El parámetro inverso puede cambiar entre la dirección larga y corta.

Análisis de ventajas

Ventajas de esta estrategia:

  1. DSP captura el ciclo de precios dominante, evitando la desviación de los ciclos menores.

  2. El diseño de la EMA dual realiza un seguimiento eficaz de los cambios dominantes del ciclo.

  3. Las bandas superiores/inferiores sencillas evitan el exceso de negociación.

  4. Cambiar fácilmente entre largo y corto utilizando el parámetro inverso, adaptable a diferentes entornos de mercado.

  5. No se requiere optimización de parámetros complejos, sencillo y práctico.

Análisis de riesgos

Principales riesgos:

  1. La configuración incorrecta del ciclo DSP puede hacer que se pierda el ciclo dominante.

  2. El ancho de banda necesita una optimización, de lo contrario puede producirse un exceso de comercio.

  3. El diseño de ciclos fijos tiene una mala adaptabilidad a los cambios violentos del mercado.

  4. El comercio en DSP por sí solo deja a la estrategia vulnerable a los golpes.

  5. La falta de stop loss puede dar lugar a pérdidas significativas.

Direcciones de optimización

Mejoras:

  1. Optimice los parámetros para encontrar la mejor combinación de ciclos.

  2. Añadir bandas dinámicas basadas en la volatilidad.

  3. Incorporar filtros de tendencia y volatilidad para reducir las señales falsas.

  4. Añadir mecanismos de stop loss o trailing stop para controlar el riesgo.

  5. Prueba en múltiples instrumentos para la universalidad.

  6. Introducir el aprendizaje automático para la optimización del ciclo DSP adaptativo.

Resumen de las actividades

En general, esta es una estrategia de negociación de promedios móviles duales muy simple y práctica. Se basa en bases sólidas de análisis de ciclos, con DSP rastreando efectivamente el ciclo dominante. Con refinamientos en la optimización de parámetros, stop losses, condiciones de filtro y más, puede convertirse en una estrategia de negociación cuantitativa confiable.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/03/2017
// Detrended Synthetic Price is a function that is in phase with the 
// dominant cycle of real price data. This DSP is computed by subtracting 
// a half-cycle exponential moving average (EMA) from the quarter cycle 
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP")
Length = input(14, minval=1)
SellBand = input(25)
BuyBand = input(-25)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(SellBand, color=red, linestyle=line)
hline(BuyBand, color=green, linestyle=line)
xHL2 = hl2
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
pos = iff(xEMA1_EMA2 > SellBand, 1,
	     iff(xEMA1_EMA2 < BuyBand, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xEMA1_EMA2, color=blue, title="D_DSP")

Más.