Serie de Tiempo Bitcoin
Bitcoin
Bitcoin es una criptomoneda descentralizada y una forma de dinero digital que opera en una red peer-to-peer (P2P) sin la necesidad de intermediarios como bancos o gobiernos.
Fue creada en 2009 por una persona o grupo de personas bajo el seudónimo de Satoshi Nakamoto. La característica fundamental de Bitcoin es su tecnología subyacente, la cadena de bloques (blockchain), que es un registro público y distribuido de todas las transacciones realizadas con esta moneda.
La cadena de bloques de Bitcoin es un libro mayor digital que registra todas las transacciones de manera segura y transparente. Cada transacción se agrupa en bloques y se enlaza en una cadena continua, lo que garantiza la integridad de la información y la imposibilidad de modificar o eliminar transacciones pasadas.
Bitcoin se distingue por varias características:
Descentralización: No está controlado por ninguna autoridad central, lo que significa que no está sujeto a regulaciones gubernamentales o políticas monetarias.
Anonimato relativo: Aunque las transacciones en la cadena de bloques son públicas y transparentes, las identidades de las partes involucradas en las transacciones suelen permanecer anónimas.
Escasez programada: Existe un límite máximo de 21 millones de bitcoins que se pueden crear, lo que lo convierte en un recurso digital escaso y potencialmente valioso.
Seguridad: La tecnología de criptografía y la descentralización de la cadena de bloques hacen que las transacciones sean seguras y difíciles de falsificar o manipular.
Bitcoin ha ganado popularidad como una forma de inversión y como un medio de intercambio en línea, aunque su volatilidad y su uso en actividades ilícitas han generado controversia. Sin embargo, su impacto en la industria financiera y tecnológica ha sido significativo, alentando el desarrollo de otras criptomonedas y tecnologías basadas en la cadena de bloques.
Implementación en Python
Vamos a implementar una serie de tiempo para predecir el valor de cierre de Bitcoin.
Data Histórica
Damos click al link de CoinMarketCap: https://coinmarketcap.com/es/currencies/bitcoin/historical-data/
Selecionamos el periodo de nuestro interés y descargamos la data histórica (en formato csv) del valor de cierre de Bitcoin.
En este caso utilizaremos el siguiente archivo: https://gist.github.com/mevangelista-alvarado/6f4f28c00f9e683108637cb3c8d5db89
Leer el csv y convertir a un dataframe
En este caso el archivo que nosotros utilizamos tiene el nombre de Bitcoin_1_1_2024-6_9_2024_historical_data_coinmarketcap.csv
Opción 1 (Descarga Manual)
Opción 2 (Utilizar wget)
Obtenemos un dataframe con las siguientes columnas:
Seleccionamos la data
Convertir los datos a un numpy array
Escalar los valores
Utilizamos la clase MinMaxScaler
para escalar los valores entre 0 y 1.
Secuencias
Aquí se crean las secuencias de datos a partir de un conjunto y un tamaño de ventana dado.
Definir el tamaño de la ventana de tiempo
Aquí se establece el tamaño de la ventana de tiempo, que es el número de puntos de datos que se utilizarán para predecir el siguiente punto de datos en una secuencia.
Crear las secuencias de datos
En cada iteración, se crea una secuencia de datos de longitud window_size
utilizando el índice i
como punto de partida y se agrega a la lista sequences
. Además, se agrega la etiqueta correspondiente al siguiente punto de datos después de la secuencia a la lista labels
.
Conjunto de entrenamiento y prueba
Dividir los datos en conjuntos de entrenamiento y prueba
Modelo RNN
Este modelo está diseñado para procesar secuencias de datos con una red neuronal recurrente simple y luego realizar una predicción utilizando capas completamente conectadas.
Entrenamiento y compilación
Testing
Graficar los resultados
Predicción de valores nuevos
En este caso haremos la predicción del valor de cierre de Bitcoin en los proximos 115 días
Generar fechas para los siguientes días
Graficar los resultados de los siguientes 30 días
En conclusión, el ejercicio de crear una RNN para predecir el valor del Bitcoin es una aplicación práctica del aprendizaje automático en el campo de las finanzas y la predicción de series temporales.
Si el modelo muestra un buen rendimiento en términos de precisión en las predicciones y capacidad para capturar patrones en los datos históricos, puede ser una herramienta valiosa para los inversores y analistas financieros en la toma de decisiones.
Sin embargo, es importante tener en cuenta que las predicciones de cualquier modelo de este tipo están sujetas a incertidumbres y deben utilizarse con precaución junto con otros análisis y consideraciones.
Last updated