predicción de criptomonedas con técnicas de deep learning

70
Predicción de criptomonedas con técnicas de Deep Learning Grado en Ingeniería Informática Trabajo Fin de Grado Autor: Anton Chernysh Tutor/es: Antonio Javier Gallego Sánchez Jorge Calvo Zaragoza Mayo 2021

Upload: others

Post on 01-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Predicción de criptomonedas con técnicas de Deep Learning

Predicción de criptomonedas

con técnicas de Deep Learning

Grado en Ingeniería Informática

Trabajo Fin de Grado

Autor:

Anton Chernysh

Tutor/es:

Antonio Javier Gallego Sánchez

Jorge Calvo Zaragoza

Mayo 2021

Page 2: Predicción de criptomonedas con técnicas de Deep Learning
Page 3: Predicción de criptomonedas con técnicas de Deep Learning

Prediccion de criptomonedas contecnicas de Deep Learning

-

AutorAnton Chernysh

DirectoresJorge Calvo Zaragoza

Dpto. Lenguajes y Sistemas InformaticosAntonio Javier Gallego Sanchez

Dpto. Lenguajes y Sistemas Informaticos

GRADO EN INGENIERIA INFORMATICA

Alicante, Spain, 1 de junio de 2021

Page 4: Predicción de criptomonedas con técnicas de Deep Learning

Justificacion y Objetivos

Este trabajo aborda el estudio de distintas tecnicas de Deep Learning para la predic-cion de series temporales.

Para hacer este estudio, usaremos los datos historicos de la criptomoneda Ethereumcon un periodo de vela de cinco minutos. Realizaremos un analisis de los datos y extrae-remos nueva informacion a partir de algunos indicadores tecnicos. Finalmente, estudia-remos distintos tipos de arquitecturas neuronales y llevaremos a cabo una comparativade su rendimiento.

Aunque en este documento aplicamos el estudio sobre el mercado de las criptomo-nedas, este trabajo es extrapolable a cualquier otro mercado de valores como el bursatil,e incluso a otro tipo de datos de series temporales.

Page 5: Predicción de criptomonedas con técnicas de Deep Learning

Agradecimientos

En esta seccion quisiera agradecer a Darıo, Marıa y Carlos por ser las personas quemas me han apoyado y las que mas me han ensenado en los ultimos anos.

Por ultimo agradecer a mis tutores, Jorge Calvo y Antonio Javier Gallego Sanchez,por ayudarme y guiarme durante este trabajo.

Page 6: Predicción de criptomonedas con técnicas de Deep Learning

Si compras cosas que no necesitas,pronto tendras que vender las cosas que necesitas.

Warren Buffet.

VI

Page 7: Predicción de criptomonedas con técnicas de Deep Learning

Indice general

1 Introduccion 11.1 Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Estructura del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Introduccion a los mercados financieros 62.1 Analisis fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Analisis tecnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.1 Teorıa de Dow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Velas japonesas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 Retorno de vela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Portafolio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5 Drawdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6 Conclusiones del capıtulo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Fundamentos sobre Aprendizaje Automatico 123.1 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1 Arquitectura de una neurona . . . . . . . . . . . . . . . . . . . . . 143.2.2 Funcion de Activacion . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3.1 Funciones de perdida . . . . . . . . . . . . . . . . . . . . . . . . . 183.3.2 Evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4 Series temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Metodologıa 234.1 Analisis de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1.1 Preprocesado basico . . . . . . . . . . . . . . . . . . . . . . . . . . 244.1.2 Extraccion de informacion . . . . . . . . . . . . . . . . . . . . . . . 244.1.3 Tecnicas trigonometricas . . . . . . . . . . . . . . . . . . . . . . . 274.1.4 Escalado y normalizacion de los datos . . . . . . . . . . . . . . . . 284.1.5 Conclusiones del la seccion de Analisis . . . . . . . . . . . . . . . 30

4.2 Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2.1 Arquitectura MLP . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2.2 Arquitectura Residual . . . . . . . . . . . . . . . . . . . . . . . . . 31

VII

Page 8: Predicción de criptomonedas con técnicas de Deep Learning

Indice general VIII

4.2.3 Arquitecturas recurrentes . . . . . . . . . . . . . . . . . . . . . . . 324.3 Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3.1 Split de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3.2 Entrenamiento y la evaluacion de los modelos . . . . . . . . . . . 37

4.4 Tecnologıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4.1 Librerıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Experimentacion 405.1 Parametros de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . 405.2 Modelo Base Naive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.3 Modelo Dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.4 Modelo Dense Residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.5 Modelo LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.6 Modelo LSTM Residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.7 Modelo GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.8 Modelo GRU Residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.9 Modelo TCN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.10 Modelo TCN-MLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.11 Modelo TCN-RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.12 Modelo TCN-RNN-MLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.13 Backtesting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.14 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6 Conclusiones y trabajos futuros 54

Bibliografıa 57

Lista de Acronimos 58

Page 9: Predicción de criptomonedas con técnicas de Deep Learning

Indice de figuras

2.1 Ejemplo de analisis tecnico (Binance). . . . . . . . . . . . . . . . . . . . . 72.2 Anatomıa de las velas japonesas. . . . . . . . . . . . . . . . . . . . . . . . 92.3 Drawdown en la rentabilidad de un portafolio. . . . . . . . . . . . . . . . 10

3.1 Arquitectura de una red neuronal. . . . . . . . . . . . . . . . . . . . . . . 143.2 Arquitectura de una neurona. . . . . . . . . . . . . . . . . . . . . . . . . . 153.3 Puertas logicas con neuronas. . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Descomposicion de los datos con periodos de una semana. . . . . . . . . 21

4.1 Relacion del error y la complejidad de la red. . . . . . . . . . . . . . . . . 254.2 Coseno aplicado a los datos de fecha con ciclos de una semana y un ano. 284.3 Bloque residual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.4 Arquitectura de una celula LSTM. . . . . . . . . . . . . . . . . . . . . . . 334.5 Arquitectura de una celula GRU. . . . . . . . . . . . . . . . . . . . . . . . 344.6 Ejemplo de aplicacion de un filtro de convolucion. . . . . . . . . . . . . . 344.7 CNN para deteccion de caras. . . . . . . . . . . . . . . . . . . . . . . . . . 354.8 Splits de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.1 Modelo Dense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.2 Modelo Dense Residual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.3 Modelo LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.4 Modelo LSTM Residual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.5 Modelo GRU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.6 Modelo GRU Residual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.7 Modelo Convolucional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.8 Modelo TCN-MPL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.9 Modelo TCN-RNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.10 Modelo TCN-RNN-MLP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.11 Relacion entre las metricas obtenidas respecto al MAE. . . . . . . . . . . 52

IX

Page 10: Predicción de criptomonedas con técnicas de Deep Learning

Indice de tablas

3.1 Puertas logicas OR y XOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.1 Parametros de configuracion de la simulacion de backtesting. . . . . . . 495.2 Resultado de los modelos estudiados. . . . . . . . . . . . . . . . . . . . . 51

X

Page 11: Predicción de criptomonedas con técnicas de Deep Learning

Indice de Listados

5.1. Pseudocodigo del algoritmo de backtesting . . . . . . . . . . . . . . . . . 50

XI

Page 12: Predicción de criptomonedas con técnicas de Deep Learning

1 Introduccion

Actualmente nos encontramos en una epoca donde el mundo de Inteligencia Arti-ficial esta en auge y hasta las empresas mas pequenas quieren explotarlo. A pesar dehaber sido acunado por primera vez a mitades del siglo XX por Alan Turing, no se hahecho tan popular hasta los ultimos anos gracias a los recientes avances en las tarjetasgraficas que permitıan reducir en gran medida su tiempo de computo. La popularidadde estos algoritmos se debe a que son capaces de perfeccionarse en base a ”entrena-mientos”, llegando a reemplazar por completo a un humano. En este trabajo estudia-remos y experimentaremos con las ultimas tecnicas de Deep Learning, un subarea delAprendizaje Automatico.

Otro sector que tambien ha sido muy popular en los ultimos anos es el de las crip-tomonedas. Se trata de una divisa digital que surge como alternativa a la moneda tra-dicional. Este criptoactivo utiliza criptografıa fuerte para asegurar las transacciones,controla la creacion de unidades adicionales y verifica la transferencia usando tecno-logıas de registro distribuido. El control de cada moneda funciona a traves de una basede datos descentralizada mediante cadena de bloques (blockchain en ingles).

Desde el surgimiento de la primera criptomoneda, Bitcoin, en 2009, su valor y el demuchas otras ha aumentado drasticamente. Este evento ha provocado que tanto inver-sores profesionales como aficionados se interesaran por la inversion, las criptomonedasy su funcionamiento. En este trabajo vamos a unir estas dos tecnologıas y ver lo que po-demos lograr.

1

Page 13: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion 2

1.1. Motivacion

Durante los ultimos dos anos me he interesado mucho por otros tipos de conocimien-to fuera de mi area de estudios, como el emprendimiento y la inversion. Esto, sumado ami personalidad competitiva, me han llevado al mundo del trading. El trading se puededefinir como un conjunto de tecnicas y estrategias de compra y venta con el objetivode aprovechar o intentar predecir el estado de un valor y, a diferencia de la inversiontradicional, este busca beneficios a corto plazo. Los mercados donde se negocian estosvalores son cada vez mas complejos debido al alto nivel competitivo que hay entre laspersonas y empresas que participan en el. Ademas, es considerado totalmente impre-decible tal como la defiende la Efficient-market hypothesis 1.

