Rankia España Rankia Argentina Rankia Brasil Rankia Chile Rankia Colombia Rankia Czechia Rankia Deutschland Rankia France Rankia Indonesia Rankia Italia Rankia Magyarország Rankia México Rankia Netherlands Rankia Perú Rankia Polska Rankia Portugal Rankia Romania Rankia Türkiye Rankia United Kingdom Rankia USA
Acceder

Análisis de frecuencias de las variaciones en las cotizaciones bursátiles (I)

Hace ya bastantes meses elaboré un programa para procesar las series bursátiles. Naturalmente era un programa a medida que hacía tan solo lo que yo le pedía pero con el que quise mostrar las posibilidades de la programación personalizada para elaborar nuestras propias rutinas de análisis. (Ver: Seguimiento de valores e históricos III ). La arquitectura básica del kit de análisis se basaba en unas macros programadas con imacros que primero nos descargaban los datos en bruto en nuestra computadora. Luego, una vez allí, una serie de scripts programados en Shell Bash, Python y gnuplot procesaban los datos y entregaban como resultado las tablas de datos y los gráficos deseados. El sistema era rígido pues no se trataba más que de un ejemplo para, a partir de él, ir ampliando sus posibilidades. Y eso hice en Stop Loss, volatilidad y ATR donde añadí la capacidad de calcular el susodicho ATR en el programa e incluso de representar gráficamente su variación a lo largo del tiempo.

En la presente entrada dispongo un nuevo añadido. Un análisis de frecuencias de subidas y bajadas bursátiles. Por un lado, vamos a ver cómo se refleja una tendencia en un análisis de frecuencia. Veremos también cómo se perfilan los histogramas para diferentes intervalos temporales. Qué formas tienen y qué es lo que nos pueden decir los números. El proyecto abarcará probablemente varios posts dada su extensión.

Para empezar aquí tenéis la última versión modificada del script en Python. Los añadidos no son muchos como veréis y a los que os guste echarle un vistazo al código os será de utilidad. Mi deseo es ser transparente en todo lo que hago y modifico y por eso lo pongo a vuestra disposición:  mm20c55c200ATR_count.py Pero pasemos a detallar sus nuevas prestaciones.

El primer intervalo de tiempo escogido es de 5 años, desde el 2005 hasta el presente. ¿Porqué 5 años? Pues sencillamente porque aproximadamente hace 5 años la bolsa española rondaba los 10.000 puntos, exactamente igual que ahora lo que significa que tras 5 años de subidas y bajadas no ha habido grandes cambios en el valor del índice o lo que es lo mismo para un plazo de 5 años el Ibex presenta tendencia lateral. Fijémonos en el gráfico:

Chart

Como vemos empieza y termina en el mismo punto. Estamos como hace 5 años, ni más ni menos. En tendencia lateral en el largo plazo.

 

Dado que el plazo es muy grande, unas 1200 sesiones, podremos estar seguros que los valores obtenidos obedecen a la ley de los grandes números. Esto es, nos tiene que salir una función Gausiana muy definida. ¿Será así?

Para ser exactos, nuestro programa empieza el conteo desde el día 14 de octubre de 2005 día en que la bolsa cerró en los 10629,3 puntos y termina el 22 de julio de 2010 cuando cerró a 10302,9 puntos. Es decir que en el intervalo de conteo la bolsa ha descendido apenas poco más 300 puntos. No es gran cosa si tenemos en cuenta que hay unos 5 años de diferencia entre ambas fechas.

El programa calcula la variación en la cotización a lo largo del intradía, precio de cierre - precio de apertura, y la variación diaria real de la cotización, precio de cierre - precio de cierre del día anterior. Esta última sí tiene en cuenta los saltos o huecos de apertura. El programa efectúa estas sencillas restas para cada sesión. Luego con todos esos valores calcula tres porcentajes para cada valor o índice. El porcentaje de días en que la cotización sube, el porcentaje en que los precios bajan y el porcentaje en el que mantienen su precio, variación nula, es decir, en el que el valor final coincide con el inicial.

El programa imprime por pantalla los resultados pero también genera un fichero, "results.dat", donde quedan registradas algunas de las variables que considero más importantes para así poder volver a ellos cuando nos plazca. Como digimos, con 1200 sesiones de registros es previsible que los resultados obedezcan bien la ley de los grandes números. Los que me habéis seguido sabréis que confeccioné ya hace bastantes meses una lista de valores a seguir en Seguimiento de valores e históricos II justificando mis razones. Puede que en mi lista consideréis que sobren algunos valores y que falten otros. Es posible pero en cualquier caso es una lista con diversas empresas del Ibex y con algunas europeas y americanas bien conocidas. Además contiene unos cuantos índices importantes desde el propio Ibex al DowJones Industrial. Tengo pendiente de hacer unas listas de valores mucho más completas y extensas que serían recogidas por nuevas macros. Por falta de tiempo eso es algo a lo que aun no me he dedicado y para lo que nos ocupa esta lista es suficientemente variada e interesante.

