tag:blogger.com,1999:blog-755801403367045457.post9154977200857894763..comments2022-11-21T10:56:54.596+01:00Comments on Notas Técnicas de Onda4.com: Calcular correlaciones para muchos mercadosOnda4http://www.blogger.com/profile/08783898989891880187noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-755801403367045457.post-65426154728133567862021-07-12T16:49:54.073+02:002021-07-12T16:49:54.073+02:00Gracias por la puntualización, queda claro que con...Gracias por la puntualización, queda claro que conviene cambiar el parámetro tal y como dices. SaludosOnda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-36280775391954887182021-07-11T01:30:14.197+02:002021-07-11T01:30:14.197+02:00Buenas Oscar,
Llego un poco tarde a este estupendo...Buenas Oscar,<br />Llego un poco tarde a este estupendo post. Me encanta cuando haces tu magia con Amibroker. Solo un apunte para tus lectores, yo sé que tu ya lo conoces y no lo has mencionado para que estudiemos un poco que no se trata de copiar y pegar... <br />Pearson se usa cuando sus datos se distribuyen normalmente, la variación de los precios tienen una gaussiana platicúrtica y sesgada a la izquierda, lo que significa que tiene colas largas , por tanto usar Pearson NO es apropiado estadísticamente hasta donde yo entiendo la que mejor "hace el trabajo" para el caso de los precios es Spearman y por lo que veo en tu código solo hay que cambiar el parámetro "method"<br />Mil gracias por tus post.rupertachohttps://www.blogger.com/profile/12767476251303773620noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-5250841433956392262019-11-05T13:30:12.843+01:002019-11-05T13:30:12.843+01:00Efectivamente las correlaciones espurias son un pr...Efectivamente las correlaciones espurias son un problema. La única solución que conozco es la experiencia en los mercados. Si Yahoo y el Magro de Cerdo tienen una correlación alta mi experiencia me dice que es espuria, no hay base lógica para que ocurra. Sin embargo yo espero una correlación alta cuando miro los índices entre sí, y también el oro con la plata y el Crudo con el Gasóleo de calefacción. Todos los métodos de cálculo tienen sus defectos. La idea es usarlos con conciencia de ello y filtrar posibles resultados que matemáticamente son correctos pero en la vida real no tienen sentido. <br /><br />Onda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-36828629105971253132019-11-05T13:24:21.905+01:002019-11-05T13:24:21.905+01:00Hola. Efectivamente la matemática dice que pearson...Hola. Efectivamente la matemática dice que pearson se aplica si la distribución de precios es normal. Pero los precios no tienen distribución normal, como mucho lognormal (no se permiten valores negativos) aunque tampoco suele ser el caso exacto pues hay "colas largas" en los precios que hacen que movimientos extremos que en teoría serían poco probables acaben teniendo una probabilidad mayor de lo que sería normal; aún así Pearson es lo que se utiliza por los gestores, financieros, etc. Hay muchos modelos en finanzas que no son exactos pero se utilizan igualmente porque son más sencillos o porque no hay otras alternativas mejores.<br /><br />No es un problema que los spreads tengan precios negativos porque la correlación bien hecha debe hacerse entre retornos y no entre precios. Lo que sí que es un problema son las expiraciones de contratos porque no hay una solución óptima. Lo más sencillo es utilizar los futuros continuos cuando están disponibles, pero sabiendo que los precios hacia atrás no coinciden por haber sido ajustados. <br /><br />En cualquier caso lo importante es hacerse idea de la correlación y no centrase en calcular de forma exacta un número, ya que mañana habrá cambiado por haber cambiado los precios, y depende también del periodo de cálculo, que es arbitrario, así que hablamos de una forma de saber si dos mercados están más o menos acoplados en sus retornos diarios.Onda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-66632401667559699372019-11-04T08:02:08.306+01:002019-11-04T08:02:08.306+01:00Hola de nuevo, Sr. Cagigas.
Se me olvidó plantear...Hola de nuevo, Sr. Cagigas. <br />Se me olvidó plantear dos cuestiones más.<br />1. La comprobación de correlaciones espurias. <br />2. La variación de la correlación con el tiempo.<br /><br />1. La comprobación de correlaciones espurias.<br />Cito apuntes de estadísticas de UCM<br />Al estimar regresiones entre series no estacionarias es muy fácil que la relación sea<br />espuria, ya que basta con que ambas series tengan algo de tendencia para que<br />surja una aparente relación entre ellas<br />• Al suprimir la tendencia, por ejemplo, diferenciando los datos, la relación espuria<br />desaparece<br />Ejemplo, si aumentara la incidencia de melanoma en un caso, cabría esperar un aumento del PNB de 118.981 millones de dólares<br /><br />Para evitar este tipo de problemas por lo que he leído en estudios estadísticos aplican operaciones tales como eliminar la componente de tendencia a la serie. Y posteriormente aplicar la función de correlación. <br />O estudiar la cointegración entre las series. <br /><br />2. Tipos de correlaciones y su variación con el tiempo. <br />Si el tipo de correlación pudiera ser diferente a la lineal (con una gráfica scatter permite analizar visualmente los posibles tipos de correlaciones). <br />La variación de la correlación con el tiempo. Se podría hacer con la función rolling . La cuestión a decidir es cuál sería la ventana más apropiada para aplicar el rolling. Supongo que depende de los datos, si son rentabilidades diarias, semanales o mensuales. <br />EN el caso de datos de retornos mensuales (log_returns.NOMBRE_SUBYACENTE.rolling(12 ().corr ...)<br /><br /> Autores como Louis B. Mendelsohn-Trend Forecasting with Technical Analysis_ Unleashing the Hidden Power of Intermarket Analysis to Beat the Market-Marketplace Books, indican que usar la correlación para medir las relaciones entremercados tiene sus defectos, y apuesta por la aplicación de redes neuronales. Aunque creo que esa idea tiene también un interés comercial al tener un software que hace ese estudio. <br />Nuevamente gracias.<br />Un saludo. <br />aprendiz_e_hijo_agradecido_a_madrehttps://www.blogger.com/profile/13731050707056791596noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-166272131661249122019-11-02T16:43:56.172+01:002019-11-02T16:43:56.172+01:00Buenas, Sr. Cagigas.
Me parece muy interesante est...Buenas, Sr. Cagigas.<br />Me parece muy interesante este blog y este post.<br />Estoy empezando en el trading algorítmico. Estoy aprendiendo mucho de sus libros y posts.<br />Tengo una duda de novato.<br />Creo que haber leído que se debe comprobar que la distribución es normal (con algún test de normalidad) para aplicar el coeficiente de Pearson, ya que en caso contrario, proporciona valores erróneos. En esos casos, es recomendable aplicar otro tipo de método como el de Spearman.<br />También aprovecho para lanzar dos propuestas. <br />El estudio de correlaciones de calendars spreads (es más complicado por ser números negativos en la mayoría de los casos y ya no cuadra por tener expiraciones). Se podría intentar enlazar las calendars de mínima separación entre meses de cada mercado, y luego aplicar las correlaciones entre las calendars spreads del mes vigente con cada mercado.<br />Un estudio de matriz de volatilidad diaria( en unidades monetarias) de cada mercado para saber cómo se mueve cada mercado.<br />Gracias!!!<br />Un saludo. <br /><br />aprendiz_e_hijo_agradecido_a_madrehttps://www.blogger.com/profile/13731050707056791596noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-21762822144558285522018-05-22T09:11:06.811+02:002018-05-22T09:11:06.811+02:00Gracias, son comentarios muy útiles.Gracias, son comentarios muy útiles.Onda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-75710868604960878732018-05-17T13:07:40.491+02:002018-05-17T13:07:40.491+02:00Yo para calcular los últimos 100 días de trading c...Yo para calcular los últimos 100 días de trading cambio la línea <br />corr_df = final_df.corr(method='pearson') por corr_df = final_df.tail(100).corr(method='pearson')<br /><br />Y para a quien le interese ver solo correlaciones superiores a 0.3 debajo de<br />mask[np.triu_indices_from(mask)] = True<br />añado esta linea<br />mask[abs(corr_df)<0.3] = True<br /><br />Gracias por compartir este gran trabajoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-9109635894642017152018-05-15T16:29:21.449+02:002018-05-15T16:29:21.449+02:00La nota está mal. Ya la he quitado. Creo recordar ...La nota está mal. Ya la he quitado. Creo recordar que antes funcionaba de otra manera pero he hecho la prueba y los datos que se exportan tienen como origen el "From" del rango de fechas de Amibroker. Las correlaciones se calculan en Python, con el método de Pearson. Se hace sobre todo el dataframe. Para calcular correlaciones a 100 días lo mejor es exportar solo 100 días. Es más fácil que cambiar el código. Onda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-82744750404836911092018-05-15T15:53:53.054+02:002018-05-15T15:53:53.054+02:00Buenos días, en el código Amibroker hay una nota q...Buenos días, en el código Amibroker hay una nota que dice que "Se exporta lo visible, así que hay que comprimir el gráfico para tener más datos", la pregunta sería con cuántos datos se calcularía la correlación? Supongo que nos interesa la correlación actual (entre 40 y 100 sesiones?), no toda la correlación histórica ya que esta va cambiando con el tiempo.<br /><br />GraciasAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-37226706441950372602018-05-10T15:52:46.711+02:002018-05-10T15:52:46.711+02:00Efectivamente el verde son fuertes correlaciones i...Efectivamente el verde son fuertes correlaciones inversas. Los tickers están en formato IQFeed. En la tabla que está al final de la siguiente página se puede ver a qué mercados se corresponde cada uno: http://www.onda4.com/files/cartera2018.pdfOnda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-85538304097102313642018-05-10T13:01:30.043+02:002018-05-10T13:01:30.043+02:00Interesante. Se entiende que los verdes indican co...Interesante. Se entiende que los verdes indican correlación negativa también significativa, ¿verdad?<br />Por cierto, ¿dónde se encuentra el "decodificador" de tickers, para identificar cada mercado?<br />No logro encontrarlo.<br /><br />Gracias de antemano y adelante!Unknownhttps://www.blogger.com/profile/05783892639431395914noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-7136309937727647082018-05-03T18:59:42.981+02:002018-05-03T18:59:42.981+02:00Gracias Manuel, igualmente un fuerte abrazo y bien...Gracias Manuel, igualmente un fuerte abrazo y bienvenido al nuevo Blog de Notas técnicas para los frikis técnicos del trading :) La matriz de correlaciones son todo parejas, siempre hay que mirar un mercado con otro como bien dices. El principal inconveniente de esto es que si intentas hacerlo en Amibroker no alinea bien las fechas como hace Python (los Dataframes de la librería Pandas son una maravilla para esto). Conozco alguien que lo hizo en Delphi y cuando le metes más de 5 mercados casca. Onda4https://www.blogger.com/profile/08783898989891880187noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-2738635191038000212018-05-03T18:52:23.437+02:002018-05-03T18:52:23.437+02:00Un abrazo ÓscarUn abrazo ÓscarAnonymoushttps://www.blogger.com/profile/13040831418339499853noreply@blogger.comtag:blogger.com,1999:blog-755801403367045457.post-88826716686904676212018-05-03T18:51:57.966+02:002018-05-03T18:51:57.966+02:00Ahora entiendo el por qué de Phython.... Lo que no...Ahora entiendo el por qué de Phython.... Lo que no termino de entender es como calculas un coeficiente entre más de 2 series temporales, pues el coeficiente de Pearson está pensando para dos series de datos. Lo veré en detalle.Anonymoushttps://www.blogger.com/profile/13040831418339499853noreply@blogger.com