Por ello, a lo largo de este trabajo vamos a estudiar el uso y aplicaciones que tienen lastecnicas de Deep Learning en la capacidad de estimar el precio de un valor en el futuro.En los ultimos anos estas tecnicas nos ha demostrado que podemos detectar patrones ocaracterısticas en los datos que un humano no puede. Ademas, a veces el precio de unvalor no sube o baja sin motivo, sino que esta influenciado principalmente por factoresexternos como las noticias o publicaciones de gente influyente como Elon Musk, quecon una simple palabra son capaces de hacer que el precio de una criptomoneda comoDogecoin suba mas del 100 % en tan solo un dıa.

Como podemos ver se trata mas de algo sociologico que simple aleatoriedad. Es poresto que realizaremos este estudio a partir de las siguientes ideas:

1. Los mercados no son aleatorios.

2. La historia se repite.

3. Los mercados siguen el comportamiento racional de las personas.

1Esta hipotesis establece que los precios de los activos reflejan toda la informacion disponible y que esimposible ”ganarle al mercado”de manera consistente, ya que los precios del mercado solo deberıanreaccionar ante nueva informacion

Page 14: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion 3

1.2. Objetivos

Los principales objetivos de este trabajo son los siguientes:

1. Estudio y analisis de los mercados financieros. Como veremos en el capıtulo 2 deintroduccion a los mercados financieros, existen dos grandes ramas de las cualesnos centraremos solo en el de analisis tecnico.

2. Conocer el estado del arte sobre el aprendizaje automatico. Estudiaremos lasdiferentes arquitecturas que se emplean y como emplearlas para abordar nuestroproblema.

3. Implementacion y experimentacion de las distintas arquitecturas de Deep Lear-ning utilizando las librerıas de gran relevancia como TensorFlow y Keras.

4. Evaluacion y comparativa del rendimiento de los modelos implementados. Es-tudiaremos las distintas funciones y metricas mas utilizadas para la regresion deseries temporales.

5. Combinar nuestro modelo de prediccion con la implementacion de un algo-ritmo de trading. Realizaremos una simulacion de nuestros modelos sobre losmercados financieros mediante un algoritmo de backtesting .

Page 15: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion 4

1.3. Estructura del trabajo

Para facilitar su lectura, el contenido de este documento se encuentra organizado encapıtulos y secciones. A continuacion se describe la estructura que vamos a seguir.

Capıtulo 1: Introduccion ⇒ Capıtulo introductorio que abarca los fundamentosdel proyecto y describe los objetivos que se pretenden alcanzar.

Capıtulo 2: Introduccion a los mercados financieros ⇒ Breve introduccion a losmercados financieros.

Capıtulo 3: Fundamentos sobre Aprendizaje Automatico⇒ Proporciona una ba-se teorica general del ambito de Machine Learning y su papel en el problema aresolver.

Capıtulo 4: Metodologıa⇒ Capıtulo que abarca las arquitecturas neuronales es-tudiadas, las distintas transformaciones aplicadas a los datos y la estrategia utili-zada para abordar el problema.

Capıtulo 5: Experimentacion⇒ Descripcion de los experimentos realizados y losresultados obtenidos.

Capıtulo 6: Conclusiones y trabajos futuros ⇒ Reflexiones sobre los resultadosobtenidos y de posibles trabajos futuros a abordar.

Page 16: Predicción de criptomonedas con técnicas de Deep Learning
Page 17: Predicción de criptomonedas con técnicas de Deep Learning

2 Introduccion a los mercados financieros

Para poder entender la complejidad del problema a resolver, es necesario tener unosconceptos basicos previos sobre los mercados financieros. Estos, se pueden definir comoun espacio a traves del cual se intercambian activos financieros, donde los participantesson los que definen los precios de dichos activos. Un mercado financiero esta regido porla Ley de la Oferta y la Demanda. Es decir, cuando alguien quiere adquirir algo a unprecio determinado, solo lo podra comprar si hay otra persona dispuesta a venderlo aese mismo precio.

Por otro lado, esta el analisis de los mercados financieros, cuyo objetivo es extraerinformacion que nos permita conocer la evolucion de un activo en el futuro. Este a suvez, se puede dividir en dos grandes ramas principales: el analisis fundamental y elanalisis tecnico.

2.1. Analisis fundamental

El objetivo del analisis fundamental es intentar establecer un precio teorico de unactivo a traves del estudio de las variables que afectan a su valor. En caso de que elvalor teorico sea mayor al real, significa que su valor esta infravalorado y tiene ungran potencial de revalorizacion de cara al futuro. Las variables que se incluyen en esteestudio son muchas, pero las mas importantes suelen ser los resultados financieros dela empresa, noticias financieras o polıticas, y opiniones publicas de gente influyente.

Como podemos ver, la mayorıa de estas variables no son cuantitativas, por lo querealmente no hay una forma objetiva de obtener su valor. Por tanto, varios analisispueden llegar a distintos resultados, concluyendo algunos de ellos que el valor delactivo esta infravalorado y otros que esta sobrevalorado. Por otra parte, esto es logico,ya que para que se realice una operacion, debe haber alguien que quiera comprarlo yotro venderlo al mismo precio.

6

Page 18: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion a los mercados financieros 7

2.2. Analisis tecnico

A diferencia del analisis fundamental, el analisis tecnico no pretende calcular el valorteorico del activo, sino de encontrar patrones de comportamiento en la evolucion de sucotizacion, basandose en sus datos historicos. Se trata de un analisis mas grafico, quepermite visualizar las tendencias a lo largo del tiempo. Ademas, utiliza una serie deindicadores u osciladores que permiten extraer nueva informacion que a simple vistano se ve.

Al igual que con el analisis fundamental, no se trata de ciencia exacta, y dos analistaspueden llegar a conclusiones diferentes. Estos dos analisis son muy distintos, pero enla practica, se utilizan ambos ya que se complementan y permiten obtener mas infor-macion. El analisis fundamental se puede ver como un analisis a largo plazo, ya queno sabes cuando se va alcanzar el valor teorico. En cambio, el analisis tecnico es mas acorto plazo, que nos permite detectar el mejor momento para realizar cierta operaciony ası incrementar las posibilidades de obtener beneficios.

Figura 2.1: Ejemplo de analisis tecnico (Binance).

Page 19: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion a los mercados financieros 8

2.2.1. Teorıa de Dow

La teorıa de Dow constituye el origen de lo que hoy se conoce como analisis tecnico.Los principios basicos de la teorıa de Dow se resumen en estos 5 puntos:

1. El precio lo refleja todo. Toda la informacion pasada, presente e incluso futura,como las noticias, inflacion y expectativas estan incluidas y reflejadas en los pre-cios.

2. El precio se mueve por tres principales tendencias:

La tendencia primaria: periodos entre uno y tres anos.

La tendencia secundaria: periodos mensuales o semanales.

La tendencia terciaria: periodos diarios.

3. Las tendencias primarias tienen tres fases.

4. El volumen debe confirmar la tendencia.

5. La tendencia se mantiene hasta que no se demuestre lo contrario. Es decir, hastaque no haya una nueva tendencia en sentido contrario.

2.3. Velas japonesas

Las velas japonesas no es mas que una forma de representar el precio de un valor enel mercado y es uno de los componentes mas conocidos del analisis tecnico. Gracias aesta representacion, podemos reflejar el precio en diferentes intervalos de tiempo, per-mitiendo obtener una visualizacion grafica de como evoluciona su negociacion. Existendos tipos de velas: velas alcistas y velas bajistas. Como podemos ver en la figura 2.2, laprincipal diferencia entre ambas es su color. En caso de que el precio de cierre (Close)es superior al de apertura (Open), la vela indica una subida en el precio durante eseperiodo de tiempo y sera de color verde. En caso contrario, sera roja.

Page 20: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion a los mercados financieros 9

Figura 2.2: Anatomıa de las velas japonesas.

2.3.1. Retorno de vela

El retorno de vela hace referencia a las ganancias o perdidas de una inversion despuesde un periodo de tiempo. Este retorno puede ser simple o porcentual.

ret.simple = preciot+1 − preciot (2.1)

ret.porcentual =preciot+1 − preciot

preciot∗ 100 (2.2)

2.4. Portafolio

El portafolio de inversion, tambien llamado cartera de inversion, es un conjunto deactivos financieros que posee una persona. Es comun intentar diversificarlo en diferen-tes sectores y que en su conjunto te permita multiplicar tu patrimonio a lo largo de losanos.

Mas adelante veremos como se puede comparar el rendimiento de los modelos si-mulando un portafolio y aplicando una estrategia simple de compra y venta.

Page 21: Predicción de criptomonedas con técnicas de Deep Learning

Introduccion a los mercados financieros 10

2.5. Drawdown

Durante nuestro periodo de inversion, el valor de nuestro portafolio puede entraren una racha de perdidas que se ven reflejadas como grandes caıdas en la grafica. ElDrawdown es una medida que representa el maximo retroceso en la curva del valorrespecto al maximo anterior. En el campo del trading, esta medida permite evaluar elriesgo de una estrategia.

Figura 2.3: Drawdown en la rentabilidad de un portafolio.

2.6. Conclusiones del capıtulo

Esta breve introduccion es necesaria para introducir al lector a los mercados financie-ros, conocer los datos con los que vamos a trabajar y poder entender mejor las graficasen los siguientes capıtulos.

Page 22: Predicción de criptomonedas con técnicas de Deep Learning
Page 23: Predicción de criptomonedas con técnicas de Deep Learning

3 Fundamentos sobre AprendizajeAutomatico

