Estrategia de oscilador dinámico


Fecha de creación: 2023-09-14 16:15:42 Última modificación: 2023-09-14 16:15:42
Copiar: 3 Número de Visitas: 671
1
Seguir
1617
Seguidores

Principio de estrategia

La estrategia se basa en el indicador de oscilación dinámica (DMI) para negociar. El DMI determina la tendencia calculando el porcentaje de desviación del precio con respecto a la media de diferentes longitudes.

La lógica de la transacción es la siguiente:

  1. Calcula el porcentaje de desviación del precio con respecto a la media de largo período (por ejemplo, 200 días), como el 1er DMI

  2. Calcula el porcentaje de desviación del precio respecto a la media periódica (por ejemplo, 50 días) como el segundo DMI

  3. Calcula el porcentaje de desviación de los precios con respecto a la media de corto período (por ejemplo, 20 días) como 3 DMI

  4. Cuando el 3er DMI es más bajo que el 1er DMI es bajista; cuando el 3er DMI es más bajo que el 2er DMI es bajista

  5. Generación de señales de transacción según las relaciones DMI

El DMI determina el punto de inflexión de la tendencia del mercado comparando dinámicamente la intensidad relativa de los diferentes ciclos de la línea media. La optimización de los parámetros se puede adaptar a los diferentes ciclos.

Ventajas estratégicas

  • DMI, combinado con un juicio de varios ciclos, es más amplio

  • Comparar la intensidad relativa y evitar el juicio numérico absoluto

  • Parámetros de ciclo flexibles para adaptarse al mercado

Riesgo estratégico

  • DMI tiene un poco de atraso y podría perder el turno

  • Necesidad de ajustar cuidadosamente los parámetros de ciclo

  • Puede generar señales no válidas varias veces

Resumir

La estrategia de DMI juzga el giro a través de la relación de fuerza y debilidad de un mayor número de ciclos de línea media. Se puede optimizar el parámetro para adaptarse a diferentes entornos de mercado. Sin embargo, existe un retraso y se necesita la ayuda de otros indicadores para juzgar.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/06/2018
// The related article is copyrighted materialfrom Stocks & Commodities Dec 2009
// My strategy modification.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="CMOaDisparity Index Backtest")
LengthFirst = input(200, minval=1)
LengthSecond = input(50, minval=1)
LengthThird = input(20, minval=1)
ShowFirst = input(type=bool, defval=true)
ShowSecond = input(type=bool, defval=true)
ShowThird = input(type=bool, defval=true)
reverse = input(false, title="Trade reverse")
xEMAFirst = ema(close,LengthFirst)
xEMASecond  = ema(close,LengthSecond)
xEMAThird  = ema(close,LengthThird)
xResFirst = 100 * (close - xEMAFirst) / close
xResSecond = 100 * (close - xEMASecond) / close
xResThird = 100 * (close - xEMAThird) / close
pos = iff(xResThird > xResFirst, -1,
       iff(xResThird < xResSecond, 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(ShowFirst ? xResFirst : na, color=red, title="DIX 1")
plot(ShowSecond ? xResSecond : na, color=blue, title="DIX 2")
plot(ShowThird ? xResThird : na, color=green, title="DIX 3")