Full text
5Equation Chapter 1 Section 1 Trabajo Fin de Grado Ingeniería en Tecnologías Industriales Optimización de Carteras para Inversión Bursátil Mediante AT, Multicriterio y Multiobjetivo Autor: Miguel Ángel Mayordomo Gragera Tutor: José Miguel León Blanco Dpto. de Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021
iii Trabajo Fin de Grado Ingeniería en Tecnologías Industriales Optimización de Carteras para Inversión Bursátil Mediante AT, Multicriterio y Multiobjetivo Autor: Miguel Ángel Mayordomo Gragera Tutor: José Miguel León Blanco Profesor Contratado Doctor Dpto. de Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021
Trabajo Fin de Grado: Optimización de Carteras para Inversión Bursátil Mediante AT, Multicriterio y Multiobjetivo Autor: Miguel Ángel Mayordomo Gragera Tutor: José Miguel León Blanco El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2021 El Secretario del Tribunal
v
Agradecimientos Me gustaría agradecer, en primer lugar, a mis padres Miguel Ángel y Fernanda, por la confianza y los ánimos recibidos durante toda esta etapa académica, así como todo el cariño incondicional recibido a lo largo de mi vida. Agradecerles también la educación y los valores que me han dado, resaltanto sobre todo la cultura del trabajo y el esfuerzo. Al final, todo esfuerzo tiene su recompensa. También quiero expresar toda mi gratitud a mi tutor José Miguel por toda la atención recibida, por haberme guiado y aconsejado durante la realización de este trabajo. Miguel Ángel Mayordomo Gragera Sevilla, 2021
vii
Resumen Desde la creación de la primera bolsa de valores en 1460 en Amberes, la optimización de carteras de inversión ha sido un tema de interés cada vez mayor y, el presente trabajo, pretende avanzar un paso más en la consecución de un sistema de creación de las mismas lo más eficiente posible. La idea fundamental es la creación de un sistema de filtros en el que de un conjunto inicial de más de 500 empresas repartidas por varios mercados en el mundo se obtengan no más de 30 compañías, junto con sus pesos para invertir una determinada cantidad de dinero. Para ello se han diseñado tres filtros, en primer lugar, se usará el análisis técnico para hacer una discriminación inicial. En segundo lugar, se utilizará la técnica AHP (proceso o método analítico jerárquico) dentro de la metodología de multicriterio para la toma de decisiones. Por último, se hará uso de las teorías de la cartera eficiente de Markowitz (1952) y su mejora de Konno y Yamakazi (1991) para hacer una exploración del frente de Pareto en la búsqueda de la combinación de empresas que tienen mayor beneficio y menor riesgo, todo esto del filtro basado en las técnicas multiobjetivo. Palabras clave: optimización de carteras, empresas, mercados, análisis técnico, AHP, multicriterio, Markowitz, Konno y Yamakazi, frente de Pareto, beneficio, riesgo, multiobjetivo.
ix Abstract Since the creation of the first stock exchange in 1460 in Antwerp, the optimization of investment portfolios has been a subject of growing interest and the present work aims to go a step further in achieving a system for creating them as efficient as possible. The basic idea is the creation of a filter system in which, from an initial set of more than 500 companies spread over several markets in the world, no more than 30 companies are obtained, together with their weights to invest a certain amount of money. Three filters have been designed for this purpose. First, technical analysis will be used to make an initial discrimination. Secondly, the AHP (analytic hierarchy process) technique will be used within the multi-criteria methodology for decision making. Finally, use will be made of the efficient portfolio theories of Markowitz (1952) and its improvement by Konno and Yamakazi (1991) to make an exploration of the Pareto front in the search for the combination of companies that have higher profit and lower risk, all this from the filter based on the multi-objective techniques. Keywords: portfolio optimization, companies, markets, technical analysis, AHP, multi-criteria, Markowitz, Konno and Yamakazi, Pareto front, profit, risk, multi-objective.
xvii Notación MACD Moving Average Convergence Divergence EMA Exponential Moving Average RSI Relative Strength Index AT Análisis Técnico MMS Media Móvil Simple MAD Desviación Absoluta Promedio
1 INTRODUCCIÓN Y OBJETIVOS a Bolsa de Valores, tal y como la conocemos hoy, ha evolucionado mucho desde que se crease la primera bolsa de materias primas en Amberes en 1460 aunque no sería hasta 1602 cuando se creó el primer sistema de inversión más parecido al actual. En este año se creó la bolsa de Ámsterdam, la más antigua conocida. Actualmente entendemos el sistema de La Bolsa de Valores como una organización pública o privada que permite a cualquier persona que lo desee, bien ellos mismos o mediante un corredor de bolsa, introducir órdenes y realizar negociaciones de compra y venta de valores, siendo estos, los derechos que tienen los propietarios de los mismos. Hoy en día la negociación de estos valores se hace tomando los precios conocidos en tiempo real de los mismos de forma segura y legal en todo el mundo gracias a internet. Hay varios tipos de mercados conocidos de entre los que destacan el mercado de valores, el que se manejará para el presente trabajo, y los mercados de opciones, futuros y derivados. Dentro del mercado de valores se distinguen dos tipos: - Renta fija: cuando se sabe de antemano cuánto interés vamos a percibir. Por ejemplo, la deuda pública. - Renta variable: cuando desconocemos cuánto interés se va a conseguir con una inversión. Es posible tanto ganar como perder, hay un cierto riesgo. Por ejemplo, la compra-venta de las acciones de una empresa. El objetivo de cualquier persona que decide actuar en el mercado es conseguir la máxima rentabilidad a su inversión con el menor riesgo y al menor coste posibles. Por ello, desde los inicios de este tipo de mercado se ha buscado un sistema para conseguir este objetivo. Con el paso de los años las metodologías han ido evolucionando y con la llegada de la tecnología e internet el avance en este campo fue exponencial, la capacidad de cálculo de los ordenadores y la transmisión de información en tiempo real a través de internet hacen posible la creación de programas que ayuden a los inversores a tomar las mejores decisiones posibles. L “Usted ni tiene razón ni se equivoca porque la muchedumbre discrepe con usted. Usted tiene razón porque sus datos y razonamientos son correctos” “Cualquier idiota con un plan puede vencer a cualquier genio sin un plan” - Warren Buffet -
Introducción y objetivos 12 12 1.1 Objetivos y alcance Con el fin de aportar un nuevo enfoque a este camino, el presente trabajo estudia el ámbito del mercado renta variable y concretamente la compra-venta de acciones de empresas reales, debido a que para estudiar el resto de tipos de mercados hay que tener en cuenta una serie de consideraciones y variables que harían este estudio demasiado extenso. La finalidad, por tanto, es el diseño de un algoritmo que permita la creación de una cartera de inversión bursátil de manera fiable y rentable en el medio y largo plazo. La herramienta que se va a utilizar para ello es la programación del mencionado algoritmo en lenguaje R con la interfaz de Rstudio. El procedimiento del algoritmo consistirá en tres pasos. Tras la obtención de datos de Yahoo Finance se procederá a aplicarles un primer filtrado utilizando el análisis técnico. En segundo lugar, a las empresas que pasen el primer filtro se les aplicará otro basado en técnicas multicriterio y por último a las que sigan en el conjunto de las mejores se les aplicará el último filtro basado en multiobjetivo. Se desarrollarán más los pasos intermedios en las metodologías de cada filtro. De esta forma se seleccionará la mejor cartera para el inversor. El objetivo de este algoritmo y su evaluación se realizará con datos del medio plazo, concretamente de forma semanal y, por tanto, los parámetros se fijarán con ese fin. El estudio de los cortos plazos de inversión intradía y los de largo plazo anuales se dejarán para futuras extensiones del estudio ya que se deberían cambiar los parámetros y posiblemente añadir algunas condiciones. Otra observación es que por el mismo motivo solo se analizará cuándo es recomendable comprar. La opción de la venta tiene otras consideraciones que no se han tenido en cuenta en el presente trabajo por lo que los indicadores de análisis técnico serán solamente tenidos en cuenta para la compra. La venta se realizará teniendo en cuenta dos posibilidades, la primera es que llegue el viernes, que es el último día que las bolsas están abiertas. Se considerará el viernes de cada huso horario al que pertenezca el mercado en cuestión. La otra posibilidad sería que se produjese una bajada considerable del precio de la acción que se haya comprado. Se considerará que una bajada del precio es significativa para la venta si sucede algún evento grave, como ha sucedido con la COVID-19 o si cruzan una línea de pérdida a considerar para cada inversor, en el caso presente se considerará un máximo de una pérdida del 30% de la inversión en el activo correspondiente. Los siguientes capítulos se estructuran de la siguiente forma: en primer lugar, una breve explicación de la base matemática de los indicadores utilizados en el primer filtro y las condiciones que debe cumplir un activo para pasar a la segunda fase. En segundo lugar, se explicará el fundamento del segundo filtro, el algoritmo AHP utilizado en la toma de decisiones cuando tenemos varios criterios y un objetivo. En tercer lugar, está el último filtro, fundamentado en la exploración multiobjetivo del frente de Pareto, modelado usando las conclusiones de Konno y Yamakazi (1991). Por último, se encuentran los apartados de simulación del algoritmo y obtención y análisis de los resultados obtenidos.
13 2 PRIMER FILTRO. EL ANÁLISIS TÉCNICO n esta primera parte, tras descargar los datos de las cotizaciones de cada empresa seleccionada en Rstudio, se procede a analizarlos mediante los indicadores MACD, RSI, estocástico y las bandas de Bollinger. El fundamento de estos indicadores puede ser confuso ya que es meramente empírico y la experiencia de numerosos trabajos científicos anteriores avalan el uso de los mismos y la positividad de los resultados tras su uso. Usualmente combinados con otras técnicas como las de multiobjetivo. Entre estos trabajos y artículos se encuentran los siguientes: Fu, T. C., Chung, C. P., & Chung, F. L. (2013) estudian dos formas distintas de aplicar el algoritmo genético a la optimización de carteras de inversión mezclado con el uso de indicadores de análisis técnico. Macedo, L. L., Godinho, P., & Alves, M. J. (2017), de forma semejante al anterior, este trabajo estudia la influencia del uso de algoritmos aleatorios junto al análisis técnico en el manejor de carteras de inversión, incluyendo en esta ocasión una versión del algoritmo de Pareto. Taylor, M. P., & Allen, H. (1992) muestran en su trabajo los resultados de una investigación acerca de la importancia que el análisis técnico tiene sobre la toma de decisiones de inversión bursátil, revelando que el 90 por ciento de los encuestados en el mismo da cierta importancia a esta metodología, complementaria al análisis económico. A continuación, se describen brevemente los indicadores de análisis técnico que se van a usar en la primera parte del algoritmo objeto del trabajo presente. 2.1 Indicador MACD Este indicador es un oscilador, por tanto, se mueve alrededor de la línea 0. Su fiabilidad se centra en analizar la tendencia. Este indicador está formado por tres partes, dos líneas y un histograma. Se utilicirará en el lenguaje matemático la EMA (Exponential Moving Average). La media móvil exponencial es un tipo de media móvil utilizado en estadística para obtener la tendencia de una serie de puntos que, en este caso, serán los precios del activo que se esté analizando. La primera línea se calcula haciendo la diferencia de una EMA a los datos de cierre de las cotizaciones diarias con respecto a otra EMA a los mismos datos, pero con otro período. Los períodos que se suelen utilizar son 12 y 26 períodos, llamándose la primera EMA “rápida” y la segunda “lenta”. Quedaría así: 𝑀𝐴𝐶𝐷 =𝐸𝑀𝐴 ( 𝐶𝐼𝐸𝑅𝑅𝐸*𝑖 ) !" −𝐸𝑀𝐴 ( 𝐶𝐼𝐸𝑅𝑅𝐸*𝑖 ) "# (2.1) Siendo esta la primera línea del indicador. La segunda línea se llama “señal” y se construye realizando otra EMA a la MACD (Moving Average Convergence Divergence) calculada anteriormente, habitualmente de 9 períodos. E
Primer filtro. El análisis técnico 14 14 𝑆𝑒ñ𝑎𝑙 =𝐸𝑀𝐴 ( 𝑀𝐴𝐶𝐷 ) $ (2.2) El histograma se hace con la diferencia de la MACD menos la señal. El indicador que se usará para decidir si comprar será el histograma ya que cuando la diferencia es mayor que cero, es decir las barras del histograma son positivas se considera que las cotizaciones están siguiendo una tendencia alcista, por lo que será recomendable comprar. El código en lenguaje R se muestra como captura en el anexo I. Es el código 2.1. El diagrama de flujo genérico se puede ver en el apartado 2.5, en la figura 2.2. 2.2 Indicador RSI Este indicador se utiliza para mostrar cambios de tendencia en las cotizaciones. RSI (Relative Strengh Index) mide la fuerza con la que actúa oferta y demanda. Para ello compara cuantas veces se ha puesto al alza un valor con cuantas veces ha bajado dicho instrumento en los últimos días. Se calcula dividiendo la media de subidas y bajadas producidas. El cálculo se realiza según los siguientes pasos: 1. Indicadores de subida y bajada, Ut y Dt, para cotizaciones en el instante t Pt: 𝑈%*=* 4 1, 𝑃%*>*𝑃%&! 0, 𝑃%*≤*𝑃%&! (2.3) *𝐷%*=* 4 0, 𝑃%*≥*𝑃%&! 1, 𝑃%*<*𝑃%&! (2.4) 2. Medias simples del número de subidas y bajadas, upt y downt, para los precios de cierre de los pasados n días: 𝑢𝑝%(𝑛)*=*'!('!"#(...('!"$%# * (2.5) 𝑑𝑜𝑤𝑛%(𝑛)*=*+!(+!"#(...(+!"$%# * (2.6) 3. Finalmente: 𝑅𝑆𝐼%(𝑛)*=*100 ,-!(*) ,-!(*)(012*!(*) (2.7) Las señales de compra y venta habituales se posicionan en valores del RSI de 30 y 70, es decir, si el indicador está por encima de 70 existe sobrecompra, por lo que será recomendable vender y, si está por debajo de 30, existe sobreventa por lo que será recomendable comprar. Como ya se mencionó anteriormente se utilizará solamente la señal de compra, ya que la situación de venta se producirá en los casos explicados al final del apartado primero. El código en lenguaje R se muestra como captura en el anexo I. Es el código 2.2. El diagrama de flujo genérico se puede ver en el apartado 2.5, en la figura 2.2.
15 2.3 Indicador estocástico El indicador estocástico es complementario al RSI, también se utiliza para detectar situaciones de sobrecompra o sobreventa. Puede detectar o confirmar tendencias y divergencias. El funcionamiento consiste en comparar el precio actual con máximos y mínimos del pasado, por defecto se utilizan 14 períodos anteriores. Se utilizan dos variantes, rápido (Fast) y lento (Slow), cada una de estas dos partes tiene a su vez otros dos componentes K y D, siendo D la media móvil simple (MMS) de los últimos 3 períodos. Las expresiones matemáticas son las que siguen: 𝐹𝑎𝑠𝑡*%*𝐾3*=* 435665&&7í*[&,&"#)] 7á:[&,&"#)]&7í*[&,&"#)] (2.8) 𝐹𝑎𝑠𝑡*%*𝐷3*=*𝑀𝑀𝑆;*(𝐹𝑎𝑠𝑡*𝐾3) (2.9) 𝑆𝑙𝑜𝑤*%*𝐾3*=*𝐹𝑎𝑠𝑡*%𝐷3 (2.10) 𝑆𝑙𝑜𝑤*%*𝐷3*=*𝑀𝑀𝑆;*(𝑆𝑙𝑜𝑤*𝐾3) (2.11) Para el caso de este estudio se utilizará la línea de Slow K, que indicará una señal de sobreventa cuando se encuentre por debajo de 20 durante un cierto período, lo que señalará una posible subida inminente, significando un buen momento para comprar. El código en lenguaje R se muestra como captura en el anexo I. Es el código 2.3. El diagrama de flujo genérico se puede ver en el apartado 2.5, en la figura 2.2. 2.4 Indicador de la banda de Bollinger El indicador de la banda de Bollinger está formado por tres líneas basadas en medias móviles que indicarán la volatilidad del activo. Cuanto más cercanas estén estas bandas, más baja será la volatilidad y al contrario cuando más lejos se encuentren unas de otras. La banda media es una media móvil simple de 20 períodos, la superior es igual a la media, pero sumándole un múltiplo de la desviación típica de esa media móvil. La inferior es análoga a la superior, pero restando. Se podrá observar una tendencia alcista cuando el precio esté cerca o superior a la banda superior y las bandas se separen entre sí mientras que será bajista cuando el precio de cierre se encuentre por debajo de la inferior. Los parámetros usados por defecto para la formulación son k (número que multiplica a la desviación típica) igual a 2 y 20 períodos para el cálculo de la MMS. 𝑀%(𝑛)*=*𝑀𝑀𝑆(𝑃%,𝑛) (2.12) 𝐵%(𝑛)*=*𝑘*×*𝜎(𝑃%,𝑛) (2.13) 𝑢𝑝%(𝑛)*=*𝑃%+𝐵%(𝑛) (2.14)
Primer filtro. El análisis técnico 16 16 𝑑𝑜𝑤𝑛%(𝑛)*=*𝑃%−𝐵%(𝑛) (2.15) Para ver más clara la señal calculamos el indicador de posición del precio respecto a la banda de modo que si %B es superior a 1 será una señal de compra. %B *=* <!&012*! ,-!=&=012*! (2.16) El código en lenguaje R se muestra como captura en el anexo I. Es el código 2.4. El diagrama de flujo genérico se puede ver en el apartado 2.5, en la figura 2.2. 2.5 Diagramas de flujo de los códigos del filtro primero A continuación, se muestran dos figuras, la primera es el diagrama de flujo del primer filtro completo, y la segunda es el diagrama de flujo que siguen cada uno de los indicadores. Figura 2.1. Diagrama de flujo del primer filtro.
17 Figura 2.2 Diagrama de flujo de un indicador genérico.
Segundo filtro. La optimización multicriterio 24 24 3.1.4 Unión de los datos en una matriz En este bloque simplemente se unen los datos calculados anteriormente y se presentan en una matriz que posteriormente se formateará. El código de este bloque se muestra en el anexo I. En el apartado del código 3.5. 3.2 Formateado de los datos para su procesamiento. El paquete de código que se usará para la realización del filtrado mediante multicriterio es la librería “ahpsurvey” ya mencionada anteriormente. La idea para la que se creó este paquete de datos es la recepción de una estructura matricial cuya primera columna es un listado de una serie de personas a las que se les ha realizado una encuesta y la primera fila es una lista de las comparaciones por pares de cada uno de los criterios sobre los que se supone que las personas hacen las comparaciones de Saaty sobre el tema en cuestión. Esto se adaptará al caso presente, los datos que procesará tienen una estructura igual que la de la tabla 3.2, cuyo formato es admisible por esta librería igualmente. Aplicado al caso de las empresas, las comparaciones se hacen por pares entre las distintas acciones y los que dan el número de Saaty son los criterios. De esta forma se crearía la matriz de comparaciones: Tabla 3.2 Matriz de comparaciones. E1-E2 E1-E3 E1-E4 ... En-1 - En Rentabilidad media Desv. Típica Beta Precio Siendo E1 la empresa número 1, E2 la empresa 2, etc. E1-E2 representa la comparación respecto al criterio concreto de E1 y E2. El número de comparaciones por pares sigue la expresión de las posibles combinaciones por grupos de n elementos sin repetir en un conjunto de N elementos. 𝐶H,7 =* X H * Y *=* H! *!=∙(H&*)! (3.4) Esta tabla se realizará calculando la diferencia de cada uno de los criterios en cada una de las empresas respecto a la que se quiere comparar. Una vez esté esa matriz completa se procederá a transformar cada uno de estos números a la escala de Saaty (1 a 9) positivo o negativo según corresponda. El signo lo dará el cálculo de la resta, ya que será la primera menos la segunda, siendo positivo cuando la primera sea mayor. La escala se calculará mediante una interpolación lineal.
25 𝑦*=*𝑦L*+*M#&=M-= :#&=:-*∙*(𝑥*−*𝑥L) (3.5) 𝑦L=*−9 (3.6) 𝑦!=*9 (3.7) Siendo “y” el número que queremos calcular y “x” el número que sale en la tabla de comparaciones inicial. Al estar “x” variando en un intervalo de infinitos valores se tomarán sus extremos como números muy grandes en comparación con las diferencias habituales entre los distintos criterios, que se determinarán en función de los números que salgan en la experiencia. Es decir, si tomamos por ejemplo los valores extremos de “x” entre -5 y 5 y sale algún número que se sale fuera del rango el programa nos avisará de que tenemos un “Outlier” y ampliaremos el rango de la “x”. Este número extremo del rango se llamará n_grande y estará en el apartado de “Parámetros”. Los valores que salgan como resultado de la interpolación se redondearán al entero más próximo. Si sale un 0 se tomará como un 1, ya que es el valor que representa la igualdad, y si sale un 1 o -1 se tomará como un 2 o -2 ya que la unidad está reservada para el valor mencionado. El código de este bloque se muestra en el anexo I. En el apartado del código 3.6. 3.3 Procesado de los datos y obtención de resultados. Una vez hemos calculado con éxito la matriz de Saaty llamamos a la librería “ahpsurvey” usando los comandos que se presentarán más adelante. Los pasos que realizará este paquete de código serán: 1. Estimación de las importancias relativas. 2. Evaluación de las consistencias de las matrices de comparación mediante el índice de consistencia y la ratio de consistencia. 3. Si la matriz no es consistente se realizarán modificaciones en la misma hasta que lo sea. Para que una matriz sea consistente debe tener una ratio de consistencia que cumpla la tabla de las ratios de consistencia en función del tamaño de la matriz. Tabla 3.3 Tabla de ratios de consistencia máximos para distintos tamaños de matrices. N 1 2 3 4 5 6 7 8 9 10 RI 0 0 0,58 0,9 1,12 1,24 1,32 1,41 1,45 1,49 En este caso, la tabla tendrá tantas filas y columnas como combinaciones por pares del número de empresas haya. Siendo N el número de filas y columnas (que será el mismo por ser cuadrada) y RI la ratio de incosistencia. 4. Agregación de las importancias relativas. Se pueden realizar de dos maneras, el modo distribuido y el ideal. El modo distribuido se realiza cuando se quieren tener en cuenta todas las posibilidades y el ideal cuando se busca la mejor.
Segundo filtro. La optimización multicriterio 26 26 Para el caso que ocupa el presente trabajo se usará el distribuido ya que se quiere tener en cuenta el mayor número de empresas posibles para su evaluación. 5. Obtención de los porcentajes agregados de validez de cada empresa respecto a los criterios seleccionados. Una vez se tienen los porcentajes mencionados se seleccionarán las mejores “n_empresas_sol_filtro_segundo” empresas para evaluarlas en el siguiente filtro, donde se formará la cartera de inversión definitiva. El número de empresas se puede cambiar en el apartado de parámetros. En cuanto a los pesos otorgados a cada una de las empresas se les ha dado mayor valor en función de su rentabilidad, para evitar que pudieran pasar excesivas empresas con rentabilidad negativa al tercer filtro, a no ser que sus otros criterios estuviesen disparados. Concretamente a aquellas con rentabilidad media positiva se les ha dado peso 5, y a aquellas con rentabilidad mayor que 0,5 se les ha dado peso 9. Tras esto se mostrarán por pantalla las empresas que pasan este filtro. El código de este último bloque se expone a continuación. El código de este bloque se muestra en el anexo I. En el apartado del código 3.7. El código interno de la librería “ahpsurvey” se encuentra en el enlace de la bibliografía, en el punto 6.
27 3.4 Diagramas de flujo de los códigos del filtro segundo. Figura 3.5 Diagrama de flujo general del filtro segundo.
Segundo filtro. La optimización multicriterio 28 28 Figura 3.6 Diagrama del proceso seguido en la librería “ahpsurvey”.
29 4 TERCER FILTRO. LA OPTIMIZACIÓN MULTIOBJETIVO na vez se han pasado los dos primeros filtros se porcederá ahora a analizar las empresas restantes aplicando técnicas multiobjetivo. Son varios los modelos que se han seguido en esta tarea en los últimos años, basados la mayoría de ellos en el de Markowitz (1952) y el modelo de Sharpe (1961) en buca de las carteras óptimas maximizando el beneficio y minimizando el riesgo. Avanzando al respecto, en el presente trabajo se utilizará una aproximación al modelo de Konno y Yamakazi (1991) en el que representa el riesgo utilizando la MAD, “Mean Absolute Deviation from the mean” (desviación absoluta promedio). Se perseguirán por tanto dos objetivos, minimizar el riesgo y maximizar el beneficio. Como ya se ha mencionado el riesgo se modelará mediante la MAD. El beneficio se calculará mediante la rentabilidad media diaria, de la misma forma que se ha utilizado en el apartado segundo, formando parte de los criterios. 4.1 Modelo a optimizar El modelo que se va a optimizar es el siguiente. 𝑀𝑎𝑥* ] 𝑥3∙𝑚3∙ ( 𝑏3−𝑟3 ) * 3N! 𝑠.𝑎. (1) ∑ 𝑥3=1 * 3N! (2) ∑ 𝑚3=𝑛º*𝑚í𝑛*𝑑𝑒*𝑎𝑐𝑡𝑖𝑣𝑜𝑠 * 3N! Siendo xi los pesos porcentuales que se le darán a cada uno de los activos en los que se va a invertir. Ese es nuestro objetivo, calcular esos pesos para decidir qué cantidad de dinero se va a destinar a cada empresa. En cuanto al beneficio está representado en la variable bi y el riesgo como ri. Las variables mi son variables binarias que obligan a la existencia de una serie de activos mínimos dentro de la cartera, ya que uno de los posibles problemas de Konno y Yamakazi es que puede tender a dejar un solo activo en la cartera, lo que es inadmisible en base a la teoría de la cartera eficiente de Markowitz, que establece que hay que diversificar los activos para asumir menos riesgos. En cuanto al número óptimo de empresas para alcanzar la diversificación óptima estudios relativamente recientes como el de «Risk Reduction and Portfolio Size: An Analytic Solution» mostraron que, tras analizar una muestra de 3290 acciones, a partir de 30 se puede considerar casi máxima y que, apartir de 200, se puede considerar total. U
Tercer filtro. La optimización multiobjetivo 30 30 4.2 Implementación del modelo El beneficio se calcula como la renta media, que ya ha sido utilizada en el segundo apartado como uno de los criterios para extraer las mejores empresas en el segundo filtro, pero por facilidad se volverán a descargar los datos de las cotizaciones, ya que el proceso seguido a requerido de un ordenamiento de las empresas en una lista diferente a la usada anteriormente para el cálculo de la misma. Recordando la expresión utilizada para su cálculo: *******𝑅𝑒𝑛𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑*=*>?@16=A3*?@=&=>?@16=3*343?@ >?@16=3*343?@ *∙*100 (4.1) *******𝑅𝑒𝑛𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑*𝑚𝑒𝑑𝑖𝑎*𝑑𝑖𝑎𝑟𝑖𝑎*=* ∑ C5*%?D3@30?0& *=0í?E * (4.2) Siendo i una de las empresas. En cuanto al riesgo de cada empresa, la MAD tiene la siguiente expresión: 𝑟3=* ∑ |D.&D=7503?| $/0í23 .4# *=0í?E (4.3) Siendo en este caso i cada una de las empresas y j cada uno de los días en los que se evalúa la rentabilidad media. 4.3 Implementación del modelo en Rstudio A la hora de optimizar el modelo anterior en R se presenta la duda de si utilizar un paquete para optimización, pero la realidad es que es suficiente con calcular la diferencia entre las rentabilidades promedio y los riesgos calculados anteriormente, coger los mejores e interpolar estas diferencias entre 0 y 1, normalizándolas finalmente para que sumen 100 porcentualmente. Recordando la fórmula empleada para la interpolación: 𝑦*=*𝑦L*+*M#&=M-= :#&=:-*∙*(𝑥*−*𝑥L) (4.4) 𝑦L=*0 (4.5) 𝑦!=*1 (4.6) Siendo en este caso el intervalo de x los valores de las diferencias, con x0 como el valor de la menor diferencia del intervalo y x1 la mayor. En cuanto a la normalización, la fórmula es la siguiente: ***𝑤3=* >?@16=05=@?=3*%56-1@?43ó*=3 Q,7?=05=@1E=F?@165E=05=@?E=3*%56-1@?431*5E (4.7) El código referente a cada uno de estos pasos comentados se encuentra en el anexo I, en los apartados de los códigos 4.1, 4.2 y 4.3.
31 4.4 Diagramas de flujo de los códigos del filtro tercero. Figura 4.1 Diagrama de flujo general del filtro tercero.
Simulación 32 32 5 SIMULACIÓN a idea fundamental para simular el algoritmo y obtener resultados para comprobar su efectividad es poner como fecha actual la de una semana anterior y ver qué habría sucedido con esa inversión la semana siguiente empleando los datos disponibles. Para ello la primera opción fue crear un bucle general que englobase el código completo y que fuese cambiando la fecha de inicio y de final en cada iteración y mostrando los resultados. El problema es que el tiempo que requería esto era de muchas horas seguidas debido a que la descarga de los datos lleva entre unos 10 y 15 minutos, y procesarlos otros 5 o 10 por lo que era demasiado tiempo. La segunda opción era descargar los datos una sola vez e ir reutilizándolos para ahorrar el tiempo de descarga y reducir considerablemente la duración completa de la experiencia. El problema que surgió en este caso era que el formateo de los datos para su reutilización hacía que se perdiesen parte de los mismos en cada experiencia lo que provocaba que el bucle se estancase y diera fallos debido a ausencia de datos que no debría haber habido. Además, en cada variación de fecha había empresas que por las distintas circunstancias de cada mercado podían no tener los datos requeridos en la semana de comprobación o incluso podían no cotizar en el mercado aún en esa semana. Estas empresas no eran siempre las mismas, por ejemplo, el 16 de Julio las empresas de Chile no cotizaron o, al menos no aparecen sus cotizaciones en la web de Yahoo. Son casos aislados en cada iteración que no tienen que volver a repetirse. Tampoco había siempre el mismo número de empresas que pasaran los filtros por lo que los distintos parámetros tenían que ser revisados en cada una de las iteraciones, lo que llevó a la última opción para simular. La solución elegida para realizar el experimento fue finalmente realizar las iteraciones manualmente una a una para poder ir revisando los parámetros en cada una y también eliminando los problemas del formateado de datos ya que se descargaban completos cada vez. Esto ha requerido una gran cantidad de tiempo, alrededor de tres días para obtener los datos de un año, pero ha asegurado que los datos son correctos. 5.1 Código de la simulación. El código utilizado para la experiencia es prácticamente el mismo que el mostrado en los apartados anteriores, las únicas diferencias son: - Implementación de fecha de inicio y final de la iteración. - Bloque de análisis de los datos obtenidos y obtención de los resultados de la inversión de la semana. - Exportación de estos datos a un Excel. Se muestran en el anexo I los bloques del código. Concretamente en los apartados de código 5.1 a 5.7. El diagrama de flujo de este apartado se muestra a continuación. L
33 Figura 5.1 Diagrama de flujo general del código de simulación. 5.2 Comentarios sobre los parámetros utilizados. Como se ha comentado anteriormente, los parámetros que se han usado han variado dentro de un intervalo para poder obtener los resultados en función del número de empresas que pasaban los filtros, ya que nunca se ha aceptado menos de 15 empresas finales. Los parámetros usados para la simulación son los siguientes: - “date_inicio”. Es la fecha en la que se activa el programa para determinar las empresas y sus pesos en los que se va a invertir la semana siguiente. - “date_fin”. Es la fecha del sábado de la semana siguiente a la de la fecha de inicio. Se usa para descargar los datos de esa semana y evaluar si la rentabilidad de la inversión ha sido positiva o negativa. - “periodo”. Es el número de días laborables en los que se analiza la tendencia de los indicadores. Para la simulación este dato ha variado entre 30 y 40.
Resultados y conclusiones 40 40 DowJones y en Nasdaq a la vez. Aunque puedan tener distinta cotización lo más habitual es que sean parecidas, lo que implica que se pueda invertir en la misma empresa, pero en dos mercados distintos, produciendo una ganancia parecida. Como se comentó al inicio del apartado, queda por comentar las comparaciones de las desviaciones típicas de los mercados con la obtenida en las simulaciones. Para esto se han descargado los datos de las cotizaciones de los mercados que se han analizado, entre el 1 de septiembre de 2021 y el 1 de enero de 2020, y se ha calculado la desviación típica de cada uno. Las tablas con los datos de las cotizaciones ocupan demasiado y hace demasiado extenso el documento, por lo que simplemente se hace referencia a los datos disponibles en yahoo finance, que es de donde se han obtenido. Una vez calculadas las desviaciones típicas se ha calculado su promedio, obteniendo una desviación típica promedio del 0,01619. Tras esto se ha calculado la desviación típica de las rentabilidades obtenidas en las simulaciones y se ha obtenido un 0,01945. Ambas desviaciones se han calculado como desviaciones poblacionales. Son ambas bastante parecidas, concretamente hay una diferencia de 0,0033 unidades entre ambas. El obtener una desviación poblacional tan parecida a la desviación promedio del mercado es un resultado muy bueno, ya que significa que la dispersión de los resultados que obtiene el algoritmo son semejantes a los de los mercados, lo que da una gran seguridad a la hora de utilizarlo como referencia para invertir, ya que son muchos los fondos de inversión oficiales que toman los mercados como referencia. Como resumen final de las conclusiones se puede decir que las rentabilidades obtenidas, las desviaciones de las mismas y la eficacia de las salidas de emergencia tienen resultados prometedores, debiendo ajustar algunos de los parámetros del algoritmo para poder llevarlo a la práctica con más garantías de éxito en la inversión. Por último, mencionar que todas las tablas completas de estas conclusiones se encuentran en el anexo III.
41 7 LÍNEAS FUTURAS DE INVESTIGACIÓN Y AMPLIACIÓN a realización de este trabajo ha planteado una serie de cuestiones respecto a la metodología seguida para el análisis de los datos y la simulación que sería interesante continuar en un futuro para mejorar los presentes resultados y el código del algoritmo utilizado. Se enumeran a continuación estas cuestiones. 1. La idea inicial de este trabajo era optimizar unas inversiones de carácter semanal, pero viendo que es posible que el análisis de la situación actual se realice en menos de 20 minutos sería posible hacer una adaptación de los parámetros para hacer inversiones intradía, es decir, en vez de entrar el lunes y salir el viernes, entrar y salir durante la semana o, incluso, durante el mismo día. Para ello sería necesario tener acceso a datos en tiempo real. El poder hacer un análisis de este tipo podría disparar la rentabilidad, viendo los resultados actuales con las condiciones con las que se han contado. 2. La realización de un análisis paramétrico en un software de simulación específico tipo VENSIM podría ser útil para comprobar cómo varían los resultados en función de cada uno de los parámetros, para así poder decidir cuáles son los valores óptimos de los mismos. 3. Los datos disponibles actualmente han sido los de Yahoo Finance. Esto ha provocado que haya muchas empresas y mercados a los que no se ha tenido acceso porque no estaban disponibles en la web. Lo ideal sería poder disponer de más datos para ampliar el rango de análisis y poder optar a mejores opciones. 4. Una de las condiciones que se comentaron al principio fue que el trabajo presente se dedicaría únicamente a analizar situaciones favorables para compra y de acciones de empresas solamente. Sería interesante ampliar el análisis a situaciones de venta y a otros activos como futuros, opciones, divisas, criptodivisas, etc. 5. Al igual que se propone analizar los parámetros para inversiones intradía, también sería interesante hacer un análisis de una mayor cantidad de datos para poder ver la efectividad de este algoritmo a nivel anual, ya que la idea actual es un análisis semanal. 6. Los indicadores de análisis técnico utilizados en el primer filtro son los más intuitivos y fáciles de programar, para poder avanzar sería recomendable incluir más indicadores para mejorar la calidad de la previsión de tendencia. 7. Plantear la posibilidad de intercambiar el orden de los filtros segundo y tercero y poner como pesos finales los que salen del orden del multicriterio. 8. Incluir en el filtro de multicirterio algún criterio relativo a predicción de cotizaciones usando técnicas de predicción de demanda. 9. Inlcuir en el algoritmo una parte de búsqueda de empresas que tengan mayor valor real que el que aparece en su cotización para una inversión a largo plazo. L
Referencias 42 42 REFERENCIAS 1. Serrano, F. (2016). Escuela de Bolsa. Manual de trading (Economía) (18.a ed.). Editorial Almuzara. 2. Chiu Yu, K. (2020a, enero 1). 5.9 MACD | Techincal Analysis with R (second edition). Techincal Analysis with R (second edition). https://bookdown.org/kochiuyu/technicalanalysis-with-r-second-edition/macd.html 3. Chiu Yu, K. (2020, 1 enero). 5.10 Relative Strength Index (RSI) | Techincal Analysis with R (second edition). Techincal Analysis with R (second edition). https://bookdown.org/kochiuyu/technical-analysis-with-r-second-edition/relativestrength-index-rsi.html 4. Canessa C., R. (2019, 29 mayo). El Oscilador Estocástico – Cálculo y Uso Para Principiantes. Técnicas de Trading. https://www.tecnicasdetrading.com/2010/06/eloscilador-estocastico.html 5. Chiu Yu, K. (2020a, enero 1). 5.4 Bollinger band | Techincal Analysis with R (second edition). Techincal Analysis with R (second edition). https://bookdown.org/kochiuyu/technical-analysis-with-r-second-edition/bollingerband.html 6. Cho, F. (2019, 24 noviembre). Analytic Hierarchy Process for Survey Data in R. cran.rproject.org. https://cran.r-project.org/web/packages/ahpsurvey/vignettes/myvignette.html 7. Danesh, D., Ryan, M. J., & Abbasi, A. (2017b). A Systematic Comparison of Multicriteria Decision Making Methods for the Improvement of Project Portfolio Management in Complex Organisations. International Journal of Management and Decision Making, 16(1), 1. https://doi.org/10.1504/ijmdm.2017.10005690
43 8. Romero, C. (2007). Teoria de la decision multicriterio/ Theory of the Multi critic Decision. Alianza Editorial Sa. 9. Myers, B. (2021). Principles of Corporate Finance - 7th Edition - Book & CD & PowerWEB by Brealey myers (2003–05-03). McGraw Hill. 10. BETA NEGATIVA. (s. f.). CaixaBank_AULA_784. Recuperado 10 de agosto de 2021, de https://www.caixabank.com/deployedfiles/caixabank/Estaticos/PDFs/AprendaConCaixa Bank/aula_784.pdf 11. Díaz Cid, M. (2016, 1 julio). MODELOS DE GESTIÓN DE CARTERAS: COMPARACIÓN Y PROPUESTA DE MEJORA. ICADE BUSINESS SCHOOL. https://repositorio.comillas.edu/rest/bitstreams/40321/retrieve 12. Gonzalez Guillén, L. (2019, 1 enero). Optimización del riesgo en carteras de inversión. Archivo digital UPM. http://oa.upm.es/54151/ 13. Elton, E. J., & Gruber, M. J. (1977). Risk Reduction and Portfolio Size: An Analytical Solution. The Journal of Business, 50(4), 415. https://doi.org/10.1086/295964 14. Segura, J. (2020, 1 septiembre). Diversificación óptima de una cartera de inversión. Estratega Financiero. https://estrategafinanciero.com/diversificacion-optima-carterainversion/ 15. Macedo, L. L., Godinho, P., & Alves, M. J. (2017b). Mean-semivariance portfolio optimization with multiobjective evolutionary algorithms and technical analysis rules. Expert Systems with Applications, 79, 33–43. https://doi.org/10.1016/j.eswa.2017.02.033 16. CRAN Rstudio. (s. f.). Repositorio CRAN Rstudio. Recuperado 25 de agosto de 2021, de https://cran.r-project.org/ 17. F. (2017, 8 noviembre). Rentabilidad histórica de Warren Buffett. Fondium. https://fondium.com/rentabilidad-historica-de-warren-buffett
Referencias 44 44 18. Hernandez, L. A. (2021, 4 enero). Mejores gestores de fondos españoles en 2020. Rankia. https://www.rankia.com/blog/fondos-inversion/2897106-mejores-gestoresfondos-espanoles-2020 19. Yahoo Finance. (s. f.). Yahoo Finance. Recuperado 6 de septiembre de 2021, de https://es.finance.yahoo.com/
45 ANEXO I CÓDIGO UTILIZADO Se muestran a continuación las capturas del código a las que se han ido haciendo referencia durante el texto. Código 2.1 Programación en Rstudio del indicador MACD.
Anexo I Código utilizado 46 46
47 Código 2.2 Programación en Rstudio del indicador RSI.
Anexo I Código utilizado 48 48
49 Código 2.3 Programación en Rstudio del indicador estocástico.
Anexo I Código utilizado 56 56
57 Código 3.7 Procesado de datos y exposición de resultados.
Anexo I Código utilizado 58 58
59 Código 4.1 Cálculo de la rentabilidad media y del riesgo.
Anexo I Código utilizado 60 60 Código 4.2 Optimización de los pesos de las empresas.
61 Código 4.3 Impresión por pantalla de los resultados.
Anexo I Código utilizado 62 62 Código 5.1 Bloque de parámetros del código para la simulación. Código 5.2 Resto de bloques de código de la simulación.
63 Código 5.3 Obtención de los datos reales de la semana.
Anexo I Código utilizado 64 64 Código 5.4 Continuación del código 5.3.
65 Código 5.5 Continuación del código 5.4. Código 5.6 Continuación del código 5.5.
Anexo III Tabla resultado de las simulaciones 72 72 ANEXO III TABLA RESULTADO DE LAS SIMULACIONES Tabla 10.1 Resultados de la simulación. PRUEBA INICIO FIN RENT SEM EST RENT SEM REAL DESV ERROR REL 1 28/8/21 4/9/21 1,27% 1,33% 0,06% 4,59% 2 21/8/21 28/8/21 1,86% -1,90% -3,76% -202,15% 3 14/8/21 21/8/21 1,85% -1,30% -3,15% -170,27% 4 7/8/21 14/8/21 1,83% 0,92% -0,91% -49,78% 5 31/7/21 7/8/21 1,81% 1,62% -0,19% -10,34% 6 24/7/21 31/7/21 1,47% 1,02% -0,45% -30,38% 7 17/7/21 24/7/21 1,19% 2,13% 0,94% 78,63% 8 10/7/21 17/7/21 0,95% -0,73% -1,68% -176,34% 9 3/7/21 10/7/21 1,44% 0,76% -0,68% -47,05% 10 26/6/21 3/7/21 1,54% -0,27% -1,81% -117,59% 11 19/6/21 26/6/21 1,91% 1,44% -0,47% -24,51% 12 12/6/21 19/6/21 2,25% -1,30% -3,56% -157,94% 13 5/6/21 12/6/21 1,91% 1,53% -0,38% -19,96% 14 29/5/21 5/6/21 1,64% 1,45% -0,20% -12,04% 15 22/5/21 29/5/21 2,29% 0,93% -1,35% -59,20% 16 15/5/21 22/5/21 2,11% 1,56% -0,55% -26,14% 17 8/5/21 15/5/21 2,28% -1,34% -3,62% -158,89% 18 1/5/21 8/5/21 2,26% 1,20% -1,06% -46,86% 19 24/4/21 1/5/21 1,73% -0,77% -2,50% -144,41% 20 17/4/21 24/4/21 1,78% 0,21% -1,58% -88,48% 21 10/4/21 17/4/21 2,79% 1,11% -1,68% -60,37% 22 3/4/21 10/4/21 1,79% -0,77% -2,56% -143,31% 23 27/3/21 3/4/21 2,27% 0,50% -1,77% -78,12% 24 20/3/21 27/3/21 1,67% 1,51% -0,16% -9,75% 25 13/3/21 20/3/21 1,96% 0,42% -1,54% -78,77% 26 6/3/21 13/3/21 1,79% 0,98% -0,81% -45,11% 27 27/2/21 6/3/21 1,41% -0,29% -1,71% -120,81% 28 20/2/21 27/2/21 1,71% -1,19% -2,89% -169,56% 29 13/2/21 20/2/21 2,60% -1,67% -4,27% -164,29% 30 6/2/21 13/2/21 2,98% 2,10% -0,87% -29,35% 31 30/1/21 6/2/21 2,83% 1,16% -1,66% -58,84% 32 23/1/21 30/1/21 3,93% -1,47% -5,40% -137,48% 33 16/1/21 23/1/21 3,34% 2,50% -0,84% -25,19% 34 9/1/21 16/1/21 3,86% 0,39% -3,47% -89,92% 35 2/1/21 9/1/21 4,25% 2,06% -2,20% -51,59% 36 26/12/20 2/1/21 2,96% 1,54% -1,42% -48,04% 37 19/12/20 26/12/20 4,57% -0,12% -4,69% -102,70% 38 12/12/20 19/12/20 4,33% 1,13% -3,20% -73,98% 39 5/12/20 12/12/20 3,46% -0,24% -3,71% -107,06%
73 40 28/11/20 5/12/20 2,62% 2,84% 0,22% 8,40% 41 21/11/20 28/11/20 4,04% 1,82% -2,22% -54,88% 42 14/11/20 21/11/20 1,34% 3,46% 2,13% 158,79% 43 7/11/20 14/11/20 1,61% 1,07% -0,54% -33,52% 44 31/10/20 7/11/20 1,28% 4,44% 3,16% 246,28% 45 24/10/20 31/10/20 1,80% -2,35% -4,15% -230,28% 46 17/10/20 24/10/20 2,50% -1,39% -3,89% -155,52% 47 10/10/20 17/10/20 2,44% -1,79% -4,23% -173,29% 48 3/10/20 10/10/20 0,87% 0,67% -0,20% -22,95% 49 26/9/20 3/10/20 0,47% -0,13% -0,60% -127,66% 50 19/9/20 26/9/20 0,92% -2,37% -3,29% -357,49% 51 12/9/20 19/9/20 0,54% -0,29% -0,83% -153,42% 52 5/9/20 12/9/20 1,03% 0,12% -0,91% -88,41% 53 29/8/20 5/9/20 0,20% -1,17% -1,37% -676,72% 54 22/8/20 29/8/20 2,09% 1,70% -0,39% -18,50% 55 15/8/20 22/8/20 1,84% -0,37% -2,20% -119,95% 56 8/8/20 15/8/20 1,55% -1,24% -2,79% -180,02% 57 1/8/20 8/8/20 2,08% 0,00% -2,08% -100,15% 58 25/7/20 1/8/20 2,54% -0,25% -2,79% -109,89% 59 18/7/20 25/7/20 2,62% 0,43% -2,19% -83,64% 60 11/7/20 18/7/20 2,33% 0,57% -1,76% -75,43% 61 4/7/20 11/7/20 2,33% -0,05% -2,37% -101,98% 62 27/6/20 4/7/20 1,80% 3,29% 1,48% 82,19% 63 20/6/20 27/6/20 2,16% -0,02% -2,18% -100,94% 64 13/6/20 20/6/20 2,45% 3,21% 0,76% 31,01% 65 6/6/20 13/6/20 2,92% -1,88% -4,80% -164,21% 66 30/5/20 6/6/20 2,46% 4,56% 2,10% 85,55% 67 23/5/20 30/5/20 2,30% 1,50% -0,80% -34,75% 68 16/5/20 23/5/20 1,04% -0,60% -1,64% -157,47% 69 9/5/20 16/5/20 1,23% 1,05% -0,18% -14,51% 70 2/5/20 9/5/20 0,83% 1,37% 0,53% 64,08% 71 25/4/20 2/5/20 0,58% 0,93% 0,35% 59,66% 72 18/4/20 25/4/20 0,89% -2,43% -3,32% -372,01% 73 11/4/20 18/4/20 -1,17% 0,45% 1,62% -138,63% 74 4/4/20 11/4/20 -4,34% 6,18% 10,53% -242,48% 75 28/3/20 4/4/20 -5,81% 6,10% 11,91% -205,03% 76 21/3/20 28/3/20 -4,86% 7,23% 12,09% -248,87% 77 14/3/20 21/3/20 -2,72% -4,65% -1,94% 71,30% 78 7/3/20 14/3/20 1,12% -2,25% -3,37% -299,99% 79 29/2/20 7/3/20 7,44% 1,88% -5,57% -74,77% 80 22/2/20 29/2/20 2,08% -1,37% -3,45% -165,92% 81 15/2/20 22/2/20 1,85% -0,23% -2,08% -112,29% 82 8/2/20 15/2/20 1,79% 1,53% -0,26% -14,53% 83 1/2/20 8/2/20 1,88% 1,63% -0,25% -13,24% 84 25/1/20 1/2/20 1,84% 1,30% -0,53% -29,04% 85 18/1/20 25/1/20 1,35% -1,39% -2,75% -202,81% 86 11/1/20 18/1/20 1,06% -0,41% -1,48% -138,78% 87 4/1/20 11/1/20 1,42% 0,73% -0,69% -48,81%
Anexo III Tabla resultado de las simulaciones 74 74 La primera columa es la semana de evaluación, partiendo desde la semana de realización de este trabajo. La segunda y la tercera columa son la fecha de inicio y final para la obtención de los datos, son los sábados de cada semana, como se ha explicado en el apartado 5.3. La siguiente columna son las rentabilidades estimadas para la semana, son unas rentabilidades altas, ya que se han seleccionado las mejores empresas hasta el momento y se ha calculado su rentabilidad media, por tanto, lo más probable es que la semana tenga una rentabilidad menor que la estimación, aunque puede haber casos como se han visto en los que se ha superado la estimación. La quinta columna es la rentabilidad que habríamos obtenido en caso de haber hecho caso al algoritmo. La última columna es la desviación de la realidad respecto de la estimación de rentabilidad. Para cada ejecución del algoritmo se creó una tabla con datos de la ejecución como son las empresas seleccionadas para la semana, los pesos de cada una, el dinero a invertir en cada una tras aplicar los pesos (suponiendo una inversión de 10.000 euros), la rentabilidad porcentual estimada, el dinero final estimado, la ganancia total, la renta semanal estimada, las fechas de inicio y fin, la rentabilidad media real final de cada empresa ponderada por los pesos, la desviación respecto a la estimación, el dinero real ganado con cada empresa, la ganancia total real de la semana, la desviación en la estimación, las rentabilidades totales de cada empresa ponderadas, la rentabilidad acumulada porcentual de la semana (esta es la que queremos), la rentabilidad en caso de que se haya usado la salida de emergencia y los parámetros que hicieron posible que la simulación se ejecutase correctamente. Tabla 10.2 Resultados de la simulación. Rent media semana 0,59% Anualizada 35,98% Acumulada 51,57% Rent media estimada 1,73% Número de intentos 87 Veces rentable 51 Efectividad 58,62% Error medio -90,68% Desviación media -1,14% Media de las ganancias 1,76% Media de las pérdidas -0,77% Desviación de las medias 2,53% Media periodo 37,46 Media tol macd 0,73 Media tol rsi 0,87 Media tol bollinger 0,87 Media tol estocastico 0,87 Nº veces que se ha usado la salida de emergencia 17 Media rent salida emergencia -36,90% Nº veces que se ha usado la salida de emergencia y el final fue mejor 7 Efectividad de la salida de emergencia 58,82%
75 Tabla 10.3 Estadísticas mercados. MERCADOS VECES SELECCIONADO % %5EN100 162 11,16% %5EOMXSPI 144 9,92% %5EKLSE 140 9,64% %5EFTSEMIB.MI 125 8,61% %5ESSMI 104 7,16% %5EATX 99 6,82% %5EFCHI 98 6,75% %5EMXX 85 5,85% %5EIPSA 80 5,51% %5ESTOXX50E 75 5,17% %5EBVSP 61 4,20% %5EGDAXI 46 3,17% %5EHSI 42 2,89% %5EOSEAX 42 2,89% %5EDJI 40 2,75% %5EIXIC 33 2,27% %5EBFX 32 2,20% %5EJKSE 19 1,31% %5EFTSE 15 1,03% %5EIBEX 9 0,62% %5EOMXC20 1 0,07% Tabla 10.4 Estadísticas empresas. EMPRESA VECES SELECCIONADA % COFB.BR 21 1,49 % BN.PA 19 1,34 % ASM.AS 16 1,13 % GETI-B.ST 16 1,13 % KER.PA 15 1,06 % JMT.LS 15 1,06 % KER.PA 15 1,06 % EVN.VI 15 1,06 % OLT.OL 15 1,06 % DIA.MI 15 1,06 % SEB-C.ST 15 1,06 % LONN.SW 15 1,06 % 5347.KL 15 1,06 % CPR.MI 14 0,99 % TRIAN-B.ST 14 0,99 % GEBN.SW 14 0,99 % 5819.KL 14 0,99 % LR.PA 13 0,92 % AC.MX 13 0,92 % LR.PA 13 0,92 % POST.VI 12 0,85 % SCA-B.ST 12 0,85 % PHIA.AS 11 0,78 % CMIG4.SA 11 0,78 % UBI.PA 11 0,78 %
Anexo III Tabla resultado de las simulaciones 76 76 PHIA.AS 11 0,78 % LNZ.VI 11 0,78 % TELIA.ST 11 0,78 % ARION-SDB.ST 11 0,78 % GIVN.SW 11 0,78 % TEP.PA 10 0,71 % SCHB.OL 10 0,71 % PRY.MI 10 0,71 % REC.MI 10 0,71 % 1023.KL 10 0,71 % ABI.BR 9 0,64 % ABI.BR 9 0,64 % PST.MI 9 0,64 % 3816.KL 9 0,64 % 4065.KL 9 0,64 % VIE.PA 8 0,57 % GRUMAB.MX 8 0,57 % GCC.MX 8 0,57 % CAP.SN 8 0,57 % VIE.PA 8 0,57 % WIE.VI 8 0,57 % AMSC.OL 8 0,57 % SRG.MI 8 0,57 % ROG.SW 8 0,57 % AI.PA 7 0,50 % BMW.DE 7 0,50 % BMW.DE 7 0,50 % ESXB 7 0,50 % AI.PA 7 0,50 % CUERVO.MX 7 0,50 % AMXL.MX 7 0,50 % ANDINA-B.SN 7 0,50 % EDPR.LS 7 0,50 % UCB.BR 7 0,50 % AMP.MI 7 0,50 % BHG.ST 7 0,50 % LUG.ST 7 0,50 % SCMN.SW 7 0,50 % NOVN.SW 7 0,50 % PNBN.JK 7 0,50 % 4863.KL 7 0,50 % 5225.KL 7 0,50 % 4715.KL 7 0,50 % ENGI.PA 6 0,42 % DWNI.DE 6 0,42 % SIE.DE 6 0,42 % ENGI.PA 6 0,42 % 9988.HK 6 0,42 % ITSA4.SA 6 0,42 % BRKM5.SA 6 0,42 % BBAS3.SA 6 0,42 % BBAJIOO.MX 6 0,42 % MALLPLAZA.SN 6 0,42 % SONDA.SN 6 0,42 % SECURITY.SN 6 0,42 % ENELAM.SN 6 0,42 % IIA.VI 6 0,42 % ANDR.VI 6 0,42 % VER.VI 6 0,42 % STM.MI 6 0,42 % UNI.MI 6 0,42 %
77 TRN.MI 6 0,42 % BONG.ST 6 0,42 % BRG-B.ST 6 0,42 % SREN.SW 6 0,42 % SGSN.SW 6 0,42 % ASGR.JK 6 0,42 % 6033.KL 6 0,42 % 5168.KL 6 0,42 % 3034.KL 6 0,42 % VOW3.DE 5 0,35 % FME.DE 5 0,35 % STRT 5 0,35 % OR.PA 5 0,35 % HO.PA 5 0,35 % 2319.HK 5 0,35 % EQTL3.SA 5 0,35 % BBSE3.SA 5 0,35 % GMEXICOB.MX 5 0,35 % GFNORTEO.MX 5 0,35 % CCU.SN 5 0,35 % ITAUCORP.SN 5 0,35 % OR.PA 5 0,35 % UQA.VI 5 0,35 % ATS.VI 5 0,35 % DOM.ST 5 0,35 % BINV.ST 5 0,35 % ABBN.SW 5 0,35 % NESN.SW 5 0,35 % UHR.SW 5 0,35 % FPNI.JK 5 0,35 % 1066.KL 5 0,35 % 5183.KL 5 0,35 % 6947.KL 5 0,35 % MC.PA 4 0,28 % PG 4 0,28 % VZ 4 0,28 % KO 4 0,28 % SAP.DE 4 0,28 % CVCY 4 0,28 % CAP.PA 4 0,28 % MC.PA 4 0,28 % ML.PA 4 0,28 % 0101.HK 4 0,28 % 1044.HK 4 0,28 % PETR3.SA 4 0,28 % ALPEKA.MX 4 0,28 % BOLSAA.MX 4 0,28 % MEGACPO.MX 4 0,28 % VAPORES.SN 4 0,28 % ECL.SN 4 0,28 % ENTEL.SN 4 0,28 % SQM-B.SN 4 0,28 % CAP.PA 4 0,28 % MC.PA 4 0,28 % VOE.VI 4 0,28 % MMK.VI 4 0,28 % VIG.VI 4 0,28 % MONC.MI 4 0,28 % BMED.MI 4 0,28 % RACE.MI 4 0,28 % BOUL.ST 4 0,28 %
Anexo III Tabla resultado de las simulaciones 78 78 TFBANK.ST 4 0,28 % CFR.SW 4 0,28 % 1082.KL 4 0,28 % 3182.KL 4 0,28 % 7113.KL 4 0,28 % 4707.KL 4 0,28 % INGA.AS 3 0,21 % DIS 3 0,21 % SMT.L 3 0,21 % ANTO.L 3 0,21 % 1COV.DE 3 0,21 % FNKO 3 0,21 % NVCR 3 0,21 % 0002.HK 3 0,21 % 6098.HK 3 0,21 % RADL3.SA 3 0,21 % PETR4.SA 3 0,21 % KIMBERA.MX 3 0,21 % GENTERA.MX 3 0,21 % CENCOSUD.SN 3 0,21 % RIPLEY.SN 3 0,21 % INGA.AS 3 0,21 % EBS.VI 3 0,21 % OMV.VI 3 0,21 % RBI.VI 3 0,21 % SDRL.OL 3 0,21 % BAMI.MI 3 0,21 % AZM.MI 3 0,21 % LDO.MI 3 0,21 % BETCO.ST 3 0,21 % ADAPT.ST 3 0,21 % NMAN.ST 3 0,21 % NOBINA.ST 3 0,21 % ADEN.SW 3 0,21 % 6012.KL 3 0,21 % 1155.KL 3 0,21 % REE.MC 2 0,14 % SGRE.MC 2 0,14 % CA.PA 2 0,14 % BNP.PA 2 0,14 % MCD 2 0,14 % JNJ 2 0,14 % MRK 2 0,14 % INTC 2 0,14 % PFE 2 0,14 % FB 2 0,14 % V 2 0,14 % SVT.L 2 0,14 % BAS.DE 2 0,14 % IFX.DE 2 0,14 % SLAB 2 0,14 % OPTN 2 0,14 % NMRD 2 0,14 % TWST 2 0,14 % BNP.PA 2 0,14 % CA.PA 2 0,14 % 0017.HK 2 0,14 % 2020.HK 2 0,14 % 1038.HK 2 0,14 % 1109.HK 2 0,14 % 0016.HK 2 0,14 %
79 3690.HK 2 0,14 % 0386.HK 2 0,14 % BBDC3.SA 2 0,14 % ECOR3.SA 2 0,14 % USIM5.SA 2 0,14 % SBSP3.SA 2 0,14 % IENOVA.MX 2 0,14 % CEMEXCPO.MX 2 0,14 % FEMSAUBD.MX 2 0,14 % GCARSOA1.MX 2 0,14 % COPEC.SN 2 0,14 % PARAUCO.SN 2 0,14 % BNP.PA 2 0,14 % GBLB.BR 2 0,14 % EDEN.PA 2 0,14 % KBC.BR 2 0,14 % KBC.BR 2 0,14 % ONTEX.BR 2 0,14 % DOC.VI 2 0,14 % MB.MI 2 0,14 % PIRC.MI 2 0,14 % TIT.MI 2 0,14 % FBK.MI 2 0,14 % IG.MI 2 0,14 % INDU-C.ST 2 0,14 % CBTT-B.ST 2 0,14 % ACTI.ST 2 0,14 % PREV-B.ST 2 0,14 % UBSG.SW 2 0,14 % SIKA.SW 2 0,14 % CSGN.SW 2 0,14 % 4197.KL 2 0,14 % 7277.KL 2 0,14 % 1295.KL 2 0,14 % TEF.MC 1 0,07 % MRL.MC 1 0,07 % IBE.MC 1 0,07 % ACX.MC 1 0,07 % AMS.MC 1 0,07 % ALV.DE 1 0,07 % AIR.PA 1 0,07 % ORA.PA 1 0,07 % G.MI 1 0,07 % SU.PA 1 0,07 % CSCO 1 0,07 % GS 1 0,07 % HD 1 0,07 % MMM 1 0,07 % UTX.VI 1 0,07 % TRV 1 0,07 % AXP 1 0,07 % WMT 1 0,07 % NKE 1 0,07 % WBA 1 0,07 % GOOG 1 0,07 % SDR.L 1 0,07 % BA.L 1 0,07 % EXPN.L 1 0,07 % SMIN.L 1 0,07 % RMV.L 1 0,07 % SPX.L 1 0,07 %
Anexo III Tabla resultado de las simulaciones 80 80 TSCO.L 1 0,07 % ALV.DE 1 0,07 % DB1.DE 1 0,07 % EOAN.DE 1 0,07 % VNA.DE 1 0,07 % CON.DE 1 0,07 % MRK.DE 1 0,07 % FEYE 1 0,07 % NVEC 1 0,07 % SDC 1 0,07 % AIR.PA 1 0,07 % ACA.PA 1 0,07 % WLN.PA 1 0,07 % SU.PA 1 0,07 % 0241.HK 1 0,07 % 1398.HK 1 0,07 % 0960.HK 1 0,07 % BBDC4.SA 1 0,07 % JBSS3.SA 1 0,07 % ENBR3.SA 1 0,07 % KLBN11.SA 1 0,07 % AESGENER.SN 1 0,07 % IAM.SN 1 0,07 % FALABELLA.SN 1 0,07 % ENELCHILE.SN 1 0,07 % CMPC.SN 1 0,07 % AGS.BR 1 0,07 % ILD.PA 1 0,07 % AIR.PA 1 0,07 % RDSA.AS 1 0,07 % CAI.VI 1 0,07 % SPI.VI 1 0,07 % WWIB.OL 1 0,07 % ZAL.OL 1 0,07 % KIT.OL 1 0,07 % AQUA.OL 1 0,07 % GOD.OL 1 0,07 % DNO.OL 1 0,07 % TEN.MI 1 0,07 % G.MI 1 0,07 % IP.MI 1 0,07 % EVO.ST 1 0,07 % SLHN.SW 1 0,07 % BAER.SW 1 0,07 % KDSI.JK 1 0,07 % 5681.KL 1 0,07 % NOVO-B.CO 1 0,07 % ENG.MC 0 0,00 % ACS.MC 0 0,00 % IAG.MC 0 0,00 % GRF.MC 0 0,00 % CABK.MC 0 0,00 % ELE.MC 0 0,00 % NTGY.MC 0 0,00 % ANA.MC 0 0,00 % ITX.MC 0 0,00 % CLNX.MC 0 0,00 % COL.MC 0 0,00 % MAP.MC 0 0,00 % FDR.MC 0 0,00 % VIS.MC 0 0,00 %
81 AENA.MC 0 0,00 % SAN.MC 0 0,00 % FER.MC 0 0,00 % MEL.MC 0 0,00 % BBVA.MC 0 0,00 % MTS.MC 0 0,00 % PHM.MC 0 0,00 % SAB.MC 0 0,00 % DBK.DE 0 0,00 % ASML.AS 0 0,00 % DTE.DE 0 0,00 % SAN.PA 0 0,00 % DPW.DE 0 0,00 % ENEL.MI 0 0,00 % BAYN.DE 0 0,00 % SAF.PA 0 0,00 % AAPL 0 0,00 % UEEC 0 0,00 % MSFT 0 0,00 % CAT 0 0,00 % IBM 0 0,00 % JPM 0 0,00 % CVX 0 0,00 % XOM 0 0,00 % DOW 0 0,00 % AMZN 0 0,00 % TSLA 0 0,00 % NFLX 0 0,00 % BA 0 0,00 % ABF.L 0 0,00 % CCH.L 0 0,00 % PSN.L 0 0,00 % VOD.L 0 0,00 % STJ.L 0 0,00 % WTB.L 0 0,00 % RTO.L 0 0,00 % AUTO.L 0 0,00 % BATS.L 0 0,00 % AHT.L 0 0,00 % CPG.L 0 0,00 % RDSA.L 0 0,00 % ENT.L 0 0,00 % RDSB.L 0 0,00 % ABDN.L 0 0,00 % JET.L 0 0,00 % PRU.L 0 0,00 % MNG.L 0 0,00 % RR.L 0 0,00 % SSE.L 0 0,00 % DAI.DE 0 0,00 % DHER.DE 0 0,00 % BAYN.DE 0 0,00 % MTX.DE 0 0,00 % DPW.DE 0 0,00 % DBK.DE 0 0,00 % RWE.DE 0 0,00 % HEN3.DE 0 0,00 % ADS.DE 0 0,00 % DTE.DE 0 0,00 % CVCO 0 0,00 % NMRK 0 0,00 %