Estrategia de negociación de convergencia de medias móviles y DMI


Fecha de creación: 2023-09-19 21:51:14 Última modificación: 2023-09-19 21:51:14
Copiar: 1 Número de Visitas: 733
1
Seguir
1617
Seguidores

Descripción general

Esta estrategia combina la estrategia de 123 inversiones, la estrategia de DMI y la estrategia de media móvil para lograr una agregación efectiva de diferentes tipos de estrategias y formar una estrategia de combinación potente. La estrategia puede operar en reversa en el punto de inflexión de la tendencia, y puede operar de manera progresiva cuando la tendencia continúa, al mismo tiempo que utiliza la media móvil para filtrar, que puede identificar la dirección de la tendencia del mercado y mejorar la probabilidad de victoria de la estrategia.

Principio de estrategia

  1. 123 estrategia de reversión: cuando el precio de cierre se convierte en más alto que el precio de cierre del día anterior después de 2 días consecutivos por debajo del precio de cierre del día anterior, y la línea K lenta se convierte en más alta que el precio de cierre del día anterior después de 2 días consecutivos por encima del precio de cierre del día anterior y la línea K rápida se convierte en más baja que el precio de cierre del día anterior después de 9 días consecutivos por encima del precio de cierre del día anterior.

  2. Estrategia DMI: hacer más cuando +DI en línea pasa a través de -DI en línea; hacer vacío cuando +DI en línea pasa a través de -DI en línea.

  3. Estrategia de promedio móvil: hacer más cuando se cruza la media móvil por encima del precio de cierre; hacer un vacío cuando se cruza la media móvil por debajo del precio de cierre.

  4. Las tres estrategias emiten una señal de apertura de posición cuando se emite una señal de sincronización, de lo contrario, la posición está cerrada.

Esta estrategia combina estrategias de tendencia y estrategias de reversión para capturar oportunamente oportunidades de reversión de precios sin perder oportunidades de ejecución de tendencias. El filtro de promedios móviles reduce las señales falsas. Las múltiples estrategias se verifican entre sí y mejoran la fiabilidad de las señales.

Análisis de las ventajas estratégicas

  1. La combinación de varias estrategias mejora la tasa de éxito. La estrategia inversa 123 puede capturar puntos de inflexión, la estrategia DMI puede capturar tendencias y las medias móviles pueden filtrar señales.

  2. La estrategia de reversión se combina con la estrategia de tendencia para capturar reversión y tendencia, y la flexibilidad de la negociación.

  3. El uso de filtros de medias móviles reduce las señales falsas generadas por las fluctuaciones a corto plazo.

  4. La combinación de múltiples estrategias puede verificar las señales entre sí, evitando que una sola estrategia falle debido a la influencia de un determinado entorno de mercado.

  5. La estrategia tiene más parámetros y se puede optimizar para encontrar la combinación óptima de parámetros y mejorar la estabilidad de la estrategia.

Análisis de riesgos

  1. Las estrategias de inversiones son fáciles de atrapar en las tendencias de oscilación. Se pueden evitar mediante la combinación de estrategias de tendencia.

  2. Las estrategias DMI pueden perder oportunidades al inicio de una tendencia. Se pueden reducir adecuadamente los parámetros de DMI para mejorar la sensibilidad.

  3. El promedio móvil tiene una latencia que puede retrasar la generación de señales. Se puede acortar el ciclo adecuadamente para acelerar la velocidad de respuesta.

  4. La combinación de varias estrategias puede aumentar la tasa de éxito, pero también aumenta la complejidad de la estrategia.

  5. La estrategia es sensible a los costos de transacción. Se recomienda una ampliación adecuada del margen de pérdida y evitar posiciones abiertas con demasiada frecuencia.

Dirección de optimización de la estrategia

  1. Optimización de los parámetros de cada estrategia para encontrar la mejor combinación de parámetros.

  2. La adición de otras señales de filtración de indicadores, como MACD, RSI, etc., mejora aún más la estabilidad de la estrategia.

  3. Aumentar las estrategias de detención de pérdidas, como la detención de la tendencia, la detención de la oscilación, etc., para controlar el riesgo.

  4. Optimización de la gestión de posiciones, como posiciones fijas, posiciones dinámicas, etc., para mejorar la rentabilidad de la estrategia.

  5. Ajuste de parámetros para variedades específicas para mejorar la adaptabilidad de la estrategia.

  6. Aumentar la capacidad de los modelos de aprendizaje automático para ayudar a la toma de decisiones y mejorar el rendimiento de las estrategias utilizando más datos históricos.

Resumir

Esta estrategia se combina eficazmente con la estrategia de reversión, la estrategia de tendencia y la filtración de la media móvil, formando una estrategia de agregación flexible y variable. Puede capturar puntos de inflexión de precios y la continuación de la tendencia, mejorando la estabilidad y la fiabilidad de la señal a través de una combinación de múltiples estrategias.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/10/2019
// 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 related article is copyrighted material from Stocks & Commodities Aug 2009 
//
// 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

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

DMIMA(Length_MA, Length_DMI) =>
    pos = 0.0
    xMA = sma(close, Length_MA)
    up = change(high)
    down = -change(low)
    trur = rma(tr, Length_DMI)
    xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
    xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
    nPDI = xPDI
    nNDI = xNDI
    nMA = xMA
    nPDI_1 = xPDI[1]
    nNDI_1 = xNDI[1]
    nMA_1 = xMA[1]
    bMDILong = iff(nPDI > nNDI and nPDI_1 < nNDI_1, true, 
                 iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false)) 
    bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false, 
                  iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false)) 
    bMALong = iff(close > nMA and close[1] < nMA_1, true, 
                 iff(close < nMA and close[1] > nMA_1, false, false))
    bMAShort = iff(close > nMA and close[1] < nMA_1, false, 
                 iff(close < nMA and close[1] > nMA_1, true, false))
    pos := iff(bMDILong and bMALong, 1, 
         iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & DMI & Moving Average", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMIMA = DMIMA(Length_MA,Length_DMI)
pos = iff(posReversal123 == 1 and posDMIMA == 1 , 1,
	   iff(posReversal123 == -1 and posDMIMA == -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 )