En la siguiente tabla de Excel ( conteos.xls ) os paso los resultados iniciales del programa. La primera columna muestra las acciones en minúsculas y los índices en mayúsculas. La segunda es el porcentaje de ATR14 respecto al precio de la acción de los últimos días. A mayor sea el valor mayor la volatilidad. Para más información sobre éste indicador revisar la entrada que hice sobre la volatilidad. Las siguientes columnas se dividen en dos bloques de 3. El primer bloque muestra los porcentajes de subidas y bajadas en el intradía y el segundo bloque tiene en cuenta los huecos.

Si observamos los resultados vemos que en la gran mayoría de casos los porcentajes de subidas y de bajadas rondan el 50% y que los porcentajes de variación nula rondan el 1 al 2 % en el caso de las acciones y el 0% en el de los índices. Todo parece responder a la lógica del azar. Resulta lógico que la cantidad de días que los valores no varían sea bajo ya que es un hecho improbable. Dado que los índices son, más líquidos por decirlo así, casi nunca terminan con el mismo precio que empezaronla sesión. En cambio valores grandes de ese porcentaje pueden indicar una falta de liquidez del valor como es el caso de CAF con un 12,6% o Aguas de Barcelona con un 8,5%. En estos valores hay menos variación en el intradía por lo que las probabilidades de que su cierre coincida con el cierre del día anterior son mayores.

Ahora centrémonos en el Ibex. Aquí tenéis la tabla de cotizaciones e indicadores del Ibex calculados por el programa en formato de texto ( ibex_diaria_1.dat ). Recordemos que hemos dicho que en dicho intervalo la valoración del índice apenas sí ha variado, de hecho ha descendido en unos 300 puntos. Si miramos los porcentajes en cambio encontramos que el 53,5% de los días durante dicho intervalo la bolsa ha subido. Eso significa lo que ya venimos diciendo en entradas anteriores y que queda definitivamente corroborado por los números y es que la bolsa baja menos días pero baja más fuerte. Es algo que ya se intuye viendo el gráfico pero que quería demostrarlo numéricamente ya que a veces las cosas no son como nos dice la intuición.

Un primer dato interesante es que durante dicho periodo, el 83% de veces el sentido de la variación verdadera, incluyendo el gap, coincide con la el sentido de la variación intradía. Esto es relevante por cuanto demuestra que el gap no tiene mucha influencia en el índice. Esto no tiene porque ser así en las acciones donde probablemente tengan más peso.

Pero para analizar más a fondo la información nos puede ser muy útil realizar histogramas. Los histogramas usualmente son unos gráficos de barras en los que cada barra representa un intervalo, bin, y su altura la frecuencia de ocurrencia de dicho intervalo. Como ya hemos dicho antes, la distribución de frecuencias esperamos que sea aproximadamente gausiana dado que estamos computando sobre 1200 sesiones, un valor suficientemente grande como para que el peso de la estadística aleatoria se imponga. Veamos:

Lo que aquí vemos es que si bien el histograma refleja una cuasi gausiana centrada en el 0 esto no es así exactamente. Fijémonos en las diferencias. De entrada el máximo está desplazado hacia la zona positiva lo que confirma el dato de que en dicho intervalo ha habido más subidas que bajadas. Por otra parte las colas no son iguales. Si nos fijamos bien la cola de las bajadas fuertes es más grande que la de las subidas fuertes lo que nos confirma que las bajadas son minoría pero que suman más que las subidas. Nuevamente demostramos al anterior enunciado en negrita.

 

Análisis con el mercado en tendencia

Todos estos resultados, como ya he mos dicho, son en un mercado de tendencia lateral a 5 años vista. Un plazo enorme. Pero ¿que ocurre con tendencias de más corto plazo? También me lo he preguntado y también lo he calculado. Veamos el histograma del Ibex durante la fuerte tendencia alcista desde mínimos de marzo. El periodo de estudio es del 9 de marzo de 2009 al 6 de enero de 2010.

Este histograma presenta un perfil mucho menos definido. Como vemos se ajusta mucho peor a una gausiana algo lógico ya que ahora tan solo contamos con algo más de 200 sesiones mientras que el anterior histograma contaba sobre 1200. Otra diferencia destacable es que ahora la gausiana está claramente centrada en el lado positivo de la variación verdadera de un dia a otro. Alrededor de los 25 puntos. El porcentaje de días alcistas es ahora del 61% y el de días bajistas del 39%. En este caso ambas colas están mucho más igualadas que en el caso anterior.

Ahora veamos qué ocurre con el histograma de la tendencia bajista reciente. Esta tendencia, hasta la fecha, abarca muy pocas sesiones. La física de los desplomes nos dice que estos son siempre más breves pero más catastróficos. Es decir que existe una asimetría entre tendencias alcistas y bajistas. Algún día de estos entraré en detalle en estos aspectos y su posible análisis econofísico.

Dado que las sesiones bajistas suelen ser más acusadas que las alcistas basta una leve descompensación en favor de las sesiones bajistas para que ello se refleje en una fuerte tendencia a la baja. De hecho, en dicho período hay un 53% de sesiones bajistas y un 47% de alcistas nada que ver con los porcentajes anteriores, como vemos. La cola bajista es mucho mas gruesa como se ve, destaca también una jornada alcista enorme, un suceso fuera de lo corriente. Hay que tener en cuenta que a veces, estas cosas ocurren, probablemente en este caso fue un cierre de cortos, un pánico comprador, son raros, mucho más que los pánicos vendedores pero pueden darse en periodos de fuertes bajadas en forma de rebotes repentinos. Estos raros eventos de una sola sesión a veces pueden bastar para invertir una tendencia, otras veces no como es el caso que vemos.

---------------------------------------------------------

Conclusiones:

Este es un ejercicio numérico que deseaba hacer y que espero ir ampliando en otras entradas a medida que vaya perfeccionando y ampliando mis análisis. Las posibilidades a medida que se añade complejidad son ilimitadas. Pueden analizarse histogramas de muchas más variables, los gaps por ejemplo, sobre acciones, sobre otros índices, luego ponerlas en relación para buscar correlaciones o simplemente amasar todos los datos en un bloque compacto para clusterizarlo posteriormente mediante algoritmos más potentes. Por ahora he empezado por validar mediante mis propios medios una afirmación que la intuición parecía validar. Pero como siempre digo los números están ahí para que los utilicemos, los números pueden hablar. ¿Lo que un analista de datos espera encontrar de todo esto? Quien sabe. Lo cierto es que los mejores hallazgos son los que nadie esperaría encontrar. Pero no me quedaré aquí. También quiero explorar la física que hay detrás de los desplomes bursátiles y por supuesto estos análisis no impediran que siga con el ahorro y en los aspectos más terrenales de la estrategia que seguiré plasmando aquí siempre que mi tiempo me lo permita, seguiremos hablando de todo ello y de mucho más. Y siempre recordando que las oscilaciones de la bolsa son, ante todo un fenómeno estocástico y no lineal así que el santo grial no existe como no lo existe sobre cualquier otro sistema de esa índole como la predicción de terremotos.

Un saludo ahorradores y hasta la próxima.

4
¿Te ha gustado mi artículo?
Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico
  1. en respuesta a Inversoreficiente
    -
    #4
    09/09/10 23:56

    'el modelo gausiano a aparece tanto en la naturaleza porque es el que resulta en una muestra de datos "verdaderamente" aleatoria'

    Esto criticaba de las constantes alusiones al modelo gausiano. Una muestra aleatoria y suficientemente significativa se ajusta al modelo gausiano, siempre y cuando el fenómeno descrito se comporte según el modelo... gausiano. O sea, que todos los hombres altos son altos.

    Una muestra de datos verdaderamente aleatoria y suficientemente significativa se ajustará al modelo que describa el fenómeno, si es gausiano, pues gausiano, y si no lo es, pues no.

    Ejemplo: el modelo gausiano nunca servirá para describir un fenómeno tan aleatorio como la altura de la población, pues el modelo gausiano da una probabilidad decreciente, pero no nula, para valores en la cola izquierda de la distribución. Me apuesto contigo lo que quieras, pues ganaría con p=1, a que no encuentras a nadie que tenga altura negativa, mientras que según el modelo gausiano la probabilidad de encontrarlo seria p>0.

    Ejemplo típico de cómo nos venden la moto con el modelo gausiano. Cuando nos dan datos del salario, dan el salario medio (y que casualidad, nunca dan la dispersión), del que todo el mundo cree que se ajusta al modelo gausiano con el argumento Loreal (“porque el lo vale”), y por ello se supone que la mitad de la población gana mas, y la otra mitad gana menos que la media. Pero la distribución salarial no se ajusta a una gausiana, sino a la distribución de Pareto. Mira la función densidad de la distribución: http://en.wikipedia.org/wiki/File:Pareto_distributionPDF.png,

    Como veras, ni de casualidad la mitad de la población está por debajo de la media. Por debajo de la media hay mucho más de la mitad. Y cuanto mas se apunta la distribución (o lo que es lo mismo, mas se concentra la riqueza), más gente hay por debajo de la media.

    Si quieres más detalles: http://en.wikipedia.org/wiki/Pareto_distribution
    Y en particular: http://en.wikipedia.org/wiki/Pareto_distribution#Pareto.2C_Lorenz.2C_and_Gini

    Una curiosidad, la distribución de Pareto en el límite degenera en la delta de Dirac, igual que la gausiana (entre otras).

  2. en respuesta a Feinmann
    -
    #3
    09/09/10 03:54

    Tienes toda la razón Feinmann. Pero con este análisis tampoco pretendía encontrar la curva real del ajuste. De hecho eso podría quedar para un análisis realmente en profundidad que no hice por no considerarlo necesario para lo que quería demostrar. Es cierto que el modelo gausiano se usa para casi todo pero es que el modelo gausiano a aparece tanto en la naturaleza porque es el que resulta en una muestra de datos "verdaderamente" aleatoria. Y la naturaleza está llena de procesos absolutamente aleatorios. Ahora bien lo que quería demostrar es que realmente la muestra no es enteramente aleatoria es decir que tiene las colas distintas. O sea que quizá no me expliqué bien pero claro no es estrictamente una gausiana. Y eso es obvio desde el momento en que afirmo que existe una asimetría entre las bajadas y las subidas. Así pues, esa asimetría, aunque leve, ya descartaría el modelo gausiano que debería ser enteramente simétrico. Quizá no me expliqué bien.

    Lo que no pretendí en este post es buscar la curva de ajuste real, realmente lo que quería decir era, si la muestra fuera realmente aleatoria esperaríamos una gaussina ahora bien resulta que tiene una serie de sesgos, menos bajadas pero más acusadas así pues eso queda reflejado en el histograma desviándose del modelo gausiano. Acepto el reto de intentar encontrar qué curva modelo se ajusta mejor pero como bien dices para eso haría falta testearlo mediante la prueba chi cuadrado. Vamos que ajustar el modelo real ya no es una cosa baladí. Y no era mi objetivo en este post.

    Pretendía que la lectura fuera comprensible y genérica para demostrar una hipótesis que ya había afirmado en posts anteriores y que todo el mundo lo pudiese entender cualitativamente. Evidentemente la cuantificación de esa relación sería un ajuste a una curva verdadera que probablemente no será exactamente la gausiana aunque se le parezca. Y ese ajuste será otra historia. Si hiciese una segunda entrada seguramente será una de las cosas que haga ya que ambos comentarios habéis hecho referencia a ello y la verdad que me parece muy acertado puntualizarlo ya que, realmente pude explicarlo mejor. Mea culpa y gracias por vuestros comentarios. Saludos.

    Desde luego cualquier contribución

  3. #2
    09/09/10 02:32

    Leche, que eres físico, tu sabes mas matematicas que eso.

    Estas suponiendo la frecuencia, cuando lo que deberias hacer es usar una transformada rápida de Fourier y determinar las frecuencias dominantes.
    Luego tienes que determinar el modelo, que puede ser el gausiano o no. A las gráficas que presentas yo les veo mas pinta de una beta girada que de una gausiana. Supuesto que fuese la gausiana tienes que determinar la media y desviación estandar.
    Luego tienes que testear el modelo. Creo que el apropiado era el test chi cuadrado, creo recordar.
    Si sacas una significación razonable, ya lo pueses usar.

    Estoy hasta el gorro del modelo gausiano. Lo usan para todo, venga o no venga a cuento, como si con el se hubiese terminado la estadistica.

    Por ejemplo, con el modelo gausiano la termodinámica estadística jamas hubiese funcionado. O si no, ¿como hubieses contemplado la posibilidad de particulas con energia cinética negativa? esas aparecerian con seguridad en la cola izquierda del modelo gausiano.

  4. Nuevo
    #1
    01/08/10 20:13

    Es la primera vez que escribo en tu blog y, primero de todo, me gustaría felicitarte por él. Llevo tiempo siguiéndolo y me ha resultado de mucha utilidad ya que yo empecé a gestionar mis ahorros de forma más correcta por las mismas fechas que tu creabas el blog.

    Sobre lo que comentas en la entrada, por ofrecerte otro punto de vista, hace poco me leí el libro “Fractales y Finanzas”, de Benoît Mandelbrot ( http://www.amazon.com/Misbehavior-Markets-Fractal-Financial-Turbulence/dp/0465043577/ref=sr_1_2?s=books&ie=UTF8&qid=1280678998&sr=1-2 ). En grandes rasgos, se pone en cuestión que los mercados sigan una distribución gaussiana, y afirma que siguen una distribución de Cauchy. Lamentablemente, puesto que no ofrece soluciones a los problemas que plantea, el libro no deja de ser un entretenimiento intelectual, pero ofrece otra manera de mirar los mercados.

    Saludos y ánimos con el blog,