Por favor, use este identificador para citar o enlazar este ítem:https://uvadoc.uva.es/handle/10324/57220
Título
Aplicación web para la gestión de carteras de inversión usando técnicas de Inteligencia Artificial
Director o Tutor
Año del Documento
2022
Titulación
Grado en Ingeniería Informática
Abstract
En este trabajo se desarrolla una aplicación web que aborda fundamentalmente los problemas de la optimización
de carteras de inversión y de la predicción de valores de activos financieros, con el doble objetivo
de proporcionar una herramienta que permita entender y comprender los principales aspectos de las técnicas
utilizadas, así como ayudar al inversor en su toma de decisiones.
Se utilizan datos pertenecientes a algunos de los principales mercados financieros del mundo, con un total de
840 activos: bolsa, con los índices S&P 500, NASDAQ 100, IBEX 35 y EURO STOXX 50 junto a las empresas
asociadas a ellos, criptodivisas, divisas y materias primas.
La aplicación web construida es completamente interactiva, permitiendo en todo momento al usuario elegir
con qué datos desea trabajar y configurar libremente los principales parámetros de los elementos que componen
las distintas secciones de la misma.
En primer lugar, la web proporciona herramientas para realizar un análisis descriptivo con herramientas propias
de la Estadística aplicadas al análisis financiero, como las medias móviles o distintos indicadores técnicos.
Se proporcionan distintos tipos de visualizaciones que permiten llevar a cabo el estudio de la serie temporal de
un valor. A su vez, se incluyen secciones descriptivas que contienen dashboards con los precios de los activos
de los distintos mercados considerados en el trabajo.
Desde el punto de vista de la optimización de carteras, se trabaja con el modelo de Markowitz construyendo
carteras eficientes, carteras notables y realizando representaciones gráficas de las mismas, así como de la frontera
eficiente. También se permite realizar análisis de sensibilidad con algunos importantes parámetros.
Relacionado con este problema también se construyen regresiones con los índices bursátiles para abordar
el estudio del riesgo de las carteras obtenidas con el modelo de Markowitz.
En cuanto a la predicción de valores de los activos, se utilizan técnicas de machine learning, que van desde
los métodos más empleados como las máquinas de vectores soporte o los ensembles de árboles de aleatorios,
pasando por distintos modelos de redes neuronales englobados dentro de lo que se conoce como deep learning,
como las redes recurrentes o las redes convolucionales. Para la construcción de estos modelos de inteligencia
artificial se utiliza la librería Keras, que permite el uso de Tensorflow con el lenguaje Python.
Un último punto explorado, también en relación con el aprendizaje automático, es el análisis cluster, utilizado
para tratar de buscar grupos entre activos con un comportamiento semejante en términos de rentabilidad.
Para la implementación de la aplicación se han utilizado herramientas de programación web como html,
css y javascript, mientras que la totalidad de elementos interactivos (a excepción del menú de navegación de la
web) que contienen las distintas secciones, así como las visualizaciones que contienen éstas, se han desarrollado
utilizando la librería Shiny del lenguaje R, que a su vez se vale del solver de optimización AMPL para tratar
ese problema y de la librería reticulate para enlazar con Python y poder utilizar los códigos de los modelos de
aprendizaje automático comentados. R a su vez ha sido el lenguaje utilizado en la captación de datos a través
de la API de Yahoo Finance y para el procesamiento y tratamiento de los mismos.
La web se desarrolló sobre una imagen Docker, utilizando una metodología ágil consistente en un Scrum
adaptado. This work develops a web application that fundamentally addresses the problems of investment portfolio
optimization and financial asset value prediction, with the dual objective of providing a tool to understand and
comprehend the main aspects of the techniques used, as well as to help the investor in his decision making.
The data used belong to some of the world’s main financial markets, with a total of 840 assets: stock markets
such as S&P 500, NASDAQ 100, IBEX 35 and EURO STOXX 50 indexes together with the companies
associated with them, cryptocurrencies, currencies and commodities.
The web application is fully interactive, allowing the user to choose at any time which data to work with and
to freely configure the main parameters of the elements that make up the different sections of the application.
Firstly, the website provides tools to perform a descriptive analysis with statistical tools applied to financial
analysis, such as moving averages or different technical indicators. Different types of visualizations are provided
to allow the study of the time series of an asset. At the same time, descriptive sections containing dashboards
with the prices of the assets of the different markets considered in the work are included.
From the point of view of portfolio optimization, we work with the Markowitz model, constructing efficient
portfolios, notable portfolios and making graphical representations of them, as well as of the efficient frontier.
It is also possible to perform sensitivity analysis with some important parameters.
Related to this problem, regressions with stock market indexes are also constructed to address the study of
the risk of the portfolios obtained with the Markowitz model.
As for the prediction of asset values, machine learning techniques are used, ranging from the most commonly
used methods such as support vector machines or ensembles of random trees, to different neural network models
included in what is known as deep learning, such as recurrent networks or convolutional networks. For the
construction of these artificial intelligence models, the Keras library is used, which allows the use of Tensorflow
with the Python language.
A final point explored, also in relation to machine learning, is cluster analysis, used to try to find groups
among assets with similar behavior in terms of profitability.
Web programming tools such as html, css and javascript have been used to implement the application, while
all the interactive elements (with the exception of the web navigation menu) contained in the different sections,
as well as the visualizations they contain, have been developed using the Shiny library of the R language, which
in turn uses the AMPL optimization solver to deal with this problem and the reticulate library to link with Python
and use the codes of the machine learning models mentioned above. R in turn has been the language used to
capture data through the Yahoo Finance API and to process and treat them.
The website was developed on a Docker image, using an agile methodology consisting of an adapted Scrum.
Palabras Clave
Optimización
Cartera de inversión
Modelo de Markowitz
Departamento
Departamento de Informática (Arquitectura y Tecnología de Computadores, Ciencias de la Computación e Inteligencia Artificial, Lenguajes y Sistemas Informáticos)
Idioma
spa
Derechos
openAccess
Collections
- Trabajos Fin de Grado UVa [28807]
Files in this item
![Attribution-NonCommercial-NoDerivatives 4.0 Internacional](/themes/Mirage2//images/creativecommons/cc-by-nc-nd.png)