Estrategia de trading basada en DMI y media móvil


Fecha de creación: 2023-09-28 12:39:44 Última modificación: 2023-09-28 12:39:44
Copiar: 2 Número de Visitas: 910
1
Seguir
1617
Seguidores

Descripción general

La estrategia identifica la dirección de la tendencia en combinación con el indicador de tendencia DMI y el promedio móvil para emitir una señal de compra y venta. La estrategia genera una señal de negociación cuando el DMI muestra que la oferta entra en un estado de tendencia y el promedio móvil confirma la dirección de la tendencia.

Principio de estrategia

La estrategia se basa principalmente en dos indicadores:

  1. DMI incluye DMI+ y DMI-, para identificar la presencia y dirección de una tendencia. Cuando DMI+ es superior a DMI-, indica una tendencia alcista; cuando DMI- es superior a DMI+, indica una tendencia descendente.

  2. Los promedios móviles, generalmente de 15 a 50 días, se utilizan para determinar la dirección de la tendencia de los precios. Cuando los precios están por encima (o por debajo) de los promedios móviles, se indica una tendencia alcista (o descendente).

La estrategia calcula primero los medios móviles DMI+, DMI- y ≠. Si el DMI muestra el estado de la tendencia ((DMI+ es superior a DMI- o DMI- es superior a DMI+), al mismo tiempo que el promedio móvil también confirma la dirección de la tendencia, se genera una señal de negociación. En concreto:

  • Hacer más cuando el DMI+ está sobre el DMI- y el precio está sobre el promedio móvil;
  • Cuando el DMI- lleva el DMI+ y el precio lleva la media móvil debajo, deje de lado.

La estrategia también incluye la opción de entrada invertida. Una vez activada la inversión, se invierten las señales de más y de menos.

Análisis de las ventajas

Esta estrategia, que combina indicadores de tendencia y indicadores de tendencia, puede mejorar la fiabilidad de la señal, aprovechando las ventajas de ambos indicadores para complementarlos.

La ventaja de la DMI es la existencia de una tendencia que se puede identificar rápidamente. La media móvil puede filtrar parte del ruido y confirmar la dirección de la tendencia.

Además, la estrategia incluye la opción de invertir, que permite optar por un comercio de avance o desaceleración según las necesidades reales. Esto aumenta la flexibilidad de la estrategia.

Análisis de riesgos

El principal riesgo de esta estrategia es:

  1. En el cambio de tendencia, puede haber una señal errónea, lo que lleva a pérdidas. Esto requiere ajustar los parámetros o establecer un stop loss para controlar el riesgo.

  2. La formación de tendencias requiere un cierto tiempo, durante el cual la estrategia es susceptible a la interferencia de las fluctuaciones de precios, lo que genera señales erróneas. Para filtrar este ruido, se puede ajustar adecuadamente el DMI y el plazo de los parámetros de las medias móviles.

  3. La inversión inversa tiene el riesgo de aumentar las pérdidas adversas. Cuando se activa la inversión, es necesario controlar el porcentaje de pérdidas individuales o usar el stop loss móvil para bloquear parte de las ganancias.

  4. Los parámetros necesitan ser re-optimizados para diferentes variedades y diferentes períodos de tiempo. La replicación directa de los parámetros en otras variedades o períodos de tiempo puede ser ineficaz.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba diferentes parámetros de ciclo de las medias móviles para encontrar la combinación de parámetros óptima para la conversión de tendencias de unión.

  2. Parámetros del ciclo de suavizado del DMI para la prueba, el ruido de reversión de corta duración que aparece en la tendencia de filtración.

  3. Evaluar las diferencias entre el efecto de la opción de inversión habilitada y el de la operación por defecto en la retrospectiva histórica y elegir la opción preferida.

  4. La inclusión de estrategias de stop loss, como stop loss móvil, stop loss de tiempo, stop loss de ruptura, etc., para controlar las pérdidas individuales.

  5. Evaluar el efecto de la optimización en diferentes variedades y parámetros de ciclo, combinando los parámetros de optimización.

  6. El filtro en combinación con otros indicadores, como el RSI fuerte y débil, evita que los puntos extremos locales emitan señales erróneas.

Resumir

La estrategia combina las ventajas de los indicadores DMI y Moving Averages, para entrar en juego antes de que se forme una tendencia y evitar ser atrapado en situaciones de crisis. La opción de negociación inversa también aumenta la flexibilidad de la estrategia. La estabilidad de la estrategia se puede mejorar aún más a través de la optimización de parámetros, el stop loss y su uso en combinación con otros indicadores.

Código Fuente de la Estrategia
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/03/2017
// The related article is copyrighted material from Stocks & Commodities Aug 2009 
//
// 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="Combining DMI And Moving Average For A EUR/USD Trading System")
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
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)))
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(nPDI, color=green, title="DMI Plus")
plot(nNDI, color=red, title="DMI Minus")