En este capıtulo vamos a explicar un poco en mas detalle el problema del que trataeste estudio, las tecnicas actuales que se usan y el enfoque que vamos a tomar pararesolverlo. Para terminar, realizaremos un breve estudio acerca de como medir y com-parar el rendimiento de nuestro algoritmo.

3.1. Machine Learning

En informatica, un programa o algoritmo, se define como una lista de instruccionesfinitas y ordenadas que permiten la resolucion de un problema determinado. Cuandoel algoritmo depende de informacion externa y no conocida a priori, es necesario espe-cificar una respuesta para cada caso posible y, en caso de no hacerlo, el programa puedefallar provocando una respuesta imprevisible y erronea.

A mediados del siglo XX se crea una nueva disciplina de las ciencias de la informa-cion llamada Inteligencia Artificial. Surge con la intencion de crear un sistema capaz deaprender y desarrollar una inteligencia como la de un humano y que permita simularsu comportamiento. Desde entonces, se han creado una gran cantidad de algoritmosque se pueden considerar ”inteligentes” lo que ha llevado a crear distintas categorıasde acuerdo a sus propiedades y a los tipos de problemas que pueden solucionar.

El subcampo de la Inteligencia Artificial mas conocido es Machine Learning[1] (ML).Este area de estudio cuenta con algoritmos capaces de aprender analizando distintainformacion, permitiendo al programa adaptarse a nuevas situaciones nunca vistas yresponder apropiadamente sin ser explıcitamente programadas.

Este campo se puede dividir en tres grandes grupos segun el tipo de aprendizaje:

Aprendizaje supervisado: el aprendizaje se realiza a partir de casos de ejemploque estan etiquetados, de manera que cuando el programa comete un error, pode-mos medirlo y modificar nuestro modelo durante el entrenamiento. Gracias a que

12

Page 24: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 13

los datos estan etiquetado y que podemos saber cuanto nos hemos equivocado, elalgoritmo puede aprender de manera mucho mas rapida que usando el resto detecnicas. Esta rama a su vez se puede dividir en dos grupos:

• Clasificacion: la prediccion se realiza sobre un conjunto limitado de cate-gorıas o clases. Por ejemplo clasificacion de imagen para distinguir entredistintos tipos de animales.

• Regresion: la prediccion consiste de un valor numerico. Por ejemplo predecirel numero de ventas de una tienda.

Aprendizaje no supervisado: a diferencia del supervisado, este no tiene informa-cion etiquetada. Este algoritmo no intenta ajustarse a los datos de entrada y salida,sino en aumentar el conocimiento estructural de los datos disponibles. Los casosde uso podrıan ser el agrupamiento de los datos segun su similitud (clustering) odeteccion de anomalıas.

Aprendizaje reforzado: al igual que el no supervisado este tampoco tiene infor-macion etiquetada. Se trata de un agente que explora un entorno desconocido yaprende a base de comportamientos de prueba y error. En caso de cumplir una ta-rea, es recompensado, y en las siguientes iteraciones intentara realizar la tarea dela manera mas optima para obtener la maxima recompensa. Este tipo de apren-dizaje es el mas similar a como aprende el ser humano, y de la misma maneranecesita de muchas iteraciones para aprender. Los casos de uso mas comunes esen videojuegos, donde el agente se dedica a jugar al videojuego durante muchasiteraciones y evolucionando en cada una de ellas. Para optimizar su tiempo decomputo se realizan diferentes simulaciones en paralelo y se mezclan las mejoresversiones, lo que recibe el nombre de algoritmos geneticos.

Page 25: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 14

3.2. Deep Learning

A pesar de que la Inteligencia Artificial busca imitar el comportamiento humano, losalgoritmos tradicionales de ML siguen un enfoque racional y emplean metodos ma-tematicos y estadısticos para solucionar un determinado problema. Con la intencion deconseguir imitar mejor el aprendizaje humano, se crean los modelos neuronales.

Deep Learning (DL) es un area dentro del Machine Learning que consiste en unajerarquıa de neuronas interconectadas, denominadas redes neuronales, que permitendetectar patrones y caracterısticas mas complejas que el ML.

Figura 3.1: Arquitectura de una red neuronal.

3.2.1. Arquitectura de una neurona

Las neuronas de las que estan formadas estas redes funcionan de manera similar quela de nuestros cerebros y se pueden representar como funciones lineales que recibendatos y devuelven otros. Como se puede ver en la figura 3.2 el funcionamiento de laneurona consiste en una suma ponderada de los datos de entrada y los pesos de laneurona. Al resultado se le anade un peso extra denominado bias para modificarlo deforma directa y, finalmente, se le aplica una funcion de activacion que, ademas de mo-dificar el valor, facilita durante el entrenamiento calcular el grado de influencia de laneurona sobre el resultado final. Este resultado lo reciben como dato de entrada todaslas neuronas de la siguiente capa, y ası hasta obtener el resultado final.

Page 26: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 15

Figura 3.2: Arquitectura de una neurona.

Ahora bien, estas neuronas por si solas no son capaces de resolver todos los pro-blemas. Por ejemplo imaginemos que queremos realizar un algoritmo que simule elcomportamiento de una puerta logica. Para este ejemplo vamos a utilizar las puertaslogicas OR y XOR. Su funcionamiento se puede ver en la tabla 3.1. Como podemos enla figura 3.3, en el caso de la puerta OR es facil, solo necesitamos una linea (funcion)para poder dividir el espacio y ası distinguir entre un grupo u otro (rojo representael 0 y verde el 1). En cambio para la puerta XOR es imposible de lograrlo empleandosolamente una funcion. Es aquı donde necesitamos emplear una segunda neurona quepermita al modelo ajustarse mejor a los datos.

Entrada 1 Entrada 2 OR XOR0 0 0 00 1 1 11 0 1 11 1 1 0

Tabla 3.1: Puertas logicas OR y XOR.

Page 27: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 16

Figura 3.3: Puertas logicas con neuronas.

3.2.2. Funcion de Activacion

Las funciones de activacion no son mas que funciones no lineales que se le aplican ala salida de la neurona. Gracias a estas funciones la red es capaz de detectar patrones nolineales. Otra caracterıstica importante es que durante el entrenamiento estas funcionesnos permiten calcular de manera mas sencilla la responsabilidad que ha tenido cadaneurona en la solucion final, para ası poder saber cuanto hay que ajustar sus pesos. Lasfunciones de activacion mas usadas son las siguientes:

Sigmoide: para cualquier valor de x, esta funcion devuelve su correspondientevalor en el rango de [0, 1]. Su principal uso se encuentra en la ultima capa de sali-da. Gracias a su rango de valores que devuelve, podemos utilizar las prediccionesresultantes como probabilidades que muestras la certeza de la prediccion.

sigmoide(x) =1

1 + e−t(3.1)

Hyperbolic tangent (Tanh): para cualquier valor de x, esta funcion devuelve sucorrespondiente valor en el rango de [-1, 1].

tanh(x) =ex − e−x

ex + e−x(3.2)

Rectified Linear Unit (ReLU): esta funcion es la mas simple y a su vez la mas

Page 28: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 17

usada. Para una x positiva devuelve el mismo valor, y en caso contrario devuelvecero.

relu(x) =

{x x > 00 otherwise.

(3.3)

3.3. Entrenamiento

Cuando decimos que el modelo aprende, lo que realmente esta haciendo es ajustarsea los datos que recibe con el objetivo de obtener un resultado lo mas parecido posi-ble al valor real. El proceso de ajuste se denomina entrenamiento de la red y consisteprincipalmente en dos partes:

Feedforward: consiste en darle a la red los valores de entrada y que te devuelvalos valores de salida. Como hemos mencionado, este proceso solamente consisteen una serie de sumas ponderadas que heredan el resultado a las siguientes capashasta obtener un resultado final.

Backpropagation: una vez obtenido el resultado, este tendra un error respecto alvalor real que se deberıa obtener. La siguiente etapa del entrenamiento consisteen medir ese error y castigar a cada neurona modificando sus pesos en funcion dela influencia que ha tenido sobre el resultado final.

Page 29: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 18

3.3.1. Funciones de perdida

Para el calculo del error durante el entrenamiento, se emplean funciones de perdida,tambien llamadas funciones de error, y son un elemento fundamental en la teorıa deoptimizacion de problemas en varias ciencias: Teorıa de decision (donde juega un granpapel la Teorıa Bayesiana, propuesta por el Ingles Thomas Bayes en el siglo XVIII),estimacion, pronostico, inversion financiera y en la econometrıa, entre otros [2]. La de-finicion mas sencilla de una funcion de perdida podrıa darse de la siguiente manera:dada una prediccion yi, y el valor real yi, la funcion de perdida mide la diferencia odiscrepancia entre el algoritmo o modelo de prediccion y la salida deseada. El errorcalculado nos permite propagarlo por la arquitectura actualizando sus pesos, y de estamanera hacer que la red ”aprenda”.

Algunos ejemplos de las funciones clasicas son las cuadraticas, las de valor absoluto,las de cuantiles y la 0-1. Cada una de estas funciones se soportan en una medida es-tadıstica (la media, la media al cuadrado o la mediana), que se convierte en un criterioimportante para la decision del modelo de estimacion.

Por otro lado, dependiendo de como se tratan las magnitudes de los errores y susigno, se podrıan clasificar las funciones como simetricas y asimetricas. Las mas popu-lares son las funciones simetricas, pero a veces con las asimetricas se puede lograr unamedicion mas real desde el punto de vista economico y no matematico. Por ejemploen [3] crean su propia funcion de perdida para que penalice mas los errores donde latendencia de la prediccion sea contraria a la que realmente ocurre posteriormente. Ennuestro estudio hemos utilizado las siguientes funciones:

Mean Absolute Error (MAE): mide el promedio de la diferencia absoluta entre elvalor real y el valor predicho.

MAE =1

N

N∑i=0

|yi − yi| (3.4)

Mean Squared Error (MSE): similar a MAE, pero penaliza mas cuanto mayor esel error. Pero como veremos mas adelante, tanto MAE como MSE son una medidaabsoluta, y van a penalizar por igual las diferencias de 20− 10, que 200− 190.

MSE =1

N

N∑i=0

(yi − yi)2 (3.5)

Huber loss: funcion de perdida usada para regresiones robustas que combina losdos errores de MAE y MSE. Esta funcion es menos sensible a los errores muy gran-des. Utiliza MAE para errores mas grandes que δ y en caso contrario MSE. Esto

Page 30: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 19

puede resultar util cuando queremos utilizar el error cuadratico pero queremosignorar los errores grandes provocados por anomalıas.

Huber =

{12(yi − yi)

2 for |yi − yi| ≤ δ,δ |yi − yi| − 1

2δ2 otherwise.

(3.6)

3.3.2. Evaluacion

Despues de entrenar un modelo, para poder clasificarlo y evaluarlo, es necesariotener una medida que mida su rendimiento. Estas medidas pueden ser absolutas sicalculan el error sin importar el signo, relativas a una base si utilizan un valor paracompararse y relativas al tamano de los errores si arrojan un valor porcentual.

Las funciones que hemos mencionado en el apartado de funciones de perdida 3.3.1 seconsideran solamente absolutas, ya que no miden un error proporcional a la magnitudde los datos y no podemos saber si un es error es grande o pequeno. Esto no impide aque podamos usarlo para compararlo con el resultado de otro modelo de referencia.

3.3.2.1. Metricas relativas

De la metricas relativas se han estudiado las siguientes:

Mean Absolute Scaled Error (MASE): se calcula como ratio de MAE en datos detest dividido por el MAE de las predicciones del metodo naıve 1 de un paso sobreel conjunto de entrenamiento.

MASE =MAE/Q; Q =1

N − 1

N∑i=2

|yi − yi−1| (3.7)

Mean Absolute Percentage Error (MAPE): es una de las medidas estadısticasmas usadas para evaluar la precision de un modelo y permite calcular el errorporcentual independientemente de la magnitud de los datos. La desventaja deMAPE es que tiende a infinito con la presencia de valores reales iguales o cercanosa cero, y tiene una curva de error asimetrica porque posee un valor mınimo, perono maximo.

MAPE =1

N

N∑i=0

|yi − yi|yi

∗ 100 (3.8)

1Tecnica de estimacion que utiliza como predicciones los valores reales del pasado.

Page 31: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 20

Symmetric Mean Absolute Percentage Error (SMAPE): se presenta como una so-lucion a las limitaciones de MAPE, pero realmente no soluciona del todo ningunade ellas [4].

SMAPE =1

N

N∑i=0

|yi − yi|(yi + yi)/2

∗ 100 (3.9)

3.3.2.2. Backtesting

Para nuestro problema concreto, una de las formas para medir el rendimiento de losmodelos es simulando su comportamiento mediante backtesting. Esta simulacion con-siste en una estrategia de compra y venta utilizando la informacion proporcionada porlas predicciones. Gracias a esta simulacion podemos medir y comparar el rendimien-to del portafolio y el drawdown maximo de cada modelo durante el rango de tiemposimulado.

Hay que destacar que esta simulacion se usa concretamente para medir el riesgo deuna estrategia y no la precision de las predicciones de un modelo. En nuestro caso, laspredicciones forman una parte importante de la estrategia, por lo tanto el modelo puedeser preciso y la estrategia poco robusta, donde robusta hace referencia a la constancia delas ganancias y un drawdown bajo. De la misma manera la estrategia puede ser buena,pero si las predicciones son poco precisas, estas haran que la estrategia pierda.

3.4. Series temporales

Los datos que vamos a utilizar en este trabajo pertenecen a la categorıa de seriestemporales. Una serie temporal se define como una serie de datos recogidos secuen-cialmente en el tiempo. A diferencia de otros tipos de datos, estos tienen registrado elmomento exacto en el cual fueron recogidos y que suelen estar tomados en instantes detiempo equiespaciados o bien acumulados en intervalos. Su caracterıstica es que las ob-servaciones sucesivas no son independientes entre sı y su analisis debe llevarse a caboteniendo en cuenta su orden temporal.

Durante su analisis, cuando se piensa que los datos presentan una tendencia princi-pal o cierta periodicidad, se considera que la serie temporal se puede representar comoun agregado (suma) o como una combinacion (multiplicacion) de estos tres componen-tes:

1. Tendencia: valor y direccion que representa la tendencia principal de la serie a

Page 32: Predicción de criptomonedas con técnicas de Deep Learning

Fundamentos sobre Aprendizaje Automatico 21

largo plazo.

2. Estacionalidad: representa un ciclo repetitivo de la serie que indica tendenciasrepetitivas en periodos de tiempo equidistantes.

3. Ruido: despues de extraer los componentes anteriores lo que queda se consideraruido con comportamiento aleatorio.

En la figura 3.4 podemos ver un ejemplo de descomposicion de nuestros datos en sustres componentes principales usando composicion mediante combinacion y periodosde una semana.

Figura 3.4: Descomposicion de los datos con periodos de una semana.

La prediccion de series temporales es un problema muy comun ya que la mayorıa delos datos del mundo real son almacenados junto a su fecha, y esta informacion resultamuy util. La distribucion de nuestro horario y la forma de medir el tiempo hace quecada cierto tiempo realizaremos acciones similares lo que lo convierte en patrones tem-porales y gracias a ellos podemos obtener predicciones mas precisas. Un claro ejemploes un incremento de compras de regalos en epoca de fiestas o el tiempo meteorologicoque se repite de manera anual.

Page 33: Predicción de criptomonedas con técnicas de Deep Learning
Page 34: Predicción de criptomonedas con técnicas de Deep Learning

4 Metodologıa

El trabajo realizado se puede dividir en dos grandes bloques. Por un lado, se harealizado un estudio sobre los datos con los que hemos trabajado, y de trabajos similaresa partir de los cuales poder partir. De la misma manera, se han estudiado algunas delas tecnicas modernas de Deep Learning que puedan resultar utiles para la resoluciondel problema planteado. En este capıtulo hablaremos de los metodos y estrategias quese han aplicado para abordar el problema planteado en este trabajo.

4.1. Analisis de datos

Existen multitud de diferentes activos financieros que podıan haber sido usados paraeste estudio. Ademas, como en el caso de las criptomonedas, su informacion puede serextraıda de diferentes sitios. Se ha optado por la utilizacion de las criptomonedas por sugran popularidad reciente y el gran potencial que pueden tener en un futuro cercano.

Concretamente, los datos que hemos utilizado para el estudio estan formados porel historico de la criptomoneda Ethereum con los precios respecto al dolar, representa-dos como velas con una temporalidad de cinco minutos y extraıdos de la plataformaBinance. Como vimos en la seccion 2.3 de Velas Japonesas, las variables de los que dis-ponemos son cinco: precio maximo, precio mınimo, precio de apertura, precio de cierre,el volumen durante el periodo de la vela y, ademas, la fecha exacta de la apertura de lavela.

En los siguientes apartados veremos como se han tratado los datos y los distintostipos de preprocesado aplicados.

23

Page 35: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 24

4.1.1. Preprocesado basico

Los datos crudos descargados presentan valores nulos que se deben a perdida deinformacion en la plataforma que puede ser provocado por algun fallo o interrupcionde su funcionamiento por mantenimiento. Por lo tanto se ha aplicado un preprocesadobasico para rellenar los valores vacıos con los ultimos valores disponibles, y ademas, seha comprobado que no haya fechas duplicadas ni valores extremos erroneos.

4.1.2. Extraccion de informacion

Antes hemos mencionado que las redes neuronales se consideran algoritmos con unacapacidad de aprendizaje profundo y que consiguen extraer caracterısticas de los datosque a veces un ser humano es incapaz. Tambien, que esto se debe a su jerarquıa decapas y neuronas, donde cada capa extrae algun tipo de informacion y la compartecon las siguientes capas. Se podrıa pensar que cuantas mas capas y neuronas tengauna red, mejor va predecir, y que extraer nuevas caracterısticas, serıa como duplicardatos que ya tenemos, ya que la red deberıa ser capaz de hacerlo por su cuenta y mejor.Por desgracia, la realidad es mas compleja. En los siguientes apartados explicaremoscomo influye el tamano de la red en los resultados, la importancia de extraer nuevascaracterısticas y cuales hemos utilizado.

4.1.2.1. Datos de entrenamiento vs test

Los datos de entrenamiento, como su nombre indica, son los datos usados para entre-nar un modelo y conseguir que este aprenda. Ahora bien, no queremos que se memo-rice los datos, sino conseguir extraer caracterısticas que nos permitan predecir mejor elfuturo. Recordemos que cuando entrenamos un modelo modificamos sus pesos en fun-cion de cuanto se ha equivocado, con el objetivo de obtener predicciones mas precisas.Pero ese error no es real, es decir, que tengamos un error bajo en los datos de entre-namiento no asegura que sea igual de bajo en las predicciones que hagamos con datosque el modelo nunca habıa visto. Es por esto que guardamos una parte de los ultimosdatos disponibles, que llamaremos test, para saber si el modelo es capaz de predecirlosigual de bien.

Page 36: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 25

4.1.2.2. Complejidad de la red

En Machine Learning, la complejidad de un modelo hace referencia a la cantidad deparametros o pesos de los que esta formado. Cuantos mas parametros tiene, mayor ca-pacidad tiene de relacionar las distintas caracterısticas de los datos de entrada con losde salida. Sin embargo, a medida que vayamos aumentando la cantidad de parametros,el modelo deja de extraer caracterısticas importantes, y empieza a guardarse informa-cion menos importante pero que le permite obtener un error mas pequeno durante elentrenamiento. En otras palabras, estarıa memorizando los datos de entrenamiento pro-vocando que no sepa reaccionar a nuevos datos nunca vistos. En Machine Learning estecomportamiento recibe el nombre de Overfitting (sobre-entrenamiento). Por otro lado,si hacemos un modelo muy pequeno, puede ser insuficiente para detectar caracterısti-cas mas complejas. En la figura 4.1 se puede observar como el error converge y diverge,entre los datos usados para entrenar y los datos nunca vistos, a medida que aumenta lacomplejidad de la red.

Figura 4.1: Relacion del error y la complejidad de la red.

La extraccion de informacion nos permite indicarle a la red caracterısticas importan-tes en forma de nuevos datos de entrada. De esta manera podemos reducir la comple-jidad del modelo y evitar en cierta medida que la red aprenda informacion irrelevantede los datos de entrenamiento.

Page 37: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 26

4.1.2.3. Indicadores tecnicos

Los indicadores tecnicos [5] son medidas que extraen diferentes tipos de informacionde un mercado financiero. Miden caracterısticas como la tendencia del mercado y sonfundamentales en el analisis tecnico y las estrategias de trading.

En este estudio hemos utilizado los siguientes indicadores:

Exponential Moving Average (EMA): es uno de los indicadores de tendencia masusados. Permite visualizar el precio medio de un activo durante un periodo. Adiferencia de una media movil simple (SMA), este indicador realiza una mediaponderada aplicando mayor peso a los precios mas recientes.

Percentage Price Oscillator (PPO): es un oscilador de momentum (impulso), quemide la diferencia entre dos medias moviles1 como un porcentaje de la mediamovil mas grande.

Rate of Change (ROC): tambien conocido simplemente como Momentum. Mideel retorno porcentual despues de cierto periodo.

Relative Strength Index (RSI): compara las tendencias alcistas y bajistas para me-dir la velocidad y el cambio de los movimientos del precios de un activo duranteun rango de tiempo. Se utiliza principalmente para intentar identificar condicio-nes de sobrecompra o sobreventa en la negociacion del activo.

Stochastic RSI (stochRSI): mide el valor de RSI respecto al valor maximo y mıni-mo durante un periodo de tiempo. Se puede considerar como un indicador de unindicador.

Money Flow Index (MFI): es un oscilador de volumen que utiliza el precio y elvolumen para medir la presion de compra y venta.

Donchian Channel: esta formado por dos medias moviles y una linea central. Lasdos medias se obtienen de los valores maximo y mınimos respectivamente, y lalinea central es el resultado de la media. Para no utilizar una cantidad elevada dedatos solo se ha utilizado la linea central.

Commodity Channel Index (CCI): mide la relacion entre el precio actual y el pre-cio medio durante un perıodo de tiempo. El CCI se puede utilizar para identificaruna nueva tendencia o advertir de condiciones extremas.

1Una media movil no es mas que una media aritmetica de los precios en un rango de tiempo.

Page 38: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 27

Moving Average Convergence Divergence (MACD): es un indicador de tenden-cia que mide la relacion entre una EMA rapida (periodo corto) y una EMA lenta(periodo largo). Se suele emplear en estrategias de trading para detectar posiblesentradas al mercado. Cuando la media rapida corta a la larga por debajo, se su-pone que el precio va subir, y cuando la corta por arriba, que el precio va bajar.

4.1.3. Tecnicas trigonometricas

Al trabajar con series temporales, una de las variables mas importantes es la fecha.Esta nos puede ayudar a encontrar patrones clave que tienen una fuerte relacion con elmomento en el cual fue tomada la informacion, como podrıan ser, por ejemplo, eventosque se repiten de manera anual. El problema es que nuestros datos no tienen ningunainformacion que permita indicar esa relacion, como tampoco que la hora siguiente de23 es un cero y, por lo tanto, existen ciclos que necesitamos indicar.

Para resolver este problema se emplean tecnicas trigonometricas que permiten con-vertir las fechas en ondas con amplitud maxima que indique el fin o el inicio de unnuevo ciclo. El metodo mas comun consiste en modelizar los datos mediante una fun-cion armonica como el seno o el coseno.

Para aplicar esta tecnica hemos transformado los datos en ciclos semanales y anua-les, ya que pueden ser los periodos mas importantes. De esta manera podemos detectarcambios en el mercado que puedan ser habituales en festivos o fines de semana. Con-cretamente las formulas aplicadas son las siguientes:

WeekCos = cos(timestamp ∗ (2π/ws)) (4.1)

Y earCos = cos(timestamp ∗ (2π/ys)) (4.2)

Previamente a las fechas se les aplica una transformacion al formato Timestamp2 pa-ra tenerlas representadas en formato numerico. Por otro lado, las constantes ws y ysrepresentan la duracion en segundos de una semana y un ano respectivamente. Final-mente se les aplica la funcion coseno para representar las fechas como ciclos con valoresen el rango [-1, 1].

2Timestamp es un formato de fecha que representa el numero de segundos transcurridos desde 1970.

Page 39: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 28

Figura 4.2: Coseno aplicado a los datos de fecha con ciclos de una semana y un ano.

4.1.4. Escalado y normalizacion de los datos

Una de las tecnicas basicas de preprocesado de datos es la normalizacion y escaladode los datos.

Los datos con los que trabajamos tienen mucho ruido, su histograma es muy dispersoy no sigue una distribucion normal. Ademas, nuestros valores pueden crecer de formaindefinida en el tiempo y disponen de gran cantidad de valores extremos cuya frecuen-cia en el conjunto de datos es muy pequena, lo que se traduce en menor probabilidad deser seleccionado como prediccion. Para solucionar estos problemas, se aplica la norma-lizacion. La normalizacion de los datos consiste en representarlos en un rango reducido,normalmente en el de [0, 1], y repartirlos de tal manera que siga una distribucion nor-mal, tambien llamada distribucion gaussiana. La ventaja de estas transformaciones esque nos permite, como su nombre indica, normalizar los datos, por un lado elimina losvalores extremos y, por otro, permite obtener una distribucion mas repartida y que ladiferencia de frecuencia de los valores no sea tan elevada.

Las transformaciones mas comunes consisten en:

Aplicar a los datos una transformacion logarıtmica. De esta manera cuanto mayorsea el valor menor importancia tendra a sus valores vecinos.

Sustituir los datos por cambios porcentuales que representan el porcentaje decambio de sus valores respecto a los previos.

Operaciones con la desviacion tıpica y percentiles de los datos para reducir losvalores extremos.

Por otros lado, a diferencia de la normalizacion, el escalado de datos no cambia su

Page 40: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 29

distribucion, sino que se encarga simplemente en reducir el rango de los datos.

Durante este estudio hemos estudiado los siguientes escaladores:

MinMaxScaler: escala los datos entre un rango de [0, 1]. Cuando trabajamos condatos que pueden superar sus valores mınimos o maximos, al utilizar el mismoescalador se van a salir del rango mencionado. Para prevenir esto a veces se utili-zan valores maximos y mınimos artificiales que se piensa que no se van a superar,pero sigue sin ser una solucion optima.

xscaled =x− xmin

xmax − xmin(4.3)

StandardScaler: escala y centra los datos restandoles la media y escalandolo res-pecto la desviacion estandar. Al igual que el MinMaxScaler, utiliza la media ydesviacion de los datos del pasado para escalar los nuevos datos, por lo que nopuede asegurar un escalado equitativo.

xscaled =x− xmean

xstdev(4.4)

RobustScaler: a diferencia de los anteriores, escala los datos usando estadısticasque son robustas a los valores extremos. Para ello escala y centra los datos respec-to al rango del cuartil 1 (percentil 25) y cuartil 3 (percentil 75).

xscaled =x− xq1xq3 − xq1

(4.5)

PowerTransformer: aplica una transformacion de potencia para que los datossean mas ”gaussianos”. Esto es util para solucionar problemas de varianza va-riable y permite normalizar los datos.

QuantileTransformer: aplica una transformacion no lineal a los datos para quesigan una distribucion normal o uniforme. De esta manera, tiende a dispersar losvalores mas frecuentes y, ademas, reduce el impacto de los valores extremos, porlo tanto tambien es robusto. Hay que tener en cuenta que puede distorsionar lascorrelaciones lineales entre las distintas variables, pero por otro lado permite quelos datos de diferentes magnitudes sean mas comparables.

Page 41: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 30

4.1.5. Conclusiones del la seccion de Analisis

El analisis de datos no forma parte de las tecnicas de Deep Learning, pero suele re-presentar hasta el 80 % del tiempo total dedicado a la resolucion de un problema, yaque es muy importante para que los modelos funcionen correctamente y poder obteneruna solucion optima al problema. Con la intencion de centrar el trabajo en el estudiode las tecnicas de Deep Learning, hemos realizado un analisis basico con las tecnicasmencionadas en este capıtulo.

Page 42: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 31

4.2. Arquitecturas

Durante este bloque, vamos a estudiar y ampliar nuestros conocimientos sobre lasdistintas tecnicas y arquitecturas de redes neuronales.

El primer paso fue decidir que querıamos predecir. Por ejemplo en [3] utilizaron co-mo predicciones el retorno porcentual, es decir, predecıan cuanto y en que direccion ibaa cambiar el precio tıpico de la siguiente vela. Hay que recordar que las prediccionesdel modelo van a funcionar de manera parecida a un indicador tecnico, por tanto siguehaciendo falta una estrategia y una gestion de riesgo para poder utilizarlo como un al-goritmo de trading, es decir, podemos predecir lo que queramos con tal de que creamosque esa informacion pueda resultarnos util. En este trabajo hemos decidido abordar elproblema mediante la prediccion del precio tıpico 3 de la siguiente vela. A diferenciadel precio de cierre, este valor esta mas centrado a la vela, y en caso de cometer unerror en nuestra prediccion, el valor estimado tiene mas posibilidades de estar dentrodel rango entre el valor maximo y mınimo real.

4.2.1. Arquitectura MLP

La arquitectura Multi Layer Perceptron es la arquitectura mas simple. A parte de lascapas de entrada y salida, esta formada por varias capas ocultas conectadas entre sı. Enlos experimentos que vamos a realizar, este modelo va estar estructurado en forma deembudo con el objetivo de ir reduciendo la dimensionalidad de los datos.

4.2.2. Arquitectura Residual

Una red neuronal residual, conocida como ”ResNet”[6], se caracteriza por ensam-blar la informacion de distintos niveles, es decir, concatena la salida de varias capasdistintas. La idea de esto es juntar informacion de distinta granularidad, ya que la in-formacion de una capa mas profunda se puede considerar mas procesada o fina que lainformacion anterior. Ademas, permite evitar los gradientes que se desvanecen 4 pro-pagando el error directamente a las capas principales.

3El precio tıpico es la media aritmetica del precio maximo, mınimo y de cierre de una vela.4El desvanecimiento del gradiente ocurre cuando el gradiente obtenido es muy pequeno y por tanto no

consigue modificar suficientemente los pesos

Page 43: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 32

Figura 4.3: Bloque residual.

4.2.3. Arquitecturas recurrentes

Las redes recurrentes estan formadas por bucles de realimentacion, permitiendo atraves de ellos que la informacion persista un tiempo durante el entrenamiento. Estosbucles devuelven los resultados como nuevos datos de entrada adicionales. Funcionacomo una red con multiples copias de sı misma, cada una proporciona alguna infor-macion adicional a su sucesor, por lo que resultan muy utiles con secuencias de datoscomo pueden ser secuencias de palabras o datos temporales como los nuestros.

4.2.3.1. Long Short Term Memory Networks (LSTM)

Las LSTMs [7] son un tipo de bloque empleados en la construccion de redes recu-rrentes. Estas, son capaces de aprender y memorizar dependencias del pasado. Esto sedebe a que contienen informacion en su memoria, que puede considerarse similar a lamemoria de un ordenador, en el sentido que una neurona de una LSTM puede leer,escribir y borrar informacion de su memoria.

Esta memoria se puede ver como una ”celda” bloqueada, donde ”bloqueada” signifi-ca que la celula decide si almacenar o eliminar informacion dentro (abriendo la puertao no para almacenar), en funcion de la importancia que asigna a la informacion queesta recibiendo. La asignacion de importancia se decide a traves de los pesos, que tam-bien se aprenden mediante el algoritmo. Esto lo podemos ver como que aprende con eltiempo que informacion es importante y cual no.

Page 44: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 33

Como podemos ver en la figura 4.4, una unidad LSTM comun se compone de unacelda, una puerta de entrada, una puerta de salida y una puerta de olvido. La celdarecuerda valores en intervalos de tiempo arbitrarios y las tres puertas regulan el flujode informacion dentro y fuera de la celda. Concretamente, estas puertas determinan sise permite o no una nueva entrada, si se elimina la informacion porque no es importanteo se deja que afecte a la salida en el paso de tiempo actual.

Figura 4.4: Arquitectura de una celula LSTM.

Este tipo de bloque, ademas de ser una potente herramienta para succiones de datos,permite solucionar el problema del desvanecimiento del gradiente mencionado ante-riormente.

4.2.3.2. Gated Recurrent Unit (GRU)

Otro tipo de bloque recurrente son las Gared Recurrent Unit [8] (GRU). Este bloque,al igual que las LSTM, permite recordar informacion del pasado y de la misma ma-nera evitar el problema del desvanecimiento del gradiente. La principal diferencia seencuentra en su estructura. Como podemos observar en la figura 4.5, el bloque de laGRU no dispone de la puerta de olvido y, las dos salidas que contiene la LSTM, GRUlas combina en una sola.

En la mayorıa de problemas, ambos bloques obtienen resultados muy similares, conla diferencia de que las GRU tienen un tiempo de computo ligeramente menor.

Page 45: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 34

Figura 4.5: Arquitectura de una celula GRU.

4.2.3.3. Redes Convolucionales (CNN)

Las capas convolucionales consisten en un conjunto de filtros que recorren el con-junto de los datos de entrada en busca de caracterısticas. Estos filtros disponen de untamano y dimension que definen el area para la busqueda de las relaciones entre susvalores vecinos. Como podemos ver en la figura 4.6, los valores del filtro se multiplicanpor la matriz de entrada hasta recorrer toda la matriz.

Figura 4.6: Ejemplo de aplicacion de un filtro de convolucion.

En este caso consiste en un filtro de dos dimensiones, pero puede ser usado tambiencon datos de 3 dimensiones, como podrıa ser una imagen con varios canales de color.

Page 46: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 35

Sus aplicaciones mas comunes son con datos de entrada que representan los dıgitos deuna imagen. Los filtros son capaces de detectar desde estructuras simples como bordeso formas geometricas simples, hasta estructuras mas complejas como caras a partir dela informacion de las capas anteriores.

Figura 4.7: CNN para deteccion de caras.

4.2.3.4. Temporal Convolutional Network (TCN)

Las redes convolucionales temporales son una variacion de las redes neuronales con-volucionales preparado para datos secuenciales. Esta arquitectura esta disenada paraque la salida sea la entrada en el siguiente paso de tiempo lo que permite extraer infor-macion tanto espacial como temporal. Estas caracterısticas hacen esta arquitectura muyinteresante para competir con las redes recurrentes.

Page 47: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 36

4.3. Pipeline

Una vez procesados de los datos, se ha establecido una cadena de procesos que se-guir. Esta cadena empieza por dividir los datos, y entra en un bucle de entrenamientoy comparativa de los modelos para seleccionar los mejores. Finalmente se realiza unacomparativa del rendimiento de los mejores modelos con los datos de test.

4.3.1. Split de datos

Como hemos mencionado, nuestros datos forman parte del grupo de series tempo-rales, y es por ello que la forma mas realista de dividir los datos es utilizar los ultimosdisponibles para la evaluacion de los modelos, y el resto para entrenamiento.

Por tanto, hemos reservado el ultimo 10 % de los datos para test, y el 90 % de los datosrestantes se ha dividido en 5 trozos solapados de manera que los trozos posterioresincluyen todas las partes anteriores, empezando el primero con el primer 1/5 de losdatos. Por ultimo, de cada trozo se ha extraıdo su ultimo 10 % para evaluacion. En lafigura 4.8 se puede observar como queda finalmente la division de los datos para elentrenamiento.

Figura 4.8: Splits de datos.

Esta estrategia nos permite entrenar y evaluar los modelos sobre distintos grupos dedatos con el objetivo de medir su capacidad de generalizacion.

Page 48: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 37

4.3.2. Entrenamiento y la evaluacion de los modelos

Para el entrenamiento de los modelos, se han probado con las distintas funciones deerror mencionadas en la seccion 3.3.1, pero la que mejores resultados ha obtenido hasido la funcion de perdida de MAE.

Por otro lado, para la evaluacion de los modelos se han utilizado las metricas men-cionadas en la seccion 3.3.2. Sobre todo, nos hemos fijado en los valores de SMAPE yMAE. Este ultimo, a pesar de no ser un error relativo a la magnitud de los datos, nospermite comparar el error de la misma manera y, ademas, nos permite visualizar mejorel error promedio real.

Una vez obtenidos los resultados, se procedio a ajustar los distintos parametros deentrenamiento y, en caso de sobreentrenamiento, se ajustaba la arquitectura de la redreduciendo su complejidad o usando capas de Dropout y BatchNormalization que per-miten meter ruido en los datos y normalizarlos respectivamente.

4.4. Tecnologıas

Para llevar a cabo este estudio se han utilizado una serie de recursos que indicare eneste apartado.

4.4.1. Librerıas

Pandas[9] & Numpy[10]: para el procesamiento y analisis de los datos.

Seaborn[11] & Matplotlib[12]: para la visualizacion de los datos.

Pickle[13]: permite almacenar estructuras de datos en ficheros binarios.

Statsmodels[14]: permite la realizacion de tests estadısticos y la exploracion es-tadıstica de los datos.

Tensorflow[15] & Keras[16]: para la implementacion de los algoritmos de apren-dizaje profundo.

Sklearn[17]: contiene varios algoritmos que incluyen procesamiento, analisis yestimacion de los datos.

Page 49: Predicción de criptomonedas con técnicas de Deep Learning

Metodologıa 38

Technical Analisis Library[18] (TA): para la extraccion de los diferentes indica-dores tecnicos de los datos.

4.4.2. Hardware

Para la ejecucion de los experimentos realizados se han utilizado los cuadernos deGoogle Colab. Colaboratory[19], tambien llamado Colab te permite escribir y ejecutarcodigo Python desde el navegador. Ademas, incluye un entorno interactivo, acceso auna tarjeta grafica de manera gratuita y una gran cantidad de librerıas ya instaladas ylistas para ser usadas. La tarjeta grafica que se nos fue asignada es la Tesla K80 con untamano de 12GB de memoria VRAM.

Page 50: Predicción de criptomonedas con técnicas de Deep Learning
Page 51: Predicción de criptomonedas con técnicas de Deep Learning

5 Experimentacion

Durante la experimentacion se han implementado una serie de modelos que veremosa continuacion. Partiremos desde los modelos mas simples que solamente incluyen untipo de capa, hasta modelos mas complejos que mezclan las distintas arquitecturas es-tudiadas.

5.1. Parametros de entrenamiento

Los parametros finales que se han utilizado finalmente para el entrenamiento de lossiguientes modelos son los siguientes:

Funcion de perdida MAE junto al optimizador Adam con una planificacion delearning rate polinomial, que empieza en 1e-2 y acaba en 1e-3. El learning rate (LR)es una constante que se emplea durante el entrenamiento que permite regular lamagnitud del castigo aplicado a las neuronas durante el entrenamiento. Cuandoesta tiene un valor grande, castiga en mayor medida y permite a la red aprenderantes, pero puede impedir converger en una solucion optima. En cambio un valorpequeno va hacer que la red aprenda mas lento y tambien puede estancarse sinllegar a la solucion optima. Para evitar este problema se emplean planificadoresde LR que no son mas que un algoritmo que permite cambiar el LR durante eltiempo. En nuestro caso consiste de un planificador polinomial de potencia uno,lo que hace que el LR vaya bajando de manera lineal hasta le valor mınimo que lehemos indicado.

Regularizador L2 con un valor de 1e-3. Uno de los posibles motivos de sobre-entrenamiento puede estar provocado por el desbalanceo en los pesos de la redque ocurre cuanto estos cogen valores extremos respecto al resto de pesos. Laregularizacion es una tecnica que consiste en penalizar los pesos durante el en-trenamiento cuanto mayor sea su valor absoluto. De esta manera los pesos estanmas normalizados y el modelo generaliza mejor.

Ademas los datos fueron normalizados y escalados usando el StandardScaler.

40

Page 52: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 41

5.2. Modelo Base Naive

El modelo naive es un modelo ingenuo que usa como estimaciones los ultimos valo-res del pasado, es decir, en la iteracion t + 1 el valor estimado sera el mismo que el dela iteracion t.

En nuestro caso, las predicciones de estos modelos suponen un punto de partida muysolido ya que los precios no suelen cambiar mucho entre dos velas seguidas y nuestratarea es superar estos resultados.

5.3. Modelo Dense

Este modelo esta formado solamente contiene cuatro capas ocultas del tipo dense conla funcion de activacion ReLU y numeros de neuronas 64, 32, 16 y 8 respectivamentepara ir reduciendo la dimensionalidad de los datos hasta obtener el resultado final.

Figura 5.1: Modelo Dense.

Page 53: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 42

5.4. Modelo Dense Residual

Este modelo implementa la tecnica de capas residuales que combina varias capas dedistintos niveles. Hemos conservado la misma cantidad de neuronas que el modeloanterior, pero al combinar y guardar la salida de varias neuronas, la complejidad de lared es mayor.

Figura 5.2: Modelo Dense Residual.

Page 54: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 43

5.5. Modelo LSTM

El modelo recurrente de LSTM presentaba indicios de sobre-entrenamiento (overfit-ting). Para evitarlo se tuvo que reducir su complejidad, siendo ası, el modelo solo estacompuesto de dos capas ocultas de ocho neuronas cada una.

Figura 5.3: Modelo LSTM.

5.6. Modelo LSTM Residual

Al igual que el modelo Dense, se ha creado su version residual para realizar unacomparativa.

Figura 5.4: Modelo LSTM Residual.

Page 55: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 44

5.7. Modelo GRU

Al igual que el modelo LSTM, este modelo tenia facilidad por memorizar los datos,y para obtener una comparativa legitima se decidio dejar la misma estructura de neu-ronas que la del modelo anterior.

Figura 5.5: Modelo GRU.

5.8. Modelo GRU Residual

De la misma manera se ha implementado la version residual de las capas GRU.

Figura 5.6: Modelo GRU Residual.

Page 56: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 45

5.9. Modelo TCN

A diferencia de otros modelos, las capas convolucionales en vez de neuronas em-plean filtros. El modelo implementado esta formado por dos capas ocultas, una de 32filtros con un tamano de kernel de cuatro, y otra capa de 16 filtros con un tamano detres. Hemos mantenido el modelo lo mas simple posible para poder compararlo con losfuturos modelos mas complejos.

Figura 5.7: Modelo Convolucional.

Page 57: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 46

5.10. Modelo TCN-MLP

Este modelo implementa la capa convolucional junto a varias capas Dense. Con esteexperimento queremos ver como se comporta el modelo al introducir mayor compleji-dad y utilizando los filtros en primer lugar.

Figura 5.8: Modelo TCN-MPL.

Page 58: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 47

5.11. Modelo TCN-RNN

En este modelo hemos sustituido las capas Dense por las recurrentes del tipo LSTM.Cabe destacar que estas capas contienen un numero reducido de neuronas por su granfacilidad de sobreentrenamiento.

Figura 5.9: Modelo TCN-RNN.

Page 59: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 48

5.12. Modelo TCN-RNN-MLP

Este modelo combina los distintos tipos de bloques estudiados, siendo ası el modelomas complejo probado. Como se puede ver en la figura 5.10 esta formado por unacapa convolucional, una recurrente del tipo LSTM y dos Dense, a parte de las capashabituales de entrada y salida.

Figura 5.10: Modelo TCN-RNN-MLP.

Page 60: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 49

5.13. Backtesting

En la seccion 3.3.2 de evaluacion hemos mencionado como podemos medir el rendi-miento de los modelos simulando su comportamiento en un mercado. Existen muchasmaneras de implementarlo y todas ellas asumen ciertos comportamientos. En nuestrocaso vamos a suponer lo siguiente:

Nuestras acciones no repercuten de ninguna manera la tendencia ni el estado deun valor.

Nuestras acciones son instantaneas e ignoran el volumen disponible.

Podemos abrir una posicion usando el precio de apertura de la vela t + 1 siendoeste el mismo que el precio de cierre de la vela t.

La estrategia implementada esta basada en un sistema de posicion que consiste enrealizar una compra y mantenerla hasta que se alcance el precio predicho (limite su-perior) o bien el stoploss, un precio inferior que representa las perdidas maximas quequeremos asumir. Ademas, cuando el precio alcanza el lımite superior y nuestras pre-dicciones indican que el precio va seguir subiendo, la posicion se mantiene abierta. Deesta manera evitamos abrir y cerrar una posicion de manera seguida perdiendo capitalpor las comisiones.

En la tabla 5.1 se puede ver la configuracion de constantes empleada durante lassimulaciones:

Parametro valorCapital inicial 1000Capital max. de entrada 10 %Comision por compra/venta 0.04 %Stoploss 3 %

Tabla 5.1: Parametros de configuracion de la simulacion de backtesting.

Finalmente, en el listado 5.1 esta representado la estrategia empleada en formato depseudocodigo.

Page 61: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 50

1 posicion = CLOSE2 N = numero de velas34 for i rango(N):5 invertido = portafolio*0.16 if posicion is CLOSE:7 if prediccion[i] − precio cierre[i−1] > comision:8 posicion = OPEN9 precio entrada = precio cierre[i−1]

10 limite superior = prediccion[i]11 limite inferior = precio entrada*(1−stoploss)1213 if posicion is OPEN:14 if precio min[i] <= limite superior <= precio max[i]:15 if prediccion[i] > limite superior:16 limite inferior = limite superior17 limite superior = prediccion[i]18 else:19 posicion = CLOSE20 portafolio += calcularBeneficio(precio entrada, limite superior, invertido)2122 elif precio min[i] <= limite inferior <= precio max[i]:23 position = CLOSE24 portafolio += calcularBeneficio(precio entrada, limite inferior, invertido)

Listado 5.1: Pseudocodigo del algoritmo de backtesting

La expresion de abrir posicion indica que hemos realizado una operacion de entradaal mercado y esta va estar abierta hasta que la cerremos. En nuestro caso abrir posicionse refiere a comprar la criptomoneda que vamos a usar y, cuando el precio alcancealguno de los limites, la operacion se va cerrar con el precio alcanzado. Podemos verque el algoritmo esta dividido en dos parte principales:

1. Posicion cerrada: en este momento nuestro portafolio solamente conserva nues-tros dolares. Cuando la prediccion indica que hay posibles ganancias durante elperiodo de la vela t, vamos a realizar una compra con el 10 % de nuestro capitaltotal disponible y usando el precio de apertura de esa vela. Con la posicion yaabierta, se asignan los valores de los dos lımites mencionados (el superior conel valor de la prediccion y el inferior con un porcentaje por debajo del precio decompra).

2. Posicion abierta: la posicion se queda abierta hasta que el precio alcance algunode los lımites. Recordemos que fue abierta en el inicio de la vela t y la posicionpuede cerrarse durante su periodo. Para comprobar si se ha alcanzado el precio,se comprueba si el rango de los lımites de la vela (su precio mınimo y maximo)

Page 62: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 51

incluyen el precio esperado. En caso de cumplirse la condicion, se procede a com-probar si nos interesa conservar la posicion abierta o es mejor asegurar las ganan-cias y vender al precio esperado. De la misma manera, si se ha sobrepasado ellımite inferior, se procede a cerrar la posicion y calcular las perdidas.

5.14. Resultados

Una vez detallados los modelos implementados, vamos a proceder a realizar unacomparativa de su rendimiento sobre los datos de test. Los modelos tienen como inputuna secuencia de 6 velas con periodos de 5 minutos y devuelven un unico valor querepresenta la prediccion del precio tıpico de la siguiente vela.

Modelo MAE SMAPE Portafolio ( %) Drawdown ( %) Ratio P/D

Base 3.62 0.18 0 0 0Dense 3.70 0.18 +1.17 0.11 10.64Dense Resid 4.03 0.20 +2.51 0.30 8.37LSTM 4.43 0.21 +3.75 0.22 17.04LSTM Resid 5.30 0.26 +1.70 0.32 5.31GRU 5.01 0.24 +5.28 0.50 10.56GRU Resid 7.00 0.31 +5.39 0.59 9.14TCN 4.33 0.21 +2.54 0.43 5.91TCN-MLP 4.90 0.24 +3.43 0.55 6.24TCN-RNN 5.56 0.27 +5.76 0.55 10.47TCN-RNN-MLP 5.11 0.25 +3.36 0.22 15.27

Tabla 5.2: Resultado de los modelos estudiados.

Despues de calcular las metricas que evaluan los modelos, hemos anadido una co-lumna adicional que mide el ratio entre el incremento del portafolio final y el drawdown.De esta manera podemos ver de una manera mas clara la relacion entre los beneficiosy el riesgo asumido durante la simulacion. Adicionalmente, en la figura 5.11 hemosrepresentado la relacion de cada metrica respecto el MAE.

Las conclusiones que se obtienen:

Mayor beneficio pero a costa de mayor riesgo: las graficas de la figura 5.11 mues-tran como a mayor MAE, el resultado del portafolio y drawdown aumentan demanera similar. Esto se traduce en que para obtener un mayor beneficio tenemosque suponer un mayor riesgo.

Page 63: Predicción de criptomonedas con técnicas de Deep Learning

Experimentacion 52

Los modelos recurrentes tienen el mejor ratio: a pesar de obtener un error mediomayor, los resultados de la simulacion son notablemente mejor que el resto.

Los modelos residuales obtienen peores resultados que el resto en todas lasmetricas.

Los modelos convolucionales por sı solas no obtienen buen resultado, pero fun-cionan mucho mejor junto a otras capas.

Figura 5.11: Relacion entre las metricas obtenidas respecto al MAE.

Page 64: Predicción de criptomonedas con técnicas de Deep Learning
Page 65: Predicción de criptomonedas con técnicas de Deep Learning

6 Conclusiones y trabajos futuros

Despues de los experimentos realizados las conclusiones a las que sea ha llegado sonlas siguientes:

Los modelos neuronales obtienen mejor rendimiento cuando los datos de entre-namiento y test siguen una distribucion de datos similar. De la misma manera, elmodelo obtiene mejores resultados cuando los datos de test estan mas cerca delos ultimos datos de entrenamiento. Por tanto, en caso de usarlo en produccion,es aconsejable reentrenar los modelos cada poco tiempo.

A pesar del gran potencial de los modelos neuronales, estos no han sido capacesobtener un resultado notablemente mejor al modelo base utilizado. En este trabajonos hemos centrado en los algoritmos de DL y no hemos estudiado los algoritmostradicionales de ML que siguen un enfoque mas matematico y que quizas podrıanobtener mejores resultados.

Las arquitecturas recurrentes son mas sensibles al sobreentrenamiento lo que su-pone un gran riesgo a la hora de utilizarlas en estrategias de trading.

La simulacion de backtesting ha revelado que a pesar de haber un mayor numerode entradas con ganancias, estas son pequenas, en cambio las perdidas son pocaspero grandes. Esto nos recuerda la importancia de tener una buena gestion deposicion una vez hemos entrado al mercado.

Durante el proyecto se han abordado una serie de objetivos que unen las ramas deeconometrıa y ciencias de la informacion empleando tecnicas de aprendizaje automati-co profundo. De los dos tipos de analisis de mercado solamente hemos utilizado elanalisis tecnico, pero de igual forma se podrıa haber enfocado el trabajo utilizando elanalisis fundamental mediante modelos sentimentales para clasificacion de noticias opublicaciones en redes sociales.

En lo que se refiere a trabajos futuros relacionadas al aprendizaje automatico, serıamuy interesante realizar el mismo estudio pero empleando aprendizaje por refuerzopara que el modelo interactue con el mercado y se vaya adaptando a el mediante re-compensas provocadas por sus acciones.

54

Page 66: Predicción de criptomonedas con técnicas de Deep Learning
Page 67: Predicción de criptomonedas con técnicas de Deep Learning

Bibliografıa

[1] Caltech Yaser Abu-Mostafa. Learning from data, lecture 10.http://work.caltech.edu/lectures.html, May 2012.

[2] Tae-Hwy Lee. Loss functions in time series forecasting. 04 2007.

[3] Akash Doshi, Alexander Issa, Puneet Sachdeva, Sina Rafati, and Somnath Rakshit.Deep stock predictions. 06 2020.

[4] Paul Goodwin and Richard Lawton. On the asymmetry of the symmetric mape.International Journal of Forecasting, 15(4):405–408, 1999.

[5] Investopedia. https://www.investopedia.com/. Accessed: 2021-05-24.

[6] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learningfor image recognition, 2015.

[7] Sepp Hochreiter and Jurgen Schmidhuber. Long Short-Term Memory. NeuralComputation, 9(8):1735–1780, 11 1997.

[8] Kyunghyun Cho Junyoung Chung, Caglar Gulcehre and Yoshua Bengio. Empiri-cal evaluation of gated recurrent neural networks on sequence modeling. In NIPS2014 Workshop on Deep Learning, December 2014, 2014.

[9] The pandas development team. pandas-dev/pandas: Pandas, February 2020.

[10] Charles R. Harris, K. Jarrod Millman, Stefan J. van der Walt, Ralf Gommers, PauliVirtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Natha-niel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van Kerkwijk,Matthew Brett, Allan Haldane, Jaime Fernandez del Rıo, Mark Wiebe, Pearu Pe-terson, Pierre Gerard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser,Hameer Abbasi, Christoph Gohlke, and Travis E. Oliphant. Array programmingwith NumPy. Nature, 585(7825):357–362, September 2020.

[11] Michael L. Waskom. seaborn: statistical data visualization. Journal of Open SourceSoftware, 6(60):3021, 2021.

[12] J. D. Hunter. Matplotlib: A 2d graphics environment. Computing in Science &Engineering, 9(3):90–95, 2007.

56

Page 68: Predicción de criptomonedas con técnicas de Deep Learning

Bibliografıa 57

[13] Guido Van Rossum. The Python Library Reference, release 3.8.2. Python SoftwareFoundation, 2020.

[14] Skipper Seabold and Josef Perktold. statsmodels: Econometric and statistical mo-deling with python. In 9th Python in Science Conference, 2010.

[15] Martın Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen,Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, San-jay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard,Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Leven-berg, Dandelion Mane, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah,Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, PaulTucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viegas, Oriol Vinyals, PeteWarden, Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng. Ten-sorFlow: Large-scale machine learning on heterogeneous systems, 2015. Softwareavailable from tensorflow.org.

[16] Francois Chollet et al. Keras, 2015.

[17] Lars Buitinck, Gilles Louppe, Mathieu Blondel, Fabian Pedregosa, Andreas Mue-ller, Olivier Grisel, Vlad Niculae, Peter Prettenhofer, Alexandre Gramfort, JaquesGrobler, Robert Layton, Jake VanderPlas, Arnaud Joly, Brian Holt, and Gael Varo-quaux. API design for machine learning software: experiences from the scikit-learnproject. In ECML PKDD Workshop: Languages for Data Mining and Machine Learning,pages 108–122, 2013.

[18] Technical analysis library. https://technical-analysis-library-in-python.readthedocs.io/en/latest/. Accessed: 2021-05-30.

[19] Google colaboratory. https://colab.research.google.com/notebooks/intro.ipynb. Accessed: 2021-05-30.

Page 69: Predicción de criptomonedas con técnicas de Deep Learning

Lista de Acronimos

CCI Commodity Channel Index.

CNN Convolutional Neural Network.

DL Deep Learning.

EMA Exponential Moving Average.

GRU Gated Recurrent Unit.

LR Learning Rate.

LSTM Long Short Term Memory Networks.

MACD Moving Average Convergence Divergence.

MAE Mean Absolute Error.

MAPE Mean Absolute Percentage Error.

MASE Mean Absolute Scaled Error.

MFI Money Flow Index.

ML Machine Learning.

MLP Multi-Layer Perceptron.

MSE Mean Squared Error.

58

Page 70: Predicción de criptomonedas con técnicas de Deep Learning

Lista de Acronimos 59

PPO Percentage Price Oscillator.

ReLU Rectified Lineal Unit.

RNN Recurrent Neural Network.

ROC Rate of Change.

RSI Relative Strength Index.

SMA Simple Moving Average.

SMAPE Symmetric Mean Absolute Percentage Error.

stochRSI Stochastic RSI.

TA Technical Analisis Library.

Tanh Hyperbolic tangent.