Cálculo del retraso de las medias móviles

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Avatar de Usuario
tartarugap
Mensajes: 1408
Registrado: 15 Ago 2016 22:33

Re: Cálculo del retraso de las medias móviles

Mensaje por tartarugap »

No Rafa

Piensa que quieres analisar lo que passo durante el ultimo ano o sea hoy dia 15 de enero termina en la semana 19 de enero (viernes) en 2017 el dia 15 de enero termina en la semana de 17 de Enero o sea 54 semanas atraz.

Si "quieres ver el futuro" veras que hoy 15 de enero termina dia 19 de enero selama y en 2019 15 de enero termina en la semana 18 de enero o sea 54 semanas

No tiene a ver com quando comienca o acaba el ano pero quantas semanas atraz ha echo un ano y casi siempre son 54 semanas
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

tartarugap escribió: Piensa que quieres analisar lo que passo durante el ultimo ano o sea hoy dia 15 de enero termina en la semana 19 de enero (viernes) en 2017 el dia 15 de enero termina en la semana de 17 de Enero o sea 54 semanas atraz.s
Gracias, tartarugap.



Si consideras que un año es de 15 de enero hasta 15 de enero, ya no es un año sino un año y un día. Entonces sí que es más factible que abarquen 54 semanas (52 semanas completas y dos semanas más), aunque ninguno de los dos años sea bisiesto.

Digamos que un año tiene siempre 52 semanas completas y que puede llegar a tener como máximo 54 semanas (52 completas y dos más incompletas).
Y, tal vez, esa es la causa por la que hay mucho capital que tiene en su mira en el Donchian Channel de 54 semanas.
¿Puede ser?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
tartarugap
Mensajes: 1408
Registrado: 15 Ago 2016 22:33

Re: Cálculo del retraso de las medias móviles

Mensaje por tartarugap »

Rafa aun estas a piensar en dias y no en semanas...

Coje una grafica con velas semanales y tendras una idea do que son 54 cierres (la 1 cierre es la semanaque escojiste y el cierre 54 es la semana passada un ano)

