
La estrategia se basa en el indicador DMI para determinar la dirección de la tendencia de las acciones mediante la supervisión de la intersección de +DI y -DI, en combinación con el indicador ADX para identificar la tendencia fuerte y débil, lo que permite el seguimiento de la tendencia.
La estrategia utiliza dos componentes del indicador DMI: +DI y -DI. +DI mide el movimiento ascendente, +DI sube y baja. -DI indica que el movimiento ascendente de los compradores se ha fortalecido. -DI mide el movimiento descendente, -DI baja y baja. +DI indica que el movimiento descendente de los vendedores se ha fortalecido.
Cuando el +DI sobre el -DI, indica la formación de una tendencia alcista, en este caso la estrategia es una entrada múltiple. Después de la entrada, el stop loss móvil lineal sigue el precio más alto en una cierta proporción. Cuando el precio se desvía, el precio de parada baja con él, y en cierta medida bloquea las ganancias anteriores.
Cuando el -DI desciende por encima del +DI, se sustituye la tendencia a la baja, en este caso la estrategia se estabiliza. Se puede identificar la fuerza y la debilidad de la tendencia a través del indicador ADX, y cuanto más alto es el ADX, más evidente es la tendencia en el precio de la acción. Por lo tanto, la estrategia utiliza el ADX como indicador auxiliar de juicio y solo entra en juego cuando el ADX está dentro de un rango.
En general, la estrategia captura los puntos de inflexión de la tendencia de los precios de las acciones y permite el seguimiento de la tendencia de las medias móviles.
La estrategia tiene tres ventajas principales:
El uso de indicadores DMI para determinar la dirección de la tendencia del precio de las acciones es preciso y confiable. El DMI es más preciso que los indicadores como el promedio móvil simple para determinar la reversión de la tendencia.
Aplicar el indicador ADX para identificar las fortalezas y las debilidades de las tendencias, evitar el comercio frecuente en situaciones de crisis y fortalecer la estrategia.
Un mecanismo de parada móvil lineal, capaz de ajustar dinámicamente la posición de parada, detener la pérdida anticipada cuando la tendencia se invierte. Y bloquear parte de las ganancias, controlar eficazmente el riesgo.
Las reglas de la estrategia son sencillas, claras, fáciles de entender e implementar, adecuadas para el comercio cuantitativo.
Los principales riesgos de esta estrategia son:
La probabilidad de que el indicador DMI falle en algunos mercados especiales. El DMI no se aplica a todos los mercados y es fácil generar señales erróneas cuando la tendencia no es clara.
El riesgo de que el precio de las acciones salte por las nubes y caiga más allá del punto de parada es menor si se mantiene un cierto margen de amortización.
El riesgo de que los parámetros de ADX se ajusten incorrectamente. Los parámetros de ADX afectan directamente a los resultados de la elección de la estrategia, y si se ajustan demasiado grandes o demasiado pequeños, afectan el rendimiento.
Debido a que se utiliza un método de detención de movimiento lineal, el riesgo de ser detenido fácilmente en la salida rápida de la subida. En este caso, los parámetros de seguimiento de la detención se pueden ajustar según las circunstancias.
Se puede reducir aún más el riesgo a través de ajustes de parámetros, paradas estrictas y un marco de procedimientos optimizado.
La estrategia puede ser optimizada en los siguientes aspectos:
Utiliza otros indicadores como el MACD, KDJ para tomar decisiones auxiliares y mejorar la estabilidad de la estrategia.
Prueba diferentes métodos de deterioro, como el deterioro de movimiento de curva, el deterioro de movimiento de tiempo, etc.
Incrementar el mecanismo de gestión de posiciones, incrementar gradualmente las posiciones después de determinar la dirección de la tendencia y aumentar la tasa de ganancias.
La combinación de métodos como el factor de alta frecuencia y el aprendizaje automático optimiza dinámicamente los parámetros de DMI y ADX para que las estrategias sean más inteligentes.
El aumento de módulos de control de viento programados, el uso de métodos como el presupuesto de riesgos y el control estricto de la retirada máxima.
La cooperación a través de múltiples medios puede mejorar la eficiencia, la estabilidad y la seguridad de las estrategias.
La estrategia general de funcionamiento de la lógica es clara y fácil de entender, el uso de los indicadores DMI para determinar la dirección de la tendencia del precio de las acciones, los indicadores ADX auxiliar a determinar la fuerza de la tendencia, el lineal móvil de parada de pérdidas de manera eficaz para controlar el riesgo. El rendimiento de la estrategia es relativamente estable, pero todavía hay que prevenir cierto riesgo.
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
//1.0 - 240202 @caddjax
strategy(title = "+DI Crossover", overlay=false)
//DMI + ADX Chart w/ overlay
// © jrregencia
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(6, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
adxmax = input.int(50, title="ADX Max Buying Area", minval=1, maxval=100)
adxmin = input.int(0, title="ADX Min Buying Area", minval=0, maxval=99)
//DI cross alert
DIPcross = ta.crossover(plus, minus) ? plus : na
plotshape(DIPcross, style = shape.cross , color=color.white, location=location.absolute)
plot(adx, color=color.rgb(255, 238, 0, 23), title="ADX", linewidth=2)
p1 = plot(plus, color=color.rgb(16, 137, 0, 31), title="+DI", linewidth=1)
p2 = plot(minus, color=color.rgb(143, 82, 255, 25), title="-DI", linewidth=1)
adxmaxl = hline(adxmax, title="ADX MaxLine", color=color.silver, linestyle=hline.style_solid)
adxminl = hline(adxmin, title="ADX MinLine", color=color.silver, linestyle=hline.style_solid)
fill(p1, p2, title="Cloud Fill", color = plus > minus ? color.teal : color.red, transp=50)
fill(adxmaxl, adxminl, title="ADX Fill", color=color.silver, transp=90)
// Configure trail stop level with input options (optional)
longTrailPerc = input.float(3, title="Trail Long Loss (%)",
minval=0.0, step=0.1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
// Determine entry condition
enterLong = ta.crossover(plus, minus) ? plus : na
longStopPrice := if strategy.position_size > 0
stopValue = high[1] * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
// Submit entry orders
if enterLong
strategy.entry("EL", strategy.long)
// Submit exit orders for trail stop loss price
if strategy.position_size > 0
strategy.exit("XL TRL STP", stop=longStopPrice)