Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías Industriales Aplicación de Control Predictivo en Mercados Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: Sebastián Conde Caro Tutor: José María Maestre Torreblanca Paula Chanfreut Palacio Sevilla, 2020
iii Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías Industriales Aplicación de Control Predictivo en Mercados Autor: Sebastián Conde Caro Tutor: José María Maestre Torreblanca Profesor titular Paula Chanfreut Palacio Predoctoral PIF FPU Ministerio Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2020
v Trabajo Fin de Grado: Aplicación de Control Predictivo en Mercados Autor: Sebastián Conde Caro Tutor: José María Maestre Torreblanca Paula Chanfreut Palacio El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2020 El Secretario del Tribunal
vii A quienes siempre confiaron en mí A quienes me apoyaron en los malos momentos
ix Agradecimientos Este proyecto surge de la idea de mi tutor José María Maestre Torreblanca. Cuando me sugirió este proyecto no necesité apenas pensar en aceptarlo debido a que siempre he tenido interés en conocer un poco más acerca del funcionamiento del mercado financiero. Por tanto, es la primera persona a la que le quiero agradecer su confianza en mí para desarrollar el proyecto y su apoyo cuando lo necesitaba. También me gustaría agradecer a Paula Chanfreut Palacio, quien ha sido parte fundamental del proyecto y me ha ofrecido su ayuda siempre que lo he necesitado. Tampoco quiero dejar pasar por alto el apoyo recibido, no solo durante la realización de este proyecto, sino durante toda mi vida educativa y personal a todas las personas que me han acompañado en este camino. Gracias a mi padres, a mi hermana, a mis abuelos y abuelas, a mi familia, a mis amigos y a mis compañeros. Por último, me gustaría agradecer también a aquellas personas que siempre han estado ahí para apoyarme y ayudarme y nunca perdieron la confianza en mí. Sebastián Conde Caro Sevilla, 2020
6.2.1 Caso 1 35 6.2.2 Caso 2 37 6.3 Método 2: Tendencia 40 6.3.1 Caso 1 40 6.3.2 Caso 2 42 6.4 Método 3: Polinomio 45 6.4.1 Caso 1 45 6.4.2 Caso 2 50 6.4.3 Caso 3 57 6.5 Comparación entre los tres métodos 63 6.5.1 Caso 1 63 6.5.2 Caso 2 64 6.5.3 Caso 3 65 7 Conclusiones del Proyecto 67 7.1 Posibles líneas de ampliación 67 Anexo 1: Código 69 Referencias 81
xvii ÍNDICE DE TABLAS Tabla 6–1. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.1 31 Tabla 6–2. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.1 32 Tabla 6–3. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.2 32 Tabla 6–4. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.2 33 Tabla 6–5. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.3 33 Tabla 6–6. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.3 34 Tabla 6–7. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.4 34 Tabla 6–8. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.4 35 Tabla 6–9. Comparación de resultados según el horizonte de predicción 57 Tabla 6–10. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.1 64 Tabla 6–11. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.2 65 Tabla 6–12. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.3 65
xix ÍNDICE DE FIGURAS Figura 1-1. Perceptron multicapa 3 Figura 2-1. Escudo de Van Der Beurse 5 Figura 2-2. Portada del periódico London Herald del día 25 de octubre de 1929 6 Figura 4-1. Representación de la señal de control 16 Figura 5-1. Captura de la tabla obtenida de la empresa ACS en formato XLSX 21 Figura 5-2. Captura de la tabla obtenida de la empresa ACS en formato Matlab 22 Figura 6-1. Resultados obtenidos de la empresa ACS en la simulación realizada en el apartado 6.2.1 36 Figura 6-2. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.2.1 36 Figura 6-3. Resultados obtenidos de la empresa Acciona en la simulación realizada en el apartado 6.2.2 37 Figura 6-4. Resultados obtenidos de la empresa Acerinox en la simulación realizada en el apartado 6.2.2 38 Figura 6-5. Resultados obtenidos de la empresa ACS en la simulación realizada en el apartado 6.2.2 38 Figura 6-6. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.2.2 39 Figura 6-7. Resultados obtenidos de la empresa Endesa en la simulación realizada en el apartado 6.3.1 40 Figura 6-8. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.3.1 41 Figura 6-9. Resultados obtenidos de la empresa Endesa en la simulación realizada en el apartado 6.3.2 42 Figura 6-10. Resultados obtenidos de la empresa Ferrovial en la simulación realizada en el apartado 6.3.2 43 Figura 6-11. Resultados obtenidos de la empresa Grifols en la simulación realizada en el apartado 6.3.2 43 Figura 6-12. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.3.2 44 Figura 6-13. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.1 45 Figura 6-14. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.1 46 Figura 6-15. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.2 47 Figura 6-16. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.2 48 Figura 6-17. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.3 49 Figura 6-18. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.3 50 Figura 6-19. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.2.1 51 Figura 6-20. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.2.1 52 Figura 6-21. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.2.2 53 Figura 6-22. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.2.2 54 Figura 6-23. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.2.3 55
Figura 6-24. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.2.3 56 Figura 6-25. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.3.1 58 Figura 6-26. Resultados obtenidos de la empresa Banco Santander en la simulación realizada en el apartado 6.4.3.1 59 Figura 6-27. Resultados obtenidos de la empresa Bankia en la simulación realizada en el apartado 6.4.3.1 59 Figura 6-28. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.3.1 60 Figura 6-29. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.3.2 61 Figura 6-30. Resultados obtenidos de la empresa Banco Santander en la simulación realizada en el apartado 6.4.3.2 62 Figura 6-31. Resultados obtenidos de la empresa Bankia en la simulación realizada en el apartado 6.4.3.2 62 Figura 6-32. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.3.2 63
1 1 INTRODUCCIÓN esde la inauguración de los primeros mercados bursátiles, se ha producido un movimiento cada vez mayor de personas que se han empezado a interesar por la bolsa de valores para poder obtener algún beneficio económico mediante la especulación con la compra y venta de acciones. Esto ha provocado la creación de nuevas empresas dedicadas exclusivamente a captar capital para poder invertir en determinados mercados y así generar beneficios. Además de esto, en los últimos años, se ha desarrollado también una tendencia de creación de bots (programas informáticos que ejercen funciones que podrían realizar las personas) que intentan imitar el trabajo que realizan los brokers. Tienen la capacidad de indicar los momentos más adecuados de compra o venta de acciones e incluso de realizar ellos mismos esas operaciones con la previa aprobación de las personas u organismos correspondientes, eliminando así el componente emocional fruto de lo humano, el cual nunca es beneficioso. Sin embargo, la volatilidad del mercado provoca que no siempre sea positivo el balance de inversiones realizadas en comparación con los resultados obtenidos. De ahí surge la idea de afrontar este problema desde un punto de vista menos común al utilizado mayoritariamente, el de la Automática. La mayoría de los análisis que se pueden encontrar sobre este tema se basan en conceptos teóricos económicos, basados en situaciones financieras, políticas y sociales, o geométricos, como podrían ser picos en las gráficas de valores, líneas de tendencia, etc. También se han utilizado métodos basados en diferentes tipos de controladores. De este último enfoque se hablará más adelante haciendo una recopilación de algunos de los métodos usados para estudiar esta cuestión que consten de un punto de vista parecido al que se va a establecer en este problema. Para comenzar a trabajar en este proyecto, primero es necesario conocer cómo funciona el mercado financiero. Sin embargo, para entender su situación actual es conveniente adentrarse un poco en sus orígenes y en cómo surge todo. Se concretará un poco sobre cuáles son las pautas que marcan los valores de las acciones de cada empresa y se estudiará la dificultad del análisis del mercado debido a la cantidad de pequeños y grandes factores que pueden influir en él. Como se ha dicho antes, la volatilidad de los valores se debe a esta gran cantidad de factores, lo que hace imposible su predicción. Este análisis se llevará a cabo en el Capítulo 2. Para poder realizar un análisis perfecto del mercado bursátil, es necesario tener en cuenta muchísimos factores, no sólo aquellos que están relacionados con la situación económica, sino también con el ámbito social y político del país y del resto del mundo, entre otras muchas cosas. Algún acuerdo alcanzado entre países, un conflicto entre ellos o simplemente, unas elecciones políticas condicionan los valores del mercado debido a que influyen en las decisiones de las personas u organismos que compran y venden acciones, generando situaciones en las que estos valores varían constantemente. También habría que tener en cuenta muchos factores imposibles de controlar y predecir, como las decisiones tomadas por los inversores o por las mismas empresas. Todos estos factores están influenciados, a su vez, por el propio mercado. El estado del mercado marca la positividad o negatividad de los inversores a la hora de realizar operaciones bursátiles. También influye en el ámbito político, social, etc., del lugar, por lo que se podría decir que el mercado está influenciado por él mismo. Por tanto, se parte de la base de que se es conscientes de que en este terreno nada es predecible. Sin embargo, esto no quita que se vaya a intentar obtener los mejores resultados posibles partiendo de unas limitaciones para facilitar el problema y unas condiciones iniciales impuestas que se irán analizando durante el Capítulo 3. Para analizar el problema, se realizará un método de control predictivo partiendo de los resultados históricos del mercado a estudiar durante los últimos años. Es evidente e importante tener en cuenta que ningún estudio ha encontrado la fórmula perfecta que conozca los futuros avances del mercado debido a la variedad de parámetros que condicionan sus valores. A pesar de todo esto y de muchos más factores que no se pueden controlar, se realizará un control predictivo con el objetivo de comparar los resultados obtenidos con el recorrido real del mercado. En el Capítulo 4 se profundizará más en este método objetivo, hablando de su origen, las ideas en las que se basa su funcionamiento y la forma en la cual este proyecto se va a servir de este método para intentar conseguir el mayor acercamiento posible a la vida real con la predicción de los valores de las acciones de las distintas empresas del mercado a estudiar. D
Introducción 2 En el Capítulo 5 se explicará detalladamente todos los pasos que se han seguido a lo largo de la resolución del problema, empezando por la búsqueda e importación de los valores históricos necesarios de las acciones del mercado a estudiar y acabando con nuestro modelo final del método de control predictivo. En relación con esto, se añadirá un anexo que contendrá todo el código desarrollado para poder obtener el modelo que se va a desarrollar y los resultados de las simulaciones realizadas. Durante el Capítulo 6 se mostrará los resultados obtenidos al realizar las simulaciones adecuadas mediante el modelo explicado en el capítulo anterior. Para confirmar estos resultados se mostrarán todas las representaciones necesarias que se vean oportunas y que sirvan para comprobar y valorar la exactitud de nuestro modelo. También se evaluará la fiabilidad de estos resultados al realizar distintas simulaciones y el rendimiento económico que se podría obtener si este modelo se llegara a utilizar en la vida real. Finalmente, se dedicarán algunas páginas para resumir las conclusiones que se obtendrán tras realizar el proyecto contrastadas con todo el material expuesto en el capítulo anterior. También se propondrán algunas líneas futuras de ampliación surgidas tanto por las limitaciones impuestas por el propio modelo como por las limitaciones decretadas para simplificar la resolución del problema. A estas se añadirán algunas surgidas durante todo el proceso de búsqueda de la solución. Todo esto conformará el Capítulo 7. Un vez se ha comentado la estructura que se va a llevar a cabo para resolver el problema, se va a comenzar por, tal y como se ha dicho, una recopilación de literatura sobre diferentes métodos de afrontar un problema similar al elegido. 1.1. Recopilación de otros métodos usados Aunque, como se ha dicho explicado anteriormente, este tipo de problemas suelen desarrollarse desde la posición de los conceptos económicos, también se pueden encontrar casos en los que el estudio del mercado se realiza teniendo en cuenta el desarrollo histórico del mismo mediante la predicción de sus valores desde un punto de vista más ingenieril. A continuación, se hará un recopilatorio de varios proyectos que se han resuelto con un método perteneciente a nuestra rama de estudio. Se obviarán, por tanto, todos los análisis del mercado basados en situaciones políticas y sociales, acontecimientos y/o conceptos económicos, teorías geométricas, etc. Dentro de ese ámbito, hay algunos proyectos que han dedicado sus fuerzas solamente a intentar predecir el mercado sin tener en cuenta la idea de un sistema de inversión, lo cual es precisamente el objetivo de este proyecto. Sin embargo, resulta conveniente hacer un análisis de algunos de ellos, sin tener en cuenta si su objetivo es exactamente el mismo que el propuesto en este problema. Esto se debe a que, para conseguir nuestro objetivo principal, primero se ha de predecir los futuros valores de las acciones de cada empresa para posteriormente decidir si se tomará alguna decisión de compra o de venta. Por ello, esta diferencia de objetivos no será impedimento para que no se tenga en cuenta a la hora de realizar la recopilación de los distintos métodos que se han usado para intentar predecir el mercado. El primer proyecto que se va a introducir en esta recopilación de literatura tiene como objetivo predecir los valores del mercado y analizar sus tendencias a través de algoritmos de clasificación. Para ello, en primer lugar, crea una base de datos donde contiene todos los registros de las empresas que han formado parte del IBEX35 en algún momento. Este proyecto está basado en la optimización convexa (minimizar una función convexa teniendo en cuenta unas restricciones también convexas), de la cual surgen dos aplicaciones las cuales serán claves a la hora de resolver el proyecto: la clasificación lineal (cuyo objetivo es predecir si un valor determinado subirá o bajará en el futuro) y la regularización de sistemas lineales (mejora la precisión de los cálculos). No se va a profundizar más en este proyecto ya que eso requeriría explicar demasiados conceptos teóricos. [1] También se ha realizado un estudio del mercado a través de la predicción neuronal mediante el uso del Perceptron multicapa, el cual permite predecir la evolución futura del mercado e identificar las variables que actuarán como entrada para describir la situación actual del mismo. El método de trabajo del Perceptron multicapa consiste en minimizar los posibles errores en la predicción comparando la salida del sistema con los datos reales y retocando los valores de las variables de entrada y su proporción en cuanto a importancia en el resultado final.
3 Aplicación de Control Predictivo en Mercados Se estudiarán varios modelos matemáticos para ver cómo actúan ante la predicción de series temporales, los cuales serán el modelo de regresión lineal (las estimaciones constan de un término de perturbación), modelos no lineales GARCH-M (caracterizada por el hecho de que la varianza de la perturbación influye directamente en la salida), modelos de aproximación polinómica (centrándose en el uso de polinomios ortogonales) y, finalmente, el modelo de redes neuronales. La singularidad de las redes neuronales consiste en la presencia de capas ocultas que transforman las variables de entrada mediante unas funciones llamadas funciones de activación. Una de estas redes neuronales la conforma el Perceptron multicapa, el cual es considerado como uno de los mejores modelos matemáticos para aproximar relaciones no lineales. Consta de tres tipos distintos de capas (capas de entrada, capas ocultas y capas de salida) las cuales están compuestas por neuronas, que están conectadas entre ellas dentro de una capa, además de estar conectadas con las neuronas de la capa siguiente. Cuando una neurona recibe información, provoca una respuestas que se difunde a las neuronas de la siguiente capa y así sucesivamente, hasta llegar a la última capa y obtener la respuesta del modelo en conjunto. [2] Figura 1-1. Perceptron multicapa [2] Otro método que se ha empleado para resolver este problema consiste en utilizar el Statistics Toolbox de Matlab y el paquete estadístico SPSS© para comprobar los resultados obtenidos. Este método, aunque tenga un objetivo similar al nuestro, se basa sobre todo en conceptos del campo de la Estadística, por lo que no se entrará a realizar un análisis profundo del mismo. Sin embargo, se hace referencia a otros Toolbox de Matlab que resultan interesantes de nombrar, que son Financial Toolbox y Financial Derivative Toolbox, los cuales sí son usados para estimar el precio de algunas empresas, entre otras funciones. La ventaja principal del uso de estas herramientas radica en su versatilidad y su polivalencia. [3] Financial Toolbox y Financial Derivative Toolbox contienen multitud de funciones para el análisis de datos y el desarrollo de modelos financieros. Permite el preprocesamiento de datos financieros y su análisis mediante indicadores técnicos y gráficos y evaluaciones del rendimiento de la inversión. También se pueden crear, optimizar y estudiar diferentes carteras que tengan condiciones y objetivos distintos, obteniendo sus limitaciones y su función de eficiencia. [4] El último método que se va a describir consiste en la aplicación de algoritmos de aprendizaje mediante las máquinas de vectores simples. Este método se basará en opciones binarias (el valor sube, el valor baja) para intentar obtener el máximo beneficio posible. Se caracteriza por tener un riesgo fijo y predeterminado, un beneficio potencial y un riesgo máximo conocido. Su objetivo es analizar intervalos pequeños de tiempo para conocer el comportamiento de los valores intentando eliminar el efecto de los posibles acontecimientos económicos externos.
Introducción 4 Las máquinas de soporte vectorial se basan en modelos simples mediante los cuales establecen fronteras de decisión no lineal en el espacio origen. Construirá un clasificador binario no probabilístico para clasificar los nuevos datos en base a los datos originales. Clasificará los valores ordenándolos mediante hiperplanos, pero para ello será necesario transformar dichos datos mediante unas funciones denominadas Kermel, que pueden ser polinómica, gaussianas y sigmoides, entre otras. De las nombradas anteriormente, la función Kermel polinómica es la función con la que se obtiene mayor rendimiento, cuyo grado dependerá del caso concreto. [5] Esta recopilación de literatura es útil en cuanto a conocer las diferentes líneas de estudio que se han llevado a cabo con mayor o menor asiduidad. También servirá para sentar las bases del proyecto y empezar a conocer cuál va a ser el camino que se tiene que seguir para poder lograr la solución al problema que se ha propuesto. Tampoco está mal conocer la visión que se ha dado a problemas parecidos, lo cual puede ser de ayuda para abrir distintos horizontes de investigación.
5 2 FUNCIONAMIENTO DEL MERCADO ste capítulo se va a centrar en realizar una exposición teórica acerca del mercado financiero que abarque desde su origen hasta su funcionamiento en la actualidad. 2.1. Origen de la bolsa El mercado tal y como es conocido hoy en día es una evolución de siglos y siglos desde que surgieron y se realizaron los primeros negocios y compraventas de mercancías en las lonjas sobre el siglo XII en Europa, aunque anteriormente en la época griega y romana ya se llevaron a cabo los primeros intercambios entre mercaderes siguiendo unas normas que estaban establecidas en aquellos momentos. Sin embargo, el origen de la palabra “Bolsa” data en torno al año 1360, cuando se celebraron unas ferias en la ciudad de Brujas, que por ese entonces era uno de los grandes centros financieros de Europa. Esas ferias se celebraban frente a la mansión del Caballero de las bolsas, nombre por el cual era conocido un gran hombre de negocios de aquella época debido a que el escudo de la fachada de su edificio contaba con tres bolsas esculpidas. Figura 2-1. Escudo de Van Der Beurse [6] E
Planteamiento del problema 12 … 𝑥𝑖(𝑘+1)=𝑥𝑖(𝑘)+𝑢𝑖(𝑘)−𝑤𝑖(𝑘) (3-6) … 𝑥𝑛(𝑘+1)=𝑥𝑛(𝑘)+𝑢𝑛(𝑘)−𝑤𝑛(𝑘) (3-7) Siendo: xi(k + 1) la cantidad de acciones que tenemos de la empresa i en el momento k+1 xi(k) la cantidad de acciones que tenemos de la empresa i en el momento k ui(k) la cantidad de acciones que compramos o vendemos de la empresa i en el momento k wi(k) el efecto provocado por el mercado en las acciones de la empresa i en el momento k n el número total de empresas del cual se tienen o se han tenido acciones Por último, faltaría por definir el valor del dinero en efectivo del que disponemos: 𝐸(𝑘+1)=𝐸(𝑘)−∑𝑝𝑖·𝑢𝑖(𝑘) 𝑖=1 𝑛 (3-8) El dinero en efectivo en el siguiente momento sería el dinero en efectivo que tenemos en el momento actual más el dinero que recibamos de las acciones vendidas en ese momento menos el dinero que invirtamos comprando acciones en ese momento. Obviamente, este dinero en efectivo nunca podrá ser negativo, ya que no vamos a tener en cuenta posibles préstamos o incremento del efectivo por otro método que no sea la venta de acciones. En cuanto a nuestra relación con el mercado, supondremos que se tratará de un particular con un presupuesto inicial no excesivamente elevado, por lo que sus operaciones de compra y venta no tendrían apenas influencia en el mercado. Para simplificar el problema, asumiremos que el valor de las acciones no estará influenciado en ningún grado por nuestras operaciones ni por nuestro presupuesto. Debido a que nos consideramos como un particular, tampoco entraremos en el juego de las comisiones a terceros debido a las operaciones realizadas o a los beneficios obtenidos. Dentro de este apartado incluiremos tanto brokers como empresas dedicadas al estudio del mercado o a realizar este tipo de operaciones. Tampoco tendremos en cuenta ni dispondremos de la opción de programar operaciones cuando las acciones correspondientes llegan a un valor. Esto abarca tanto la compra de acciones cuando éstas alcancen un valor determinado como su venta al obtener el beneficio fijado. También se podrían programar operaciones de venta de las acciones disponibles si se produce una tendencia bajista o si éstas alcanzaran un valor menor del señalado. Sin embargo, como ya hemos dicho, no consideraremos ninguno de estos casos. Además de esto, todas y cada una de las operaciones que se lleven a cabo se realizarán de manera instantánea, es decir, no se tendrán en cuenta tiempos de espera entre la confirmación de realizar una operación y su ejecución. Por tanto, si se llegara a realizar una compra o venta de acciones en el instante t, los nuevos valores aparecerán ya actualizados justo antes de realizar las comprobaciones correspondientes para el instante t+1. Al tratarse de una simulación, no se tendrá en cuenta ningún tipo de impuesto al Estado, lo cual abarca todos aquellos en los que interviene Hacienda. Tampoco se contarán con posibles comisiones y/o impuestos con el mercado por el simple hecho de realizar una operación bursátil, ya sea de compra o venta de acciones. Para acabar con las limitaciones, tampoco nos adentraremos en las posibles ganancias debido a los dividendos repartidos por las distintas empresas de las cuales seamos accionistas.
13 Aplicación de Control Predictivo en Mercados En conclusión, nosotros partiremos de un presupuesto inicial que se intentará incrementar mediante la compra y venta de acciones instantáneas sin tener en cuenta ningún tipo de comisiones ni impuestos. Para intentar predecir el mercado, nos basaremos en datos históricos recientes de la bolsa que vamos a estudiar, la cual va a ser el IBEX35, la principal referencia en el mercado español. Diseñaremos una base de datos que contenga cinco años de valores de las distintas empresas que forman parte de esta bolsa. En principio, partimos de la base de que no se va a preferir unas empresas a otras, sino que las únicas referencias que tenemos de ellas son sus valores históricos. Las empresas que forman parte del IBEX35 y, por tanto, las empresas que se van a tener en cuenta para realizar las distintas pruebas son las siguientes: • Acciona, S.A. • Acerinox, S.A. • ACS, Actividades de Construcción y Servicios, S.A. • Aena S.M.E., S.A. • Amadeus IT Group, S.A. • ArcelorMittal • Banco de Sabadell, S.A. • Banco Santander, S.A. • Bankia, S.A. • Bankinter, S.A. • Banco Bilbao Vizcaya Argentaria, S.A. • CaixaBank, S.A. • Cellnex Telecom, S.A. • CIE Automotive, S.A. • Enagás, S.A. • ENCE Energía Y Celulosa, S.A. • Endesa, Sociedad Anonima • Ferrovial, S.A. • Grifols, S.A. • International Consolidated Airlines Group, S.A. • Iberdrola, S.A. • Industria de Diseño Textil, S.A. • Indra Sistemas, S.A. • Inmobiliaria Colonial, SOCIMI, S.A. • Mapfre, S.A. • Mediaset España Comunicación, S.A. • Meliá Hotels International, S.A. • MERLIN Properties SOCIMI, S.A. • Naturgy Energy Group, S.A. • Red Eléctrica Corporación, S.A. • Repsol, S.A.
Planteamiento del problema 14 • Siemens Gamesa Renewable Energy, S.A. • Técnicas Reunidas, S.A. • Telefónica, S.A. • Viscofan, S.A. Por último, no se tendrá en cuenta nada que no sea exclusivamente lo nombrado anteriormente, por lo que obviaremos todo lo relativo a la situación social, política y económica del país en ese momento concreto. A partir de estos datos históricos intentaremos predecir cuál es la mejor forma de invertir nuestro dinero para obtener el mayor beneficio posible.
15 4 SOLUCIÓN PROPUESTA l modelo de control predictivo surge a finales de los años setenta y ha estado evolucionando desde su origen. Este método no se compone de una estrategia de control concreta, sino que contiene distintos métodos de control que usan un modelo de proceso para obtener la señal de control con unas restricciones marcadas por una función objetivo. Debido a esto, son muy variados. 4.1 Definición y elementos del MPC El modelo de control predictivo (MPC) es una forma de desarrollar un control avanzado mediante computadora utilizando un modelo matemático cuyo objetivo es predecir la evolución del sistema y obtener sus entradas óptimas cumpliendo una función de coste durante un horizonte de predicción de N pasos. Cualquier modelo de control predictivo está basado en los siguientes elementos: ▪ Modelo de predicción: modelo matemático, ya sea lineal o no lineal, basado en variables de estado o de salida y en tiempo discreto o continuo, cuyo objetivo es definir el comportamiento que se espera del sistema. Este modelo se calcula a partir de los datos de los valores pasados y presentes de las variables controladas y de los valores presentes de las variables manipuladas del proceso. Es la pieza clave del controlador y debe predecir de forma precisa los resultados futuros gracias a una buena captación de la dinámica del proceso a analizar. El espacio temporal en el cual este modelo realiza las distintas predicciones para definir la señal de control se denomina el horizonte de predicción. ▪ Función de coste: función matemática que define las pautas que debe seguir el modelo de predicción para llegar a una solución óptima, teniendo en cuenta el error de seguimiento futuro. Este criterio, junto con las restricciones impuestas en el problema, harán posible la resolución del problema de optimización. ▪ Restricciones: incluye todas las limitaciones que deben cumplir las acciones de control. Un ejemplo podría ser el valor máximo y mínimo del cual no se puede exceder la señal de control. ▪ Estrategia de horizonte deslizante: estrategia usada en este tipo de problemas que consiste en ir desplazando en cada instante el horizonte hacia el futuro. En cada instante t, se utilizará el primer valor de la señal de control obtenida, ya que éste contendrá, además de este valor, el de varios instantes posteriores. Así, para cada instante, se repetirán todos los cálculos, obteniéndose una respuesta más exacta al utilizar en cada predicción unos datos más precisos y actualizados. Esta estrategia definiría una solución del problema en bucle abierto en cada instante t en los cuales se aplica en bucle cerrado. Los distintos algoritmos del MPC se diferencian tanto en el modelo de predicción como en la función de coste. [17] 4.2 Estrategia utilizada La estrategia que llevan a cabo los controladores que usan el método de control predictivo consiste en: 1. Para cada instante t, se realizan las predicciones de las salidas futuras para un horizonte de predicción N usando el modelo a partir de los valores de las entradas y salidas pasadas conocidas hasta ese instante y de las señales de control futuras, que se enviarán al sistema. 2. Este conjunto de señales enviadas se obtiene optimizando con el objetivo de minimizar (optimización convexa) la distancia de la salida con la referencia. Estas acciones de control se calculan teniendo en cuenta tanto las restricciones del problema como la función de coste descrita anteriormente. 3. El proceso recibe la señal de control u (t | t). Las siguientes señales se rechazan, ya que en el instante t+1 se repite el proceso con los valores actualizados. En este nuevo instante t+1, se calculará la señal de control u (t+1 | t+1), cuyo valor podría variar del cálculo que se realizó en el instante t de la señal u (t+1 | t) por los nuevos datos disponibles. Este nuevo cálculo se realiza desplazando el horizonte. [18] E
Solución propuesta 16 [19] Figura 4-1. Representación de la señal de control [18] 4.3 Origen del MPC Los primeros modelos de procesos dinámicos que predecían acciones de control surgieron a finales de la década de 1970 gracias a Jacques Richalet y su Control Heurístico Predictivo de Modelo (MPHC), el cual intentaba solucionar los problemas que no llegaba a resolver el PID basándose en conceptos intuitivos, y a Cutler y Ramakter y su Control Matricial Dinámico (DMC), en el cual en cada periodo se obtenían las salidas minimizando el error teniendo en cuenta determinadas restricciones, lo que permitió reducir las variaciones en las señales de entrada y obtener respuestas más estables. En la siguiente década, estos métodos se mejoran obteniendo el Control Matricial Dinámico Cuadrático (QDMC), que permitía establecer restricciones. Gracias a esto, se obtuvieron soluciones estables en las zonas de las restricciones y una mayor rentabilidad mediante la optimización en línea. En 1963, surge el principio de retroceso del horizonte, aspecto fundamental de los MPC, gracias a Propoi, el cual fue desarrollado en la década posterior. Gracias a su simplicidad y al uso del modelo de respuesta de impulso o paso (muy intuitivo y sencillo aunque con muchos parámetros), el MPC se convirtió pronto en un método muy aplicado, sobre todo en sistemas multivariables. Sin embargo, no se podían obtener resultados sólidos y estables, ya que no existían teorías formales sobre estas formulaciones. Por otro lado, se desarrollaron modelos de entrada-salida para los procesos monovariables, como el control de autoajuste basado en predictores de Peterka (minimizar el valor esperado de un criterio cuadrático para los valores pronosticados más recientes), el Control Adaptativo de Horizonte Extendido (EHAC) de Ydstie (mantener la salida futura cerca de la referencia después del retraso del proceso durante un periodo de tiempo), el Control Autoadaptativo de Predicción Extendida (EPSAC) de De Keyser y Van Cuawenberghe (señal de control constante desde el momento actual con predictor subóptimo) y el Control Predictivo Generalizado (CPG) de Clarke (el más conocido, basado en la variación mínima generalizada).[18] [20]
17 Aplicación de Control Predictivo en Mercados 4.4 Ventajas e inconvenientes Este método de control es muy utilizado en el mundo de la industria y tienes unas aplicaciones muy diversas. Tiene muy buena fama debido a su buen funcionamiento y eficiencia a lo largo del tiempo y al escaso mantenimiento que necesita. Sin embargo, como el resto de los métodos, también tiene una serie de inconvenientes. Las principales ventajas de este tipo de métodos son las siguientes: ➢ No es necesario tener grandes conocimientos sobre control para poder desarrollar este tipo de modelos debido a la sencillez de sus conceptos. ➢ Son muy versátiles: pueden aplicarse en procesos lineales o no lineales, de fase no mínima, con retardos grandes, procesos que sean inestables en bucle abierto, etc. ➢ Pueden ser desarrollados con sistemas multivariables con facilidad y sin grandes variaciones. ➢ Los resultados obtenidos son fácilmente implementables y requieren poco cálculo. ➢ No requiere de compensadores para neutralizar los retardos de forma óptima y natural. ➢ Este tipo de modelos son capaces de compensar las perturbaciones medibles de manera natural. ➢ A la hora de diseñar el modelo, se pueden tener en cuenta restricciones, tanto en las entradas como en las salidas. ➢ Permite el tratamiento de retrasos, incertidumbres, perturbaciones, etc. ➢ Se adapta muy bien a los problemas en los cuales se conocen las referencias futuras. ➢ Está totalmente abierto a innovaciones y modificaciones futuras. ➢ Gracias a su adaptabilidad, tiene muchas aplicaciones posibles. Por otro lado, el método de control predictivo presenta varios inconvenientes: ➢ Es necesario que el modelo dinámico sea apropiado y bastante preciso, ya que el control depende fundamentalmente del mismo. Las diferencias entre el modelo que se lleva a cabo y el proceso real influyen en los beneficios obtenidos, debido a que, aunque el diseño del modelo a seguir se basa en el proceso, ambos son independientes. ➢ Este método requiere una gran carga de cálculo, a diferencia de las técnicas de control habituales, que reside en la resolución mediante métodos numéricos de los problemas de optimización a la hora de realizar la derivación, ya que los cálculos se realizan en cada momento de muestreo si la dinámica del proceso va cambiando. Esto se complica aún más con la inclusión de restricciones. ➢ Es un método con mucha incertidumbre, lo cual es muy complejo de analizar de forma estable. El horizonte de predicción finito de estos métodos es un factor fundamental de este último inconveniente. [17]
Solución propuesta 18
19 5 RESOLUCIÓN DEL PROBLEMA continuación se explicará todo el proceso que se ha llevado a cabo para resolver el problema. Para comenzar, tendremos que implementar los datos de los valores históricos a nuestra herramienta de trabajo, por lo que haremos un estudio de los diferentes métodos que encontremos y escogeremos el más adecuado. Se continuará con la implementación del controlador y de sus parámetros iniciales junto con la deducción del modelo de optimización a desarrollar. Se diseñará un programa de prueba para comprobar el correcto funcionamiento del controlador en el cual no se tendrá en cuenta aún la base de datos para facilitar el objetivo. Por último, se diseñarán tres métodos distintos en los cuales se simularán (ya con la base de datos implementada) distintas situaciones dentro del mercado financiero de la bolsa de valores. 5.1 Base de datos Antes de todo esto, se tendrá que decidir la herramienta de trabajo que se va a utilizar para llevar a cabo la resolución del problema. Desde un primer momento, se vio adecuado que esta herramienta fuera Matlab debido a su facilidad de manejo, su gran utilidad y su compatibilidad con otras herramientas de trabajo. Otro factor importante consiste en que Matlab se trata de una herramienta muy común entre estudiantes universitarios, por lo que no necesitamos un periodo de adaptación para conocer las distintas funcionalidades de este software. Matlab consta de un lenguaje científico de muy alto nivel para investigaciones relacionadas con el mundo de la ciencia y la ingeniería. Además cuenta con diversas aplicaciones y toolboxes que aumentan aún más el rango de operaciones que engloba. El lenguaje de programación que vamos a utiliza es C++, aunque Matlab posee distintas interfaces mediante las cuales puedes acceder a otros lenguajes. [21] A continuación, tendremos que elegir entre las distintas opciones de las que disponemos para implementar los valores de los datos históricos del IBEX35 en Matlab. Para facilitar esto, haremos una pequeña recopilación de métodos o páginas web a partir de los cuales podemos obtener la información buscada. Los diferentes métodos de implementación de datos históricos que se han valorado y descartado son los siguientes: • Implementación de los datos mediante bases de datos que contenga la información buscada. Esta opción fue descartada rápidamente al observar que no teníamos licencia para acceder a éstas después de comprobarlo en distintas páginas web de bases de datos. • Uso de páginas webs de carácter financiero para descargar los datos históricos en tiempo real. Este método consiste en implementar algoritmos que accedan a la página web indicada (en este caso, se usa Yahoo Finanzas) y descargue todos los datos que aparezcan de las empresas indicadas hasta la actualidad. Se dice que es en tiempo real ya que, cada vez que se actualice la base de datos creada, se introducirán los datos más recientes que no aparecieran antes en la página web utilizada. Para ello, se debe introducir manualmente bastante información relativa a cada empresa, como su nombre, su símbolo, el mercado en el que se encuentra, la fecha en la que apareció, si sigue actualmente en la bolsa, etc. La principal ventaja de este método es la exhaustividad de los datos, ya que permite incluso incluir empresas que formaron parte de alguna bolsa. Por la dificultad de implementar el código que permita conseguir todos estos datos y debido a que no es necesario para resolver el problema planteado contar con datos en tiempo real, se ha descartado esta opción. [1] • Uso de plataformas dedicadas a trading, como puede ser por ejemplo MetaTrader. MetaTrader es una plataforma de trading que dispone de una base de datos de cotizaciones históricas. También permite realizar análisis técnicos, operaciones comerciales e incluso copiárselas a los mejores tráders, asegurando así mayores posibilidades para obtener un beneficio superior. Sin embargo, descartamos esta opción ya que consta de multitud de funcionalidades que no se necesitan para resolver el problema planteado. Además de esto, sólo se podría acceder a una versión demo. [5] [22] • Uso de páginas web que permiten descargar datos históricos e insertarlos en Matlab. Dan la opción de A
Resolución del Problema 20 elegir cuál es la empresa cuyos datos quieres descargar, la frecuencia de los valores, la fecha de inicio y fin de los datos, etc. Hay multitud de páginas web disponibles que cumplen este requisito, como pueden ser https://es.investing.com/, https://es.yahoo.com/ y https://www.eleconomista.es/, entre otras. Finalmente, nos decantaremos por la última opción. Sin embargo, aún queda por elegir cuál de todas esas páginas web se usará para obtener los datos históricos. Debido a su facilidad de manejo y de insertar los datos descargados, su claridad y la información bastante completa de la que dispone, se elegirá la segunda página web de las nombradas en esta última opción. Para acceder a los datos históricos, entramos en la página web https://es.yahoo.com/. Entramos en el apartado de finanzas y buscamos entre todos los mercados que aparecen el IBEX35. Una vez dentro, pulsamos en “Componentes”. De todos los componentes aparece su símbolo, el nombre de la empresa, su último precio, el cambio en valor y en porcentaje y el volumen. Para acceder a cualquiera de ellos basta con clicar en su símbolo. Observamos que sólo aparecen los 30 componentes principales de este mercado, por lo que tendremos que usar el buscador para acceder a los cinco restantes. Una vez dentro de una empresa, accedemos a la pestaña de datos históricos y seleccionamos el intervalo de fechas que va desde el 1 de enero de 2014 hasta el 31 de diciembre de 2018, para así poder tener en cuento los últimos cinco años calendarios. Como observaremos más adelante, hay algunas empresas de las cuales el registro de datos no llega a tal antigüedad, por lo que de esas empresas seleccionaremos todos los datos históricos de los que disponga esta página web. También seleccionamos la opción de mostrar cotizaciones históricas y a una frecuencia diaria. Seleccionamos aplicar para obtener los valores en las condiciones deseadas y a continuación pulsamos en “Descargar datos”. De esta descarga obtenemos un archivo con extensión CSV, lo cual corresponde a un archivo de valores separados por comas de Microsoft Excel. Para poder implementarlo en una hoja de Microsoft Excel, abrimos el programa con un archivo nuevo con las hojas en blanco. En la pestaña “Datos” seleccionamos “Desde el texto” y buscamos el archivo que nos acabamos de descargar. Configuramos que el delimitador sea la coma y que la detección del tipo de dato esté basada en todo el conjunto de datos. Seleccionamos la opción de cargar y una vez haya acabado este proceso, guardamos el archivo con el nombre de la abreviatura o símbolo de la empresa cuyo valores hemos cargado. Se observa que se obtiene un archivo de extensión XLSX, la cual se trata de la extensión típica de las hojas de cálculo de Microsoft Excel. Si examinamos la información cargada, se percibe que se trata de una tabla que consta de un elevado número de filas (una por cada día del cual la web usada disponga el valor) y de siete columnas, las cuales indican la fecha, el valor de apertura, el valor máximo y mínimo durante esa jornada, el valor de cierre y de cierre ajustado (este último tiene en cuenta los dividendos) y el volumen. Aunque nuestro archivo XLSX constará de todas estas columnas, no se usarán todas ellas, sino las que se consideren importantes en el problema a resolver.
21 Aplicación de Control Predictivo en Mercados Figura 5-1. Captura de la tabla obtenida de la empresa ACS en formato XLSX Para introducir los datos de estos archivos en Matlab se usa la función xlsread, a la cual se le asigna como argumento las siglas de las empresas seguido de ‘.xlsx’. Hay que tener en cuenta que es necesario dividir los valores entre 1.000.000 para ajustar las unidades. Este proceso se repite para todas las empresas. La función xlsread nos permite leer los datos de los distintos archivos XLSX que hemos obtenido anteriormente e implementarlos en nuestro software. Sin embargo, la tabla obtenida en Matlab es algo distinta, ya que ahora no aparece la columna de la fecha ni tampoco se indica qué representa cada columna. Esto último se indicará a continuación: 1. Valor de apertura de la jornada 2. Valor máximo de la jornada 3. Valor mínimo de la jornada 4. Valor de cierre de la jornada 5. Valor de cierre ajustado de la jornada 6. Volumen
Resolución del Problema 28 conservan. En cuanto a las operaciones de compra, tras redondear la señal de control y obtener la cantidad de acciones a comprar, se van realizando estas operaciones de una acción en una comprobando que en ningún momento el efectivo resultante es negativo. Tras realizarse todas las operaciones de compra, al igual que con las de venta, se calculan el efectivo disponible, las acciones que se tienen de esa empresa en total y el valor de todas ellas. Este proceso se repetirá tantas veces como el número de días que se hayan indicado al principio que va a durar la simulación. Finalmente, se calcula el valor del presupuesto total sumándole al efectivo el valor de todas las acciones que se poseen. Se imprime por pantalla tanto la señal de control como el valor del presupuesto total. Por último, se llama a la función grafica.m la cual, a partir de unos argumentos de entrada (base de datos, índice de las empresas que intervienen en la simulación, fecha de inicio de la simulación y señal de control, efectivo y presupuesto durante todos los días), realiza una serie de gráficas en las cuales se representan la variación temporal del presupuesto y del efectivo y el valor de las acciones de las empresas que intervengan con las operaciones de compra y venta que se hayan realizado. Estas gráficas se podrán observar en el capítulo siguiente. 5.4.2 Método 2: Tendencia Este segundo método apuesta por la confianza en la continuación de la tendencia que siga el precio de las acciones. Si una acción sube de precio entre el día que se esté realizando la simulación y el día anterior, se considera entonces que el valor al día siguiente será aún mayor. En este caso, se compra una cantidad de acciones definida inicialmente, siempre que sea posible en cuanto a mantener el dinero en efectivo en un valor no nulo. Si, por el contrario, el precio de la acción disminuye, se estima que seguirá disminuyendo al día siguiente y se realizará una operación de venta de una cantidad de acciones definidas o, en caso de que no se tengan tantas acciones, del resto de acciones de esa empresa que se posean. Por tanto, este método no utiliza la función basicmpcTVS.m, sino que la señal de control (número de acciones a comprar o vender) se obtiene de la forma explicada. La simulación de este método se obtiene a partir de la ejecución del programa res_simple.m. Al igual que en el método anterior, se definen los mismos parámetros iniciales, además de definir la cantidad de acciones que se compren o se vendan como máximo en cada operación. No se cumplirá este máximo cuando no haya suficiente efectivo (en el caso de las operaciones de compra) o cuando no se dispongan de tantas acciones (en el caso de las ventas). También se pedirá al usuario que introduzca el valor del presupuesto inicial y la cantidad de acciones que se poseen de cada empresa. Se realizará el cálculo del efectivo y devolverá error en caso de que éste sea negativo. A continuación, para cada empresa estudiada, se comprueba la tendencia de los precios de sus acciones y se define la señal de control (cantidad de acciones a comprar o vender) mediante la función sube_o_baja.m. Tras realizar las operaciones de compra y venta de acciones teniendo en cuenta las características ya explicadas de este método, se actualizan tanto la cantidad de acciones que se disponen de cada empresa como el valor del efectivo y del presupuesto total, repitiéndose este proceso tantas veces como días se hayan definido que dure la simulación. En este método se imprime por pantalla el valor del presupuesto cada uno de los días simulados y se representan (gracias a la función grafica.m) las mismas gráficas que en el método anterior. 5.4.3 Método 3: Polinomio En este método los valores futuros de las acciones se predicen mediante una recta de regresión lineal o un polinomio. A partir del precio que tienen las acciones los días anteriores al que se esté realizando la simulación, se obtendrá una recta o un polinomio de regresión a través del cual se calcularán sus futuros valores. Este método es más parecido al primero en cuanto a que se vuelve a utilizar el controlador basicmpcTVS.m con la diferencia de que los valores de los precios de las acciones son los valores calculados por la recta o el polinomio nombrados. Se comienza con la ejecución del archivo res_lineal.m. Al igual que en los otros métodos, se comienza con la
29 Aplicación de Control Predictivo en Mercados definición de los elementos necesarios para desarrollarlo. Es este caso, hay una variable que no aparecía en el resto de los métodos que representa el número de días pasados que se evalúan para conseguir la recta o el polinomio de regresión. A partir de esos valores, se diseña una recta o un polinomio en función del tiempo mediante el cual podamos calcular los valores de las acciones en el futuro. Tal y como ocurría en los métodos anteriores, se pedirá introducir tanto el presupuesto inicial como la cantidad de acciones de cada empresa estudiada y se realizará el cálculo del efectivo disponible, que deberá ser positivo. El siguiente paso consistirá en calcular la recta o el polinomio de regresión. Esto se lleva a cabo en la función lineal.m, cuyos argumentos de entrada son el vector que contiene los índices de las empresas que intervienen en la simulación, el valor del día que se realiza la simulación, la cantidad de días anteriores a éste que se tienen en cuenta para obtener la recta o el polinomio, el horizonte de predicción y la estructura de la base de datos. Una vez obtenido la recta o el polinomio de regresión (el cual se puede representar en una gráfica), la función devuelve un vector que contiene los valores de los precios de las acciones de los días posteriores al de la simulación obtenidos al sustituir estos valores en el polinomio obtenido. Todos estos valores de todas las empresas que intervienen en la simulación se introducen en una matriz y se utilizan en el controlador a través de la función ControlPredictivolineal.m. Es muy parecida a ControlPredictivo.m, con la única diferencia de que los valores de los precios de las acciones se obtienen con la recta o el polinomio de regresión en vez de directamente utilizar los valores del futuro de la base de datos. Sus argumentos de entrada son los mismos menos la base de datos y el entero que contiene la fecha, ya que en ese caso se utilizaban para obtener el valor. En este método esos dos argumentos son sustituidos por la matriz que contiene los valores de los precios de las acciones calculados. Una vez se obtiene la señal de control, se siguen exactamente los mismos pasos que en el método 1: se llevan a cabo las operaciones de venta y compra de acciones y se calculan el dinero en efectivo, la cantidad de acciones que se poseen de cada empresa y el presupuesto total. Todo esto se repetirá tantos días como se haya indicado al principio. Finalmente, se imprime por pantalla la señal de control y el valor del presupuesto total cada día de simulación. Gracias a la función grafica.m, se representarán la variación a lo largo de los días de simulación del presupuesto y del efectivo y el valor de las acciones de las empresas cada día con las operaciones de compra o venta realizadas.
Resolución del Problema 30
31 6 RESULTADOS OBTENIDOS n este capítulo se representarán los resultados tanto de la prueba realizada para comprobar que el funcionamiento era correcto como de los otros tres métodos ya explicados. Se realizarán comparaciones dentro de cada método dependiendo de los parámetros que influyen en cada uno de ellos. También se llevarán a cabo simulaciones en las cuales se comparen los métodos entre ellos de forma general. 6.1 Prueba realizada sin utilizar la base de datos En primer lugar, las simulaciones se empiezan con ControlPredictivoPrueba.m para comprobar que el control se está realizando de forma correcta. Se llevarán a cabo cuatro simulaciones distintas para comprobar varios aspectos del programa y poder comparar los resultados entre ellos para así obtener conclusiones. 6.1.1 Caso 1 La primera simulación se llevará a cabo asignando un presupuesto inicial de 1.000 euros. Las acciones de la empresa 1 aumentarán de valor al pasar al tercer día y el resto de los días permanecerá constante, mientras que el valor de las acciones de la empresa 2 permanecerán constantes todos los días excepto el cuarto, en el cual descenderá. Los resultados obtenidos en esta simulación son los siguientes: Tabla 6-1. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.1 E Empresa 1 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 1 100.0000 100 0 100 Día 2 1 100.0000 100 0 200 Día 3 2 36.4150 36 0 236 Día 4 2 19.6224 20 0 256 Día 5 2 8.9760 9 0 265
Resultados Obtenidos 32 Empresa 2 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 2 50.7463 51 0 51 Día 2 2 -11.8038 0 12 39 Día 3 2 -38.9424 0 39 0 Día 4 1 65.7024 66 0 66 Día 5 1 37.4102 37 0 103 Tabla 6-2. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.1 La señal de control expuesta en la tabla corresponde al primer valor del vector U obtenido en cada día de simulación para cada empresa. Así, aunque para cada día de simulación el controlador genera un vector que recoge datos de U para varios días posteriores, sólo se usarán los resultados referidos al primer día, ya que al día siguiente se repetirá todo este proceso. En cuanto a la empresa 1, los dos primeros días se compran el máximo de acciones posibles para así tener el mayor beneficio cuando las acciones suben de valor, lo cual es correcto. En cuanto a la empresa 2, aunque se llegan a comprar acciones el primer día, todas llegan a ser vendidas antes de que su valor baje, siendo el día 3 el número de acciones totales 0, por lo que el presupuesto total no llega a bajar de valor. El resto de los días posteriores a los cambios de valores de ambas empresas se compran algunas acciones de ambas, aunque esto no se puede llegar evaluar al no disponer de más datos en esta simulación. Para valorar la corrección de estos últimos resultados sería necesario tanto conocer el valor del precio de las acciones los días posteriores al final de la simulación como que el simulador los tenga en cuenta para poder obtener el máximo beneficio posible. 6.1.2 Caso 2 Este caso es muy similar al anterior, con la única variación de que el presupuesto inicial es de 10.000 euros. Se valorará así su influencia en la compra de acciones. Los resultados obtenidos en esta simulación son los siguientes: Empresa 1 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 1 100.0000 100 0 100 Día 2 1 100.0000 100 0 200 Día 3 2 24.3137 24 0 224 Día 4 2 -44.3105 0 44 180 Día 5 2 -37.9124 0 38 142 Tabla 6-3. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.2
33 Aplicación de Control Predictivo en Mercados Empresa 2 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 2 40.3817 40 0 40 Día 2 2 14.4499 14 0 54 Día 3 2 -54.8316 0 55 0 Día 4 1 44.8183 45 0 45 Día 5 1 16.3750 16 0 61 Tabla 6-4. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.2 Al igual que en el caso anterior, con las acciones de la empresa 1 se obtiene el beneficio máximo y con las de la empresa 2 no se obtienen pérdidas, cumpliéndose el objetivo. Sin embargo, se aprecian un par de diferencias: • El comportamiento de la señal de control después de la variación del valor de las señales es distinto, aunque esto, como ya se ha dicho, no se puede evaluar al no disponer de más datos. • El tercer día la señal de control indica que se deben vender 55 acciones y sólo se disponen de 54. Obviamente, no se pueden vender acciones que no se poseen. Esto se debe al redondeo de la señal de control, ya que tampoco se puede comprar una parte decimal de una acción. Si sumamos el valor del control de los tres primeros días es cero, por lo que la señal simplemente indica que se deben vender todas las acciones compradas. Por tanto, se considera que la variación del presupuesto inicial no ha provocado grandes modificaciones en los resultados, así que las simulaciones restantes de esta función se realizarán con un solo presupuesto. 6.1.3 Caso 3 En este tercer caso se parte de un presupuesto inicial de 1.000 euros, aunque ya se ha visto que este dato no es relevante en estos casos. El valor de las acciones de la empresa 1 subirán hasta el tercer día y a partir de ese día bajarán hasta obtener el valor inicial. Las acciones de la empresa 2 harán lo contrario, bajarán y a partir del día 3 subirán. Para obtener el mayor beneficio se deberán comprar acciones antes de que vayan a subir y venderlas cuando se dispongan a bajar. Los resultados obtenidos en esta simulación son los siguientes: Empresa 1 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 1 100.0000 100 0 100 Día 2 3 100.0000 100 0 200 Día 3 5 -100.0000 0 100 100 Día 4 3 -100.0000 0 100 0 Día 5 1 59.3942 59 0 59 Tabla 6-5. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.3
Resultados Obtenidos 34 Empresa 2 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 5 0 0 0 0 Día 2 3 0 0 0 0 Día 3 1 100.0000 100 0 100 Día 4 3 100.0000 100 0 200 Día 5 5 15.5761 16 0 216 Tabla 6-6. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.3 La señal de control de la empresa 1 indica que se deben comprar las máximas acciones posibles los dos primeros días (cuando el valor de las acciones sube) y que se deben vender a partir del tercer día (cuando baja), por lo que se consigue el beneficio máximo. El dato del quinto día no se puede evaluar por el mismo motivo que en los casos anteriores. En cuanto a la empresa 2, los dos primeros días, aunque las acciones bajen de valor, la señal de control es nula, ya que no se dispone de acciones para poder venderlas. Los dos días siguientes se compran 100 acciones cada uno, consiguiendo así maximizar el presupuesto. 6.1.4 Caso 4 Partiendo de un presupuesto de 1.000 euros, en este caso se va a evaluar, al igual que en el caso anterior, si el controlador responde de forma correcta a la subida y bajada del precio de las acciones de una misma empresa. Sin embargo, en este caso se ha llevado al extremo, ya que el valor de las acciones está continuamente cambiando de tendencia: si un día su precio sube, al día siguiente baja y viceversa. Los resultados obtenidos en esta simulación son los siguientes: Empresa 1 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 1 100.0000 100 0 100 Día 2 3 -100.0000 0 100 0 Día 3 1 100.0000 100 0 100 Día 4 3 -100.0000 0 100 0 Día 5 1 59.8882 60 0 60 Tabla 6-7. Resultados obtenidos de la empresa 1 en la simulación realizada en el apartado 6.1.4
35 Aplicación de Control Predictivo en Mercados Empresa 2 Valor acciones Señal control U Acciones compradas Acciones vendidas Acciones totales Día 1 3 0 0 0 0 Día 2 1 100.0000 100 0 100 Día 3 3 -100.0000 0 100 0 Día 4 1 100.0000 100 0 100 Día 5 3 35.9762 36 0 136 Tabla 6-8. Resultados obtenidos de la empresa 2 en la simulación realizada en el apartado 6.1.4 Se puede observar en ambos casos como se compran la máxima cantidad de acciones posibles cuando su valor es 1 y se venden cuando su valor es 3 (siempre y cuando se hayan comprado acciones de esa empresa antes). La señal de control del quinto día no es evaluable. Como conclusión de estos dos últimos casos, se observa que el controlador responde bien a los cambios de tendencia dentro del valor de las acciones de una misma empresa. 6.2 Método 1: Bola de cristal A continuación se van a exponer simulaciones de los tres métodos que se han estudiado por separado y después, se realizarán ejemplos comunes a los tres métodos para obtener las similitudes y diferencias entre ellos. Con el método de la bola de cristal se obtendrá siempre el beneficio máximo posible. Se mostrarán un par de simulaciones para observar su funcionamiento, una de ellas con la intervención únicamente de una empresa, para mayor claridad, y la segunda con varias empresas. 6.2.1 Caso 1 ➢ Fecha de inicio: día 10 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 3 (ACS) ➢ Horizonte de predicción: 5 ➢ Presupuesto inicial: 1000 euros
Resultados Obtenidos 36 Figura 6-1. Resultados obtenidos de la empresa ACS en la simulación realizada en el apartado 6.2.1 Figura 6-2. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.2.1
37 Aplicación de Control Predictivo en Mercados El día cero (aún no ha empezado la simulación) se tiene un presupuesto inicial de 1000 euros, todo en efectivo. El día 1 se produce la compra del número máximo de acciones posibles, ya que el valor está subiendo, y el día 4 se venden todas, ya que va a empezar a bajar. Cuando el valor de las acciones llega a un mínimo local, se compran el número máximo de acciones posibles y, al llegar a un máximo local, se venden todas. En esta simulación, por tanto, el presupuesto nunca baja su valor, ya que cuando las acciones van a empezar a bajar, se venden todas y no se compran hasta que no vayan a empezar a subir. El dinero en efectivo va alternando entre el presupuesto máximo y un valor cercano a cero (no llega a cero porque la cantidad que le falta para llegar no es suficiente como para comprar una nueva acción), situándose en este último los días en los que el valor de las acciones al día siguiente es superior al de hoy, obteniendo así beneficio. Se observa también como el presupuesto total nunca desciende de un día para otro: o bien sube (efectivo cercano a cero, las acciones incrementan su valor) o bien se mantiene constante (el efectivo es igual al presupuesto total, las acciones disminuyen su valor y resulta más conveniente no tener acciones). 6.2.2 Caso 2 ➢ Fecha de inicio: día 50 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 1 (Acciona), empresa 2 (Acerinox) y empresa 3 (ACS) ➢ Horizonte de predicción: 5 ➢ Presupuesto inicial: 1000 euros Figura 6-3. Resultados obtenidos de la empresa Acciona en la simulación realizada en el apartado 6.2.2
Resultados Obtenidos 44 Figura 6-12. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.3.2 La gráfica del presupuesto total consta de varios máximos y mínimos locales, por lo que, al igual que ha habido días en los que el presupuesto ha aumentado, también ha habido en los que ha descendido. En cuanto a este último caso, resulta destacable la situación que ocurre entre el cuarto y el quinto día. El día cuatro sólo se tienen acciones de la empresa Grifols (debido a que los valores de las otras dos empresas están descendiendo) y, además, se realiza una operación de compra en acciones de esta compañía hasta agotar el dinero en efectivo, ya que su tendencia era positiva. Sin embargo, ese día las acciones de esta empresa bajan su valor lo cual provoca, además de una venta al día siguiente, que se produzca el mayor descenso del presupuesto en esta simulación. Se puede observar además que todas las operaciones de venta de las acciones se producen al día siguiente de que su valor empiece a descender, independientemente de su tendencia en el futuro. Pese a todo esto, se obtiene un presupuesto final de 1006.74 euros ya que, en los tramos constantes, el programa busca obtener el mayor beneficio repartiendo las acciones entre las empresas. Este método es más realista que el anterior ya que en la vida real no se conoce el valor futuro de las acciones y que el efectivo no se dedica únicamente a una empresa, lo cual no deja de ser una limitación al establecer una cantidad fija de acciones que intervienen en las operaciones sin la cual se podría obtener un beneficio mayor dependiendo de las tendencias. A diferencia del método anterior, aumentar la duración de la simulación no tiene por qué suponer un aumento del presupuesto final, ya que esto dependerá, entre otras cosas, de la cantidad de cambios de tendencia del valor de las acciones que se den a lo largo de la misma. Si este cantidad fuera muy pequeña en relación con los días en los que se aumenta la duración, sí se debería obtener un presupuesto final mayor, aunque en el caso de que tuvieran lugar muchos cambios de tendencia en los nuevos días de simulación, el presupuesto final puede verse reducido con respecto a un periodo menor de tiempo. Algo muy parecido ocurriría si se aumentase el presupuesto inicial o la cantidad de acciones que intervengan en cada operación. Si en los días de simulación se producen pocos cambios de tendencia, estos aumentos serán positivos de cara a incrementar el presupuesto inicial. En caso contrario, se produciría un descenso de éste y no resultaría muy extraño que se diera una situación con estas condiciones en la que el presupuesto final sea inferior al inicial.
45 Aplicación de Control Predictivo en Mercados En conclusión, con este método se obtienen los resultados más inestables debido a que la cantidad de acciones a comprar o vender es una constante definida por el usuario (se cumple siempre que se puede, excepto cuando el efectivo no alcanza a comprar todas las acciones) y a que la decisión entre comprar o vender depende solo de dos valores de la base de datos (el valor de las acciones el día de la simulación y el del día anterior). 6.4 Método 3: Polinomio En este método se usarán tanto recta como polinomios de distintos grados para predecir los valores que tendrán las acciones en el futuro. Se simularán dos casos distintos en el que participe una sola empresa variando el número de días de los cuales se cogen los datos para calcular la recta o el polinomio de regresión. Se hará un estudio del efecto que tiene la variación del horizonte de predicción en estas dos simulaciones y se añadirá otro ejemplo, esta vez con varias empresas. 6.4.1 Caso 1 ➢ Fecha de inicio: día 20 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 7 (Banco de Sabadell) ➢ Horizonte de predicción: 5 ➢ Días usados para calcular la recta o el polinomio: 5 días ➢ Presupuesto inicial: 1000 euros 6.4.1.1 Recta Figura 6-13. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.1
Resultados Obtenidos 46 Figura 6-14. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.1 En los primeros días de la simulación se realizan operaciones de compra, lo cual se debe a que los valores de las acciones de Banco de Sabadell anteriores a los que aparecen en la gráfica provocan que la recta de regresión lineal sea ascendente. En cuanto a las operaciones de venta que se producen en los días intermedios de la simulación, los datos que se utilizan para diseñar la recta ya aparecen en la gráfica, pues son los datos de los primeros días de simulación. Se observa que la tendencia general de estos días es bajista, justificando así el tipo de operación efectuada. Sin embargo, el precio de las acciones en los últimos días se dispara, lo cual provoca que la recta de regresión sea ascendente y que las operaciones que se llevan a cabo sean de compra. De esto se deduce que, al igual que el método anterior dependía de los cambios de tendencia en cada punto, este método se basa en la tendencia general de los valores. No es importante el número de cambios de tendencia o la cantidad de máximos o mínimos locales, sino que la tendencia general de los puntos anteriores al día de estudio marcará el crecimiento o decrecimiento de la recta de regresión lineal y, por tanto, el tipo de operación que se va a realizar. Por otro lado, el hecho de que no se haya penalizado los cambios bruscos en la compra y venta de acciones provoca que en las operaciones realizadas intervengan el máximo de acciones posibles, favoreciendo así la búsqueda del beneficio máximo.
47 Aplicación de Control Predictivo en Mercados 6.4.1.2 Polinomio de grado 3 Figura 6-15. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.2
Resultados Obtenidos 48 Figura 6-16. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.2 En los primeros días de simulación, se observa que existe un periodo de duda en el que se encadenan varios operaciones de compra y venta prácticamente consecutivas. Sin embargo, este método detecta de forma correcta la gran subida del valor de las acciones que se produce entre los días seis y nueve. Gracias a esto, con el polinomio de grado 3 (1020.32 euros) se obtiene un beneficio mayor al conseguido con la recta de regresión (1014.56 euros).
49 Aplicación de Control Predictivo en Mercados 6.4.1.3 Polinomio de grado 5 Figura 6-17. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.1.3
Resultados Obtenidos 50 Figura 6-18. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.1.3 Se puede observar que el polinomio de grado 5 es el que está más acertado en este caso. Es capaz de adivinar si el valor de las acciones va a subir o bajar todos los días excepto el día siete, justo después del cual se produce la mayor subida. Pese a este día, el beneficio obtenido con este polinomio es el mayor de los tres casos estudiados para esta simulación: 1025.52 euros. A continuación se volverá a realizar esta misma simulación cambiando la cantidad de días que se evalúan para conseguir la recta o el polinomio de regresión con el objetivo de analizar la importancia de este factor en los resultados obtenidos. 6.4.2 Caso 2 ➢ Fecha de inicio: día 20 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 7 (Banco de Sabadell) ➢ Horizonte de predicción: 5 ➢ Días usados para calcular la recta o el polinomio: 10 días ➢ Presupuesto inicial: 1000 euros
51 Aplicación de Control Predictivo en Mercados 6.4.2.1 Recta Figura 6-19. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.2.1
Resultados Obtenidos 52 Figura 6-20. Resultados obtenidos del presupuesto en la simulación realizada en el apartado Al depender la tendencia de la recta de más valores, es menos probable que se realice un cambio de signo en su pendiente al pasar de un día a otro. En este caso, la recta cambia de pendiente dos veces, mientras que en el caso anterior, usando menos valores para calcularla, se producían el doble de cambios. Sin embargo, esto permite tener una mayor cantidad de acciones cuando su valor se dispara, obteniéndose así un beneficio mayor (1034.80 euros por 1014.56 euros del caso anterior).
53 Aplicación de Control Predictivo en Mercados 6.4.2.2 Polinomio de grado 3 Figura 6-21. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.2.2
Resultados Obtenidos 60 Figura 6-28. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.3.1 Esta simulación puede ser la más realista de las que se han hecho hasta ahora, pues se usa un método que predice los valores de las acciones en el futuro y además en ella intervienen varias empresas. Se observa que se obtiene un beneficio considerable teniendo en cuenta la duración de la simulación. Al adentrarse en el ejemplo se observa que la cantidad de operaciones llevadas a cabo en la tercera empresa es escasa. Esto se debe al poco beneficio que producen sus acciones con relación a su valor en comparación con el resto de las empresas que intervienen en esta simulación, siendo la empresa Banco de Sabadell la que mayor beneficio genera por euro invertido gracias, en parte, al reducido valor de sus acciones. Como la tendencia general de esta última empresa nombrada es ascendente, se realizan muchas operaciones de compra incluso en días en los que el valor de las acciones va a disminuir, lo cual se debe al funcionamiento de este método. Pese a que en estos días se pierde dinero, el beneficio obtenido tras la simulación es muy positivo.
61 Aplicación de Control Predictivo en Mercados 6.4.3.2 Polinomio de grado 5 Figura 6-29. Resultados obtenidos de la empresa Banco de Sabadell en la simulación realizada en el apartado 6.4.3.2
Resultados Obtenidos 62 Figura 6-30. Resultados obtenidos de la empresa Banco Santander en la simulación realizada en el apartado 6.4.3.2 Figura 6-31. Resultados obtenidos de la empresa Bankia en la simulación realizada en el apartado 6.4.3.2
63 Aplicación de Control Predictivo en Mercados Figura 6-32. Resultados obtenidos del presupuesto en la simulación realizada en el apartado 6.4.3.2 A diferencia de la simulación anterior realizada con la recta de regresión, en este caso se produce un mayor movimiento de dinero entre las empresas, en muchos casos beneficiosos para aumentar el valor del presupuesto. Este es el motivo por el que hay días en los que se venden acciones aunque su valor vaya a aumentar. Ese efectivo se dedica a comprar acciones de las otras empresas ya que producirán un mayor beneficio por euro invertido. En este caso, aunque el beneficio es positivo, no es superior al que se obtuvo en la simulación anterior con la recta de regresión. Esto no quiere decir que sea mejor usar una recta a un polinomio, ya que en otras simulaciones el presupuesto final conseguido mediante un polinomio es superior al obtenido con una recta. Por tanto, se concluye que dependiendo de la situación y del resto de parámetros resultará más beneficioso usar uno u otro. 6.5 Comparación entre los tres métodos A continuación se van a mostrar tres casos en los cuales se han realizado las simulaciones del método de la bola de cristal, de tendencia, de la recta de regresión y del polinomio para los mismos parámetros iniciales. 6.5.1 Caso 1 ➢ Fecha de inicio: día 30 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 1 (Acciona), empresa 2 (Acerinox) y empresa 3 (ACS) ➢ Horizonte de predicción: 5 ➢ Días usados para calcular la recta o el polinomio: 10 días
Resultados Obtenidos 64 ➢ Número de acciones en las operaciones: 20 ➢ Presupuesto inicial: 1000 euros Método Presupuesto final Bola de cristal 1207.87 Tendencia 1099.37 Recta de regresión lineal 1002.79 Polinomio de grado 5 990.03 Tabla 6-10. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.1 En este primer caso se obtiene un gran resultado del método de tendencia en comparación con el beneficio máximo posible indicado por el método de la bola de cristal. Sin embargo, las dos últimas simulaciones apenas han generado beneficios (la última incluso produce algunas pérdidas). Si se estudian las gráficas de los valores de estas empresas durante la simulación, aparecen pocos cambios de tendencia muy separados entre sí, lo cual es beneficioso para el método dos, ya que los días en los que no hay cambios de tendencia, obtiene el beneficio máximo. El hecho de que aparezcan cambios de tendencia distanciados entre sí varios días es perjudicial para el tercer método, ya sea con recta o con polinomio. Este método obtiene mayor beneficio cuanto más estable sea la tendencia general de los valores de las acciones. Al haber un cambio de tendencia cada varios días, provoca que la tendencia general de la gráfica también cambie, ya que si ese cambio solo durara un día, el resto de los datos utilizados para calcular la recta o el polinomio lo camuflarían. Por tanto, una vez que la recta o el polinomio se ha adecuado a la nueva tendencia general, ésta vuelve a cambiar, haciendo prácticamente imposible el hecho de obtener beneficio alguno. 6.5.2 Caso 2 ➢ Fecha de inicio: día 100 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 1 (Acciona), empresa 2 (Acerinox) y empresa 3 (ACS) ➢ Horizonte de predicción: 5 ➢ Días usados para calcular la recta o el polinomio: 5 días ➢ Número de acciones en las operaciones: 20 ➢ Presupuesto inicial: 1000 euros
65 Aplicación de Control Predictivo en Mercados Método Presupuesto final Bola de cristal 1070.91 Tendencia 1012.93 Recta de regresión lineal 1054.29 Polinomio de grado 5 1036.72 Tabla 6-11. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.2 En este caso, el beneficio obtenido mediante el método de la bola de cristal no es muy elevado, debido a que durante la simulación los valores de las acciones sufren grandes caídas y la tendencia general no es muy positiva. Pese a esto, todos los métodos obtienen beneficio. Al contrario que en el caso anterior, aparecen bastantes cambios de tendencia, lo cual perjudica el método dos. Sin embargo, este método obtiene un presupuesto final mayor al inicial gracias a que se aprovecha de algunos tramos de crecimiento de los valores. En cuando al método tres, se observa que se adecua bastante bien a estos cambios de tendencia y a una simulación en la que consigue un cantidad importante de beneficio (en el caso de la recta, mayor al 75% del máximo posible) con respecto al método de la bola de cristal 6.5.3 Caso 3 ➢ Fecha de inicio: día 200 de la base de datos ➢ Duración: 10 días ➢ Empresas que intervienen: empresa 1 (Acciona), empresa 2 (Acerinox), empresa 3 (ACS), empresa 4 (Aena), empresa 5 (Amadeus), empresa 6 (ArcelorMittal), empresa 7 (Banco de Sabadell), empresa 8 (Banco Santander), empresa 9 (Bankia) y empresa 10 (Bankinter). ➢ Horizonte de predicción: 5 ➢ Días usados para calcular la recta o el polinomio: 5 días ➢ Número de acciones en las operaciones: 50 ➢ Presupuesto inicial: 50000 euros ➢ Acciones iniciales que se poseen de cada empresa: 100 acciones Método Presupuesto final Bola de cristal 53501.93 Tendencia 49433.80 Recta de regresión lineal 50129.41 Polinomio de grado 5 50935.06 Tabla 6-12. Comparación de resultados de los distintos métodos en la simulación del apartado 6.5.3 Este último caso emula lo que podría ser el mercado de valores en la vida real. Teniendo en cuenta diez empresas y partiendo de un presupuesto inicial elevado que estará formado tanto por efectivo como por
Resultados Obtenidos 66 acciones de las empresas que participan en esta simulación, se intentará maximizar el beneficio. En esta simulación, el método de tendencia no consigue obtener beneficio ni siquiera mantener el presupuesto inicial. Usando la recta de regresión lineal se genera un beneficio del 3.7% respecto al beneficio máximo posible. Sin embargo, con el método del polinomio de grado cinco se obtiene algo más de una cuarta parte del beneficio obtenido por el método de la bola de cristal, lo cual resulta una cifra bastante considerable.
67 7 CONCLUSIONES DEL PROYECTO e este proyecto, al igual que de todos los proyectos que abarcan el mismo tema, se obtiene la misma conclusión: el mercado de valores no se puede predecir con exactitud. Se pueden realizar simulaciones con los métodos que se han desarrollado en las que el beneficio obtenido es positivo y no muy distinto al máximo beneficio posible. Sin embargo, realizando otra simulación distinta con los mismos parámetros iniciales en otro periodo de tiempo, puede darse el caso en el que el beneficio sea mínimo o incluso que se produzcan pérdidas. El principal motivo de esto radica en la cantidad de factores que influyen en el mercado, tal y como se vio en el capítulo 2. El hecho de que no exista la posibilidad de controlar estos factores aumenta la dificultad del problema. Desde acontecimientos económicos hasta decisiones políticas, pasando por conflictos internacionales, pueden cambiar de forma radical la tendencia de los precios de las acciones de cualquier mercado financiero. Cualquier pequeño detalle puede tener una importancia vital para la bolsa. En cuanto a los métodos que se han desarrollado, es importante destacar que el método de la recta o el polinomio de regresión suele obtener unos mayores resultados que el método de la tendencia, aunque dependía bastante de la cantidad de datos que se usaban para calcular esa función. Usar más datos no significa mayor éxito ya que, en ocasiones, al intervenir una mayor cantidad de valores la recta o el polinomio de regresión, tardaba más tiempo en adaptarse al crecimiento o decrecimiento de los precios. Pese a todo esto, se puede concluir que el método de control predictivo es bastante fiable dentro del ámbito del IBEX35. Muchos de los resultados que se han obtenido son positivos con un buen porcentaje de ganancias. Sin embargo, existe un gran riesgo si se utilizara este procedimiento para invertir en bolsa en la vida real. 7.1 Posibles líneas de ampliación Para terminar, se van a proponer varios aspectos en los cuales este proyecto puede llegar a ser ampliado en el futuro: • Reducir el número de limitaciones impuestas en el capítulo 3. Un buen ejemplo sería introducir comisiones a la hora de comprar y vender acciones. El controlador debería tener este hecho en cuenta a la hora de indicar la compra de acciones ya que, si el beneficio obtenido no es muy elevado, al sumarle la comisión puede que no traiga cuenta llevar a cabo esa operación. Otra opción sería introducir en la base de datos todos los dividendos que han repartido las empresas en ese periodo y añadirlos al presupuesto total si se diera el caso en el cual se debieran recibir. • Adentrándonos en el método de control predictivo, resultaría interesante estudiar el efecto que tendría la perturbación (se supuso nula) en el beneficio obtenido, así como su relación con el resto de los parámetros que influyen en el problema. Se podría analizar en qué casos se obtendría un beneficio D Puedo calcular a la pulgada y al segundo las órbitas de los cuerpos celestes, pero soy absolutamente incapaz de predecir hasta dónde puede arrastrar las cotizaciones de la Bolsa una multitud histérica. Isaac Newton
Conclusiones del Proyecto 68 mayor y en cuáles no. • Extrapolar esta solución e implementarlas en otro tipo de mercados, como los mercados de divisas o de criptomonedas. Consistiría en utilizar el método de control predictivo adecuando los parámetros iniciales para obtener el máximo beneficio posible. Se podría realizar una comparación entre los distintos mercados para averiguar en cuál de ellos este método funciona mejor. • Realizar la implementación de la base de datos a partir de los valores históricos en tiempo real. En el apartado 5.1, se analizan varios métodos para la creación e implementación de la base de datos. Se analizó la posibilidad de implementar algoritmos que accedieran a determinadas páginas webs para descargar los datos de los valores de las acciones en tiempo real. Esto permitiría darle un sentido aún más realista a este proyecto, ya que si se utilizan los datos más próximos al instante en el que se esté simulando, se podría predecir el valor futuro de las acciones y obtener el tipo de operación a realizar, la cual se podría llevar a cabo si se dispone de la confianza necesaria en este proyecto y el dinero suficiente como para realizar una operación financiera en la vida real.
69 ANEXO 1: CÓDIGO basicmpcTVS.m function U = basicmpcTVS(A, B, D, Ax, bx, Au, bu, Q, R, N, W, x) % function U = mpc(A, B, D, Ax, bx, Au, bu, Q, R, N, W, x) % Parameters: % - Define model matrices: A, B, D % - Constraints Ax, bx, Au, bu % - Prediction horizon N % - Define cost function and expected disturbances Q, R % - Prediction horizon N % - Disturbance vector W % - Initial state x % Define prediction horizon and other useful variables nx=size(A,2); % number of states nu=size(B,2); % number of inputs nw=size(D,2); % number of disturbances % Future states can be written as X=Gx*x(0)+Gu*U+Gw*W % Build matrix Gx= [A(1); A(1)*A(2); A(1)*A(2)*A(3)...] Gx=zeros(N*nx, nx); Gx(1:nx,:)=A(:,:,1); for i=2:N Gx( (i-1)*nx+1:i*nx , :)= Gx( (i-2)*nx+1:(i-1)*nx ,:)* A(:,:,i); end % Build matrix Gu= [B(1),zeros; A(2)B(1), B(2), zeros; A(3)A(2)B(1), A(3)B(2), B(3);... ] Gu=zeros(N*nx, N*nu); for i= 1:N for j=1:i if i==j Gu((i-1)*nx+1:(i)*nx,(j-1)*nu+1:(j)*nu)= B(:,:,i); else Gu((i-1)*nx+1:(i)*nx,(j-1)*nu+1:(j)*nu)= A(:,:,i)* Gu((i- 2)*nx+1:(i-1)*nx ,(j-1)*nu+1:(j)*nu); end end end % Build matrix Gw= [D(1),zeros; A(2)D(1), D(2), zeros; A(3)A(2)D(1), A(3)D(2), D(3);... ] Gw=zeros(N*nx, N*nw); for i= 1:N for j=1:i if i==j Gw((i-1)*nx+1:(i)*nx,(j-1)*nw+1:(j)*nw)= D(:,:,i); else Gw((i-1)*nx+1:(i)*nx,(j-1)*nw+1:(j)*nw)= A(:,:,i)* Gw((i- 2)*nx+1:(i-1)*nx ,(j-1)*nw+1:(j)*nw); end end end
Anexo 1: Código 76 if x(tam+1)<0 error('¡El dinero en efectivo no puede ser negativo!'); else disp(['Tu efectivo inicial es de : ', num2str(x(tam+1)),' €']); end for i=0:Dia-1 for k=1:tam res(k,:)=lineal(IndiceEmpresas(k),InicioFecha+i,Duracion,HorizontePred,datos) ; end pause(0.5) U=ControlPredictivolineal(IndiceEmpresas,HorizontePred,x,res); display(U); NO_efectivo=0; %Venta de acciones for j=1:tam if U(j)<=0 u(j,i+1)=round(U(j)); x(tam+1)=x(tam+1)- (u(j,i+1))*datos(IndiceEmpresas(j)).Valores(InicioFecha+i,1); x(j)=x(j)+u(j,i+1); NO_efectivo=NO_efectivo+(x(j))*datos(IndiceEmpresas(j)).Valores(InicioFecha+i ,1); end end %Compra de acciones for j=1:tam if U(j)>0 u(j,i+1)=round(U(j)); while u(j,i+1)*datos(IndiceEmpresas(j)).Valores(InicioFecha+i,1) > x(tam+1) && u(j,i+1)~=0 u(j,i+1)=u(j,i+1)-1; end x(tam+1)=x(tam+1)- (u(j,i+1))*datos(IndiceEmpresas(j)).Valores(InicioFecha+i,1); x(j)=x(j)+u(j,i+1); NO_efectivo=NO_efectivo+(x(j))*datos(IndiceEmpresas(j)).Valores(InicioFecha+i ,1); end end x(tam+2)=x(tam+1)+NO_efectivo; efectivo(i+1)=x(tam+1); disp(['Presupuesto: ', num2str(x(tam+2))]); Presupuesto(i+1)=x(end); end %Representación de gráficas grafica(Presupuesto,PresupuestoInicial,IndiceEmpresas,InicioFecha,u,efectivo, datos) lineal.m function res=lineal(IndiceEmpresa, DiaInicio, Tiempo, HorizontePred, datos) x=1:Tiempo; y=zeros(Tiempo,1); for i=Tiempo:-1:1 y(i)= datos(IndiceEmpresa).Valores(DiaInicio+i-Tiempo,1);
77 Aplicación de Control Predictivo en Mercados end x=x'; %M=[x,ones(size(x))]; %M=[x.^3, x.^2, x,ones(size(x))]; M=[x.^5, x.^4, x.^3, x.^2, x,ones(size(x))]; p=M\y; z=@(x) polyval(p,x); %Representación de la recta o polinomio de regresión %figure %hold on %plot(x,y,'ro','markersize',4,'markerfacecolor','r') %fplot(z,[x(1),x(end)]) %hold off res=size(HorizontePred); res(1)=datos(IndiceEmpresa).Valores(DiaInicio,1); for i=2:HorizontePred res(i)=z(Tiempo+i-1); end ControlPredictivolineal.m function [U,x]=ControlPredictivolineal(IndiceEmpresas, HorizontePred, x, res) %Las entradas de esta función son un vector cuyos componentes serán los índices de %las empresas que queremos que participen en el control, el valor del horizonte %de predicción, el estado inicial x y la matriz que contiene los valores %predichos de las acciones de las empresas estudiadas. tam=length(IndiceEmpresas); %%Definición matriz A A(:,:,HorizontePred)=zeros(tam+2); for k=1:HorizontePred A(:,:,k)=eye(tam+2); end cont_A=1; %contador de empresas for ii=1:tam for k=1:HorizontePred A(end,cont_A,k)=res(ii,k); end cont_A=cont_A+1; end A(end,end-1,:)=1; %display(A); %Definición matriz B B(:,:,HorizontePred)=zeros(tam+2,tam); for k=1:HorizontePred B(1:tam,1:tam,k)=eye(tam); end cont_B=1; %contador de empresas for ii=1:tam for k=1:HorizontePred B(tam+1,cont_B,k)=-res(ii,k); end
Anexo 1: Código 78 cont_B=cont_B+1; end %display(B); %Definición matriz D D=zeros(tam+2,tam,HorizontePred); %display(D); %Definición matriz Ax Ax=-eye(tam+2); %display(Ax); %Definición matriz bx bx=zeros(tam+2,1); %display(bx); %Definición matriz Au Au=eye(tam); Au(tam+1:2*tam,1:tam)=-eye(tam); %display(Au); %Definición matriz bu bu=100*ones(2*tam,1); %display(bu); %Definición matriz Q Q=zeros(1,tam+2); Q(end,end)=-1; %display(Q); %Definición matriz R R=zeros(1,tam); %display(R); %Definición matriz N N=HorizontePred; %display(N); %Definición matriz W W=zeros(tam*N,1); %display(W); U=basicmpcTVS(A, B, D, Ax, bx, Au, bu, Q, R, N, W, x); %U=0; end grafica.m function grafica(Presupuesto,PresupuestoInicial,IndiceEmpresas,InicioFecha,u,efectivo, datos) tiempo=length(Presupuesto); CantidadEmpresas=length(IndiceEmpresas); margen=PresupuestoInicial/10; t=1:tiempo; valor_empresa=zeros(tiempo,1); for i=1:CantidadEmpresas for j=t valor_empresa(j)=datos(IndiceEmpresas(i)).Valores(InicioFecha+j-1,1); end
79 Aplicación de Control Predictivo en Mercados figure subplot(2,1,1) plot(t,valor_empresa) title(['Valores de las acciones de la empresa ', datos(IndiceEmpresas(i)).Nombre]) valor_min=min(valor_empresa); valor_max=max(valor_empresa); axis([1 tiempo valor_min valor_max]) xlabel('Días') ylabel('Valor') subplot(2,1,2) bar(u(i,:)) title('Compra/venta de acciones'); axis([1 tiempo -100 100]) xlabel('Días') ylabel('Cantidad de acciones') end figure subplot(2,1,1) plot([0,t],[PresupuestoInicial Presupuesto]); axis([0 tiempo PresupuestoInicial-margen PresupuestoInicial+margen]) title('Variación temporal del presupuesto') xlabel('Días') ylabel('Presupuesto') subplot(2,1,2) plot([0,t],[PresupuestoInicial, efectivo]) title('Dinero en efectivo disponible') axis([0 tiempo 0 max([1000 efectivo])]) xlabel('Días') ylabel('Efectivo') end
Anexo 1: Código 80
81 REFERENCIAS [1] Molleja Valle, Enrique. "Análisis de tendencias en Bolsa mediante algoritmos de clasificación". [2] Pérez Valls, Jesús. "HERRAMIENTA MATLAB PARA LA SELECCIÓN DE ENTRADAS Y PREDICCIÓN NEURONAL DE VALORES DE BOLSA". [3] Merino, María; Vadillo, Fernando. "Matemática Financiera con Matlab©". Revista de Métodos Cuantitativos para la Economía y la Empresa. [4] https://es.mathworks.com/products/finance.html [5] Nieto Martín, Pablo. "Machine Learning Algorithms for Forex Markets". [6] Toledo, Francisco. "De la Posada "Ter Beurze" a Wall Street". https://inbestia.com/analisis/de-la-posada-ter-beurze-a-wall-street [7] Martín, Jesús. "Origen de la Bolsa de Valores". https://www.estrategiasdeinversion.com/actualidad/noticias/bolsa-espana/origen-de-la-bolsa-de-valores- n-390863 [8] Gómez, Lidia. "Jueves Negro, el día que se derrumbó Wall Street y comenzó la Gran Depresión". https://www.elmundo.es/la-aventura-de-la-historia/2014/10/24/544a1b0dca474142598b4579.html [9] Calzada Díaz, Humberto. "El crack del 29, el inicio de La Gran Depresión". https://www.rankia.mx/blog/como-comenzar-invertir-bolsa/3780764-crack-29-inicio-gran-depresion [10] Antequera, William. "Historia y orígenes de la Bolsa". https://www.rankia.com/blog/bolsa-desde- cero/3349076-historia-origenes-bolsa [11] "Ibex 35". https://www.bancosantander.es/es/diccionario-financiero/ibex-35 [12] "Normas técnicas para la composición y cálculo de los índices de sociedad de bolsas, S.A". https://web.archive.org/web/20140425064205/http://www.bolsamadrid.es/docs/Indices/Ibex/normdef.pdf [13] "¿Qué es el Ibex 35?" https://www.gedesco.es/blog/que-es-el-ibex-35/ [14] Calzada Díaz, Humberto. "¿Qué factores mueven la bolsa de valores?". https://www.rankia.mx/blog/como-comenzar-invertir-bolsa/3127530-que-factores-mueven-bolsa-valores [15] "Factores que influyen en las variaciones del mercado de valores". https://salamancartvaldia.es/not/180160/factores-influyen-variaciones-mercado-valores/ [16] "Elementos que influyen en el mercado financiero". https://institutoibt.com/blog/elementos-influyen- mercado-financiero/ [17] Autora: Mª de las Mercedes Pérez de la Parte. Directores: Eduardo Fernández Camacho y Oscar
Referencias 82 Camacho Quintero. Tesis Doctoral: Control Predictivo con Modos Deslizantes. Escuela Superior de Ingenieros. Universidad de Sevilla. Marzo de 2004. [18] Eduardo F. Camacho and Carlos Bordons. "Model Predictive Control". Second Edition. Editorial Springer. 2007 [19] Maestre Torreblanca, José María. "Model Predictive Control" lowlevelMPC.pdf. [20] Implementación de un Control Predictivo Basado en Modelo Aplicado a un Sistema de Control de Caudal de Agua Didáctico. Edwin H. Lopera y Diego A. Mejía. Rev. Tecno Lógicas No. 25, ISSN 0123-7799, Diciembre de 2010. [21] https://es.mathworks.com/help/matlab/learn_matlab/product-description.html [22] https://www.metatrader5.com/es/trading-platform [23] Autora: Ana Sánchez Amores. Tutor: José María Maestre Torreblanca. Trabajo Fin de Grado: Control Predictivo de Drone Comercial. Escuela Superior de Ingenieros. Universidad de Sevilla. 2018.