Haz un exercicio: escoje al azar un dia del ano passado o dos anos atraz y haz el exercicio que ice y veras que son 54 (no pienses em dias o semanas completas pero quantas semanas son desde el cierre de essa semana asta el cierre de la semana que esta inserida tu dia escojido.

si piensas em dias y quieras acer el mismo exercicio veras que teras que usar 251/252 dias de calendario bursatil (365 dias -2x53 (sabados+domingos) - 9 feriados) o sea ago diferente de los "tipicos" 200 dias....(por esso 200 dias son psicologicos y no matematicos)

Pero en resumen...este tipo de excercicios mentales no llevan a ningures porque lo unico que mides es la variacion del precio del ativo en un ano y no el valor o ciclo.
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

tartarugap escribió: Coje una grafica con velas semanales y tendras una idea do que son 54 cierres (la 1 cierre es la semanaque escojiste y el cierre 54 es la semana passada un ano)
Gracias, tartarugap



Ya te entendí, puesto que dije esto:
Rafa7 escribió: Digamos que un año tiene siempre 52 semanas completas y que puede llegar a tener como máximo 54 semanas (52 completas y dos más incompletas).
Está clarísimo: el ciclo anual está cubierto con 53 o 54 semanas (con 52 semanas el ciclo anual nunca estaría cubierto porque son, exactamente 364 días naturales, o sea, menos de un año natural).

Así que hay mucho capital que toma como referencia el máximo y mínimo del periodo que abarca la semana en curso (aunque no se haya completado) más las 53 semanas (completas) anteriores (total: 54 semanas). ¿Es esto exactamente?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Sres. foristas.



A la EMA(n) hay algo que le ayudaría a tener un lag más próximo al de la media simple (el lag que tendría la EMA si tuviéramos un histórico de infinitas velas) que sería establecer una semilla = SMA de los cierres más antigüos.

Wilder en su EMA (a = 1 / n), primero establecía una semilla (EMA inicial -me refiero a la EMA más antigüa-) con el promedio de los n cierres más antigüos.
Y a partir de ahí, aplicaba la fórmula iterativa EMA = a * C+ (1 - a) * EMA[1], con a = 1 / n.
O sea EMA = (C + (n - 1) * EMA[1]) / n

El equivalente en la EMA(n) estándard (a = 2 / (n + 1)) sería que la EMA inicial sea el promedio de los 2 * n - 1 cierres más antigüos, y a partir de ahí aplicar la fórmula iterativa EMA = (2 * C - (n - 1) * EMA[1]) / (n + 1).

Yo leí algo sobre la semilla de una EMA hace muchos años pero no he encontrado nada al respecto.

Si sobre el tema de la semilla de la EMA alguien sabe algo, por favor, que nos lo comparta.




Gracias.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

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

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Sres. foristas,



Esta Web sugiere que la EMA(n) tenga como semilla la media simple de los n cierres más antigüos:

http://stockcharts.com/school/doku.php? ... g_averages

Lo de la semilla es importante porque no tenemos un número infinito de velas en nuestro histórico.

¿Qué semilla utilizan los programas para calcular la EMA? ¿La que indica esta página web? ¿El cierre más antigüo?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Average
Mensajes: 50
Registrado: 05 Mar 2008 10:24

Re: Cálculo del retraso de las medias móviles

Mensaje por Average »

Rafa7 escribió:Sres. foristas,



Esta Web sugiere que la EMA(n) tenga como semilla la media simple de los n cierres más antigüos:

http://stockcharts.com/school/doku.php? ... g_averages

Lo de la semilla es importante porque no tenemos un número infinito de velas en nuestro histórico.

¿Qué semilla utilizan los programas para calcular la EMA? ¿La que indica esta página web? ¿El cierre más antigüo?



Saludos.

Olvidate de Wilder
Kaufman es tu amigo.

(con un numero grande de velas la semila es irrelevante.)
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Average escribió: Olvidate de Wilder
Kaufman es tu amigo.

(con un numero grande de velas la semila es irrelevante.)
Gracias, Average.



La media de Kaufman no me sirve porque lo que requiero es una media de periodo n que pondere más los valores más recientes, y que tenga el mismo lag que una SMA(m), y la media de Kaufman lo que busca es disminuir lag. Yo no quiero menos lag. Hay un montón de medias que reducen lag, y no me interesa ninguna de ellas.

Si crees que la media que hay manera de que la media de Kaufman sirva a mi propósito, por favor, coméntamelo.

Desde luego que cuanto más histórico uno tenga más irrelevante es la semilla.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Average
Mensajes: 50
Registrado: 05 Mar 2008 10:24

Re: Cálculo del retraso de las medias móviles

Mensaje por Average »

Ah, que curioso.

Por dar una idea: Que tal coger una de esas medias que disminuyen lag y proyectarla hacia adelante tantas barras como lag desees.

Estoy de acuerdo contigo en que el lag da perspectiva.

Saludos.
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Average escribió: Por dar una idea: Que tal coger una de esas medias que disminuyen lag y proyectarla hacia adelante tantas barras como lag desees.
Gracias, Average.



¿No será al revés? Si una media tiene menos lag y quiero aumentar su lag, tendría que proyectarla hacia atrás.
La otra opción es alargar el período de la media. (Qué es lo que me planteo inicialmente).
Es más interesante lo segundo porque seguro que será mas suave. Vamos, que entre dos medias con el mismo lag, es más interesante la media con mayor suavizado.

Average, el problema está en saber calcular el lag. No me es suficiente saber que una media tiene mas lag o menos lag, necesito cuantificarlo, tanto si quiero proyectar hacia atrás o como si quiero alargar el periodo de la media.

En cuanto a la exponencial de Wilder de n periodos, es de poco interés ya que es exactamente una EMA estándar de m periodos, con m = 2 * n - 1. Por ejemplo, el ATR(10) lo calculas como lo hacía Wilder, con su exponencial, alternativamente puedes calcular ATR(19) con la exponencial estándar, ya que dará exactamente el mismo cálculo si partes de la misma semilla.

Tienes razón en que si tenemos mucho histórico la semilla no es importante. Si calculamos ATR(10) con la exponencial de Wilder, tomando como semilla la media simple de los 10 cierres más antiguos, y calculamos ATR(19) con la exponencial estándar, tomando como semilla la media simple de los 19 cierres más antiguos, las semillas son diferentes (SMA(10) <> SMA(19)), pero si tenemos mucho histórico los dos cálculos convergerán aunque las semillas sean diferentes.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Sres. foristas,



Aquí os paso el código, para ProRealTime de la función EMA, media móvil exponencial de parámetro lag. La media exponencial convergerá en el lag indicado.
El parámetro lag es el número de barra de retraso y no necesariamente tiene que se un número entero. Por ejemplo el lag podría ser de 17,678 velas.

Código: Seleccionar todo

//Programado por Rafa7, forista de x-trader.net
//parámetros:lag (número de velas de retraso que no necesariamente ha de ser entero)
//EMA(lag) retorna una media móvil exponencial cuyo lag converge al indicado por el parámetro lag.
if i = 0 then
	EMA = customclose
	i = 1
	j = round(2 * lag + 1) 
elsif i < j then
	i = i + 1 
	EMA = average[i](customclose)
else
	EMA = (customclose + lag * EMA) / (1 + lag)
endif
RETURN EMA
Ojo, esta EMA no es la estándar sino la correspondiente al número de velas de retraso que uno desee.
Si uno quiere obtener la EMA estándar de n periodos, con este indicador, sería EMA((n - 1) / 2). Ya que, como hemos demostrado en este hilo, el lag de la EMA estándar de n periodos converge en el mismo lag que la media móvil simple, o sea, (n - 1) / 2. Por ejemplo, si uno quiere obtener con este indicador la EMA estándar de 10 períodos, con este indicador sería EMA ((10 - 1) / 2, o sea, EMA(4,5).

La instrucción "EMA = average(customclose)" es la que calcula la semilla.
"round(2 * lag + 1) " es el número de términos que se promedian para la semilla redondeado a número entero.
"EMA = (customclose + lag * EMA) / (1 + lag)" es el cálculo iterativo de la EMA.

La semilla de esta EMA es la media simple de los 2 * lag + 1 precios más antiguos. De esta manera cuanto más lag pidamos a la exponencial, la semilla tendrá más términos en su media. Ya que cuanto mayor sea el lag más importancia tiene la semilla.
En el caso de una EMA(n) estándar (o sea con lag = (n - 1) / 2), la semilla coincide con la media simple de los n precios más antiguos.

Usar el indicador que os he compartido requiere un cambio de chip, ya que uno ya no debe pensar que si EMA estándar, que si EMA de Wilder, etc ..., sino en la EMA con la que obtengas un retraso de velas que te interese. Cuanto menos lag, la media será más quebrada y cuanto más lag la media será más suave.

He dicho que este indicador tiene un lag que converge en el parámetro lag. Esto quiere decir que si tuviéramos un número infinito de velas, este indicador tiene lag exactamente el del parámetro. Pero como no tenemos un número infinito de velas en el histórico, el lag real del indicador siempre será algo menor. La EMA estándar, en la práctica tiene menos lag que la SMA porque no tenemos un número infinito de velas. Pero si tuviéramos un número infinito de velas, la EMA estándar tendría, exactamente, el mismo lag que la SMA.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

Sres. foristas,



Voy a explicar el por qué de la fórmula EMA = (C + lag * EMA[1]) / (1 + lag).
En este hilo demostramos que el lag de una exponencial EMA = a * C + (1 - a) * EMA[1], es (1 - a) / a.
Por tanto:

lag = (1 - a) / a
a * lag = 1 - a
a = 1 / (1 + lag)
1 - a = 1 - 1 / (1 + lag) = (1 + lag - 1) / (1 + lag) = lag / (1 + lag)

Entonces:
EMA = a * C + (1 - a) * EMA[1] = 1 /(1 + lag) * C + lag / (1 + lag) * EMA[1] = (C + lag * EMA[1]) / (1 + lag).

Por tanto:
EMA = (C + lag * EMA[1]) / (1 + lag).

Voy a explicar porque tomamos como round(2 * lag + 1), el número de términos para la semilla.
El planteamiento es que la semilla sea una media simple de los términos más antigüos cuyo lag coincida con el de la exponencial, una SMA(n) tiene lag (n - 1) / 2:
lag = (1 - a) / a = (n - 1) / 2
2 * lag = n - 1
n = 2 * lag + 1
Y como el lag es decimal en este indicador (no necesariamente entero), lo redondeamos a entero:
n = round(2 * lag + 1)



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por X-Trader »

Retomando el tema del hilo, veo que Rafa7 afirma que:
Rafa7 escribió:(...) No era mi intención reducir el lag porque el lag da perspectiva. (Veo el lag de forma positiva).
Sólo quería investigar como calcular n y m, tales que Lag(EMA(n)) = Lag(SMA(n)), para substituir una SMA por una EMA con el mismo lag aunque m sea mayor que n. Pero me llevo la sorpresa de que con un histórico de infinitas velas, las EMA's y las SMA's tienen exactamente el mismo Lag, y por lo tanto m = n.
Esta conclusión a la que llegas no me parece muy convincente, posiblemente por la forma en que expresas la EMA. En Estadística normalmente la planteamos de esta manera:

EMA = a*Precio(t)+(1-a)*EMA(t-1)

Ahí tienes dos temas que tener en cuenta:

- El valor de a puede calcularse mediante la fórmula que se plantea en algunos libros de Análisis Técnico pero también lo puedes imponer directamente tú. Si quieres que el peso del presente sea mayor que el del pasado puedes poner a=0.80, mientras que si quieres que el pasado tenga más peso entonces pones a=0.20 por ejemplo. En la práctica lo que se hace es seleccionar aquel a cuyo Error Cuadrático Medio sea menor en el pasado (dicho de otro modo, el que se desvíe menos en las proyecciones realizadas con respecto al valor real).

- Asimismo el primer valor para Precio(t) suele ser el precio de la serie pero en algunos casos también se pueden dejar fuera algunos valores de la serie y calcular su media simple para usarlo como primer dato de la EMA y suavizar un poco su comportamiento inicial.

En cualquier caso, todo esto lógicamente afecta al resultado y lo hace bastante diferente de una SMA por lo que dudo mucho de que en el límite el lag de ambas sea igual. Ten en cuenta que la EMA viene parametrizada por dos variables (punto de inicio y valor de a) y eso produce múltiples EMAs mientras que SMA solo hay una.

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: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

X-Trader escribió: - El valor de a puede calcularse mediante la fórmula que se plantea en algunos libros de Análisis Técnico pero también lo puedes imponer directamente tú. Si quieres que el peso del presente sea mayor que el del pasado puedes poner a=0.80, mientras que si quieres que el pasado tenga más peso entonces pones a=0.20 por ejemplo. En la práctica lo que se hace es seleccionar aquel a cuyo Error Cuadrático Medio sea menor en el pasado (dicho de otro modo, el que se desvíe menos en las proyecciones realizadas con respecto al valor real).
Muchas gracias, profe.



Intuyo lo que quieres decir, pero no acabo de entenderlo bien. Una EMA, ¿con que he de compararla? ¿con el precio o con el precio retrasado a n velas, n = lag?

Vamos que si en la EMA = a * C + (1 - a) * EMA[1], tengo que elegir un "a", entre cero y uno, cuyo error quadrático sea el menor posible respecto al precio, es fácil: tomando a = 1. Pero si tomo a = 1,entonces EMA = C, para toda i.

No entiendo a que te refieres.

¿Qué es exactamente lo que tengo que minimizar por error cuadrático?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Cálculo del retraso de las medias móviles

Mensaje por Rafa7 »

X-Trader escribió: En cualquier caso, todo esto lógicamente afecta al resultado y lo hace bastante diferente de una SMA por lo que dudo mucho de que en el límite el lag de ambas sea igual.
Ok, X-Trader.



Revisaré a fondo el cálculo de la EMA, y, en particular, el cálculo de la EMA estándar. Tal vez he cometido algún error aritmético. A mí también me cuesta creer que el lag de la EMA estándar converja al lag de la SMA.



Gracias.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”