Calculo ADX

Expón tus sistemas e indicadores y debátelos con otros usuarios.
Avatar de Usuario
Karachiento
Mensajes: 24
Registrado: 17 Ago 2018 23:03

Calculo ADX

Mensaje por Karachiento » 18 Oct 2018 07:41

Buenas tardes. Tengo un problema que me esta costando mucho resolver, a ver si alguien puede darme una mano.
No consigo de ninguna manera que el calculo teorico del ADX coincida con el que calcula la plataforma MT5.
Lo calculo con scripts y con excel según las formulas y procedimientos teóricos y siempre obtengo resultados distintos a los que da la plataforma (parecidos, pero distintos al fin...).

alguien me da alguna idea de donde puede venir la diferencia entre el calculo teorico y el indicador de MT5?

Saludos y Gracias



Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 09:21

Hola, Karachiento.



No conozco MT5. Espero que alguien que sí conozca MT5 te pueda ayudar.

Tal como lo diseñó Willder, en el ADX se usa una media móvil que no es la media exponencial estándard (MAE - Moving Average Exponential), si no una propia de él: Media Móvil de Wilder. Podria ser que, estés usando tú o el indicador fe MT5, la media móvil exponencial estándard en lugar de la media móvil de Wilder. Si no usais la misma media móvil es normal que os de resultados diferentes.

Otra cosa a considerar es que si el cálculo de las media móviles es con muy pocos datos en el Excel y con mucho en el MT4, aunque uséis las mismas media, puede que los cálculos no coincidan.

En el cálculo del ADX, se usa el dato del ATR. Y no es lo mismo haber calculado el ATR con la media móvil de Wilder (que es tal como Wilder diseñó el ATR) que haberlo calculado con la media móvil exponencial estándard. Eso también es bueno tener en cuenta.

Ojo, que los datos del Excel y los del MT5 coincidan exactamente.



Saludos.


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10339
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Calculo ADX

Mensaje por X-Trader » 18 Oct 2018 10:06

Karachiento, ¿puedes subir al Foro el Excel para analizarlo y ver si veo algún error? Por cierto puedes ver el código del indicador en esta dirección:

https://www.mql5.com/es/code/7

La fórmula aplicada es, en concreto, ADX = SUM ((+DI - (-DI)) / (+DI + (-DI)), N) / N

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10339
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Calculo ADX

Mensaje por X-Trader » 18 Oct 2018 10:10

Por si sirve, aquí tienes un desarrollo detallado de cómo calcularlo:

https://stockcharts.com/school/doku.php ... _index_adx

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."

Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 10:21

X-Trader escribió:
18 Oct 2018 10:06
La fórmula aplicada es, en concreto, ADX = SUM ((+DI - (-DI)) / (+DI + (-DI)), N) / N
¿La función SUM es la media aritmética?
Si es así, creo que la fórmula se desvía de la fórmula original de Wilder, ...


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10339
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Calculo ADX

Mensaje por X-Trader » 18 Oct 2018 10:23

Rafa7 escribió:
18 Oct 2018 10:21
¿La función SUM es media aritmética?
Si es así, creo que la fórmula se desvía de la fórmula original de Wilder, ...
No, es sumatorio ;)

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."

Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 10:27

X-Trader escribió:
18 Oct 2018 10:23
Rafa7 escribió:
18 Oct 2018 10:21
¿La función SUM es media aritmética?
Si es así, creo que la fórmula se desvía de la fórmula original de Wilder, ...
No, es sumatorio ;)

Saludos,
X-Trader
Gracias, X-Trader.



Hummm, me da la sensación de que la fórmula no es conforme al diseño original de Wilder. Cuando tenga más tiempo la pienso mirar en el libro de Wilder.



Saludos.


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 10:53

X-Trader escribió:
18 Oct 2018 10:06
La fórmula aplicada es, en concreto, ADX = SUM ((+DI - (-DI)) / (+DI + (-DI)), N) / N
Gracias, X-Trader.



Efectivamente, SUM es sumatorio, y SUM() / N, es la media aritmética.
La fórmula que indicas es la que se usa para calcular la semilla (valor inicial del ADX), que es la media aritmética de los N valores más antigüos. Pero después de los N términos más antigüos, se aplica esta otra fórmula:

ADX= (ADX(ayer) * 13 + DX(hoy)) / 14

La cual está explicada, en castellano, por uno de nuestros foristas, Duk2:

El indicador ADX: Cómo se calcula y cómo se interpreta en el gráfico

En dicho artículo hay enlace a un Excel donde se emplea la fórmula original de Wilder.



Saludos.


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
Karachiento
Mensajes: 24
Registrado: 17 Ago 2018 23:03

Re: Calculo ADX

Mensaje por Karachiento » 18 Oct 2018 13:43

Buenos dias

Segun MT5, EURUSD 1H, ADX (14) a las 13:00 = 38.7
Segun excel adjunto = 34.08

Datos High, Low y Close extraidos del servidor (mediante script sobre datos del grafico, por las dudas que al exportar haya diferencias)

Deje correr varias iteraciones para darle tiempo al suavizado, ya que tanto el primer valor del TR como el del ADX es la media aritmética y luego cambia para los demás valores
adx.xlsx
ADX Excel
(31.23 KiB) Descargado 22 veces
Saludos y gracias



Avatar de Usuario
Karachiento
Mensajes: 24
Registrado: 17 Ago 2018 23:03

Re: Calculo ADX

Mensaje por Karachiento » 18 Oct 2018 13:47

Gracias Rafa por el link, es una de las paginas que ya habia consultado y sigo sin hacer coincidir los valores con MT5 :(



Avatar de Usuario
Karachiento
Mensajes: 24
Registrado: 17 Ago 2018 23:03

Re: Calculo ADX

Mensaje por Karachiento » 18 Oct 2018 14:34

Adjunto resultados segun el excel de Duck2. Hay diferencias en el suavizado de algunos valores respecto al excel anterior, pero sigue sin coincidir con los valores de la plataforma, por mucho.

Me estoy volviendo loco por que estoy seguro que el error debe ser una tonteria, pero no consigo hacer coincidir los resultados
adx Duk2.xlsx
(30.68 KiB) Descargado 20 veces



Avatar de Usuario
X-Trader
Administrador
Mensajes: 10339
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Calculo ADX

Mensaje por X-Trader » 18 Oct 2018 14:48

Karachiento, si revisas el código en MQ5 verás estas líneas:

Código: Seleccionar todo

      ExtPDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtPDIBuffer[i-1],ExtPDBuffer);
      ExtNDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtNDIBuffer[i-1],ExtNDBuffer);
Es decir, tanto para la media de los +DI como la de los -DI también hay que usar medias exponenciales, ¿has revisado ese punto?

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."

Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 15:19

X-Trader escribió:
18 Oct 2018 14:48
Karachiento, si revisas el código en MQ5 verás estas líneas:

Código: Seleccionar todo

      ExtPDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtPDIBuffer[i-1],ExtPDBuffer);
      ExtNDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtNDIBuffer[i-1],ExtNDBuffer);
Es decir, tanto para la media de los +DI como la de los -DI también hay que usar medias exponenciales, ¿has revisado ese punto?

Saludos,
X-Trader
¿ExponentialMA es la media móvil exponencial estandard? Si es así, ya hemos hallado el problema. Wilder jamás usa la media móvil exponencial estándard en ninguno de sus indicadores (ATR, RSI, ADX, ...) sino que usa su propia media móvil (alisado de Wilder).


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
Rafa7
Mensajes: 4388
Registrado: 17 Dic 2009 21:36

Re: Calculo ADX

Mensaje por Rafa7 » 18 Oct 2018 15:33

Hay que tener en cuenta que el alisado de Wilder de 14 periodos, es asintóticamente equivalente al la EMA(27).
Si se substituye el alisado de Wilder de 14 periodos por la EMA(14), el resultado es brutalmente diferente.


¡Jesús es el Rey de Reyes y el Señor de Señores!

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10339
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Calculo ADX

Mensaje por X-Trader » 18 Oct 2018 15:33

Rafa7 escribió:
18 Oct 2018 15:19
¿ExponentialMA es la media móvil exponencial estandard?
En efecto, así es.

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."


Responder

Volver a “Sistemas y Estrategias de Trading”