En el presente documento se busca profundizar sobre el conocimiento del impacto de los mercados tradicionales, como el S&P 500, el nasdaq o múltiples métricas dentro del entrono de las criptomonedas, como la dominancia de Bitcoin, la capitalización de mercado o el fear-greed index, y cual es el efecto tienen sobre el precio de Bitcoin y Ethereum, esto mediante regresiones lineales simples y un análisis de Causalidad mediante el test de Granger Causality.
Tras el análisis, es posible determinar posible causa/efecto entre Bitcoin, el syp500, nasdaq, la capitalización de mercado y la dominancia de bitcoin, presentando resultados similares con Ethereum, al cual se le añade el efecto respecto a Bitcoin. Además, no es posible determinar una relacion causa efecto significativa y constante entre estos 2 activos y el Fear y Greed Index.
Es posible determinar una relacion lineal positiva entre bitcoin, ethereum y todas las variables analizadas, aunque con ciertas inconsistencias, sobre todo al referirse a la relacion entre ethereum y la dominancia de Bitcoin.
Para el presente estudio se utilizan 3 fuentes de datos distintas.
Para los datos de precios de criptomonedas se utilizan datos horarios de los futuros perpetuos de Binance, disponibles en https://www.kaggle.com/datasets/hsergeyfrolov/top-40-crypto-perpetuals-hourly-prices, dicha base de datos presenta la siguiente estructura:
Datos desde el 2020-09-04 06:00:00 al 2024-02-20 02:00:00.
49 variables únicas compuestas cada una por el precio de apertura, máximo, mínimo, cierre y volumen en unidades.
Sin embargo, para efectos de este análisis, los activos utilizados son unicamente
BTC,ETH, ambos en su paridad al USDT:
Para los datos diarios de los indices americanos S&P
500 y nasdaq 100, se utilizo
la librería quantmod , la cual permite la descarga de
activos mediante Yahoo Finance, dichos datos presentan
la siguiente estructura
Datos desde el 2020-12-31 23:00:00 al 2024-02-20 02:00:00.
Datos de 2 variables únicas, el
syp500y elnasdaq, compuestas cada una, en diferentes data frames, por precio de cierre, precio de apertura, precio máximo, precio mínimo, volumen y precio de cierre ajustado.
Para los datos de las variables de indicadores del entorno cripto, se utilizaron datos de Coinmarketcap, disponibles en https://coinmarketcap.com/es/charts/, en los cuales, cada variable se encuentra en una localización distinta al tener distintas periodicidades.
La Dominancia del Bitcoin:
Presenta datos semanales del 2013/05/04 al 2024/07/13.
Compuesto por la dominancia de
BTC,ETH,USDT,BNB,SOLyOtros.En el mercado cripto, el dominio de una moneda es la ratio entre su capitalización de mercado y la capitalización de mercado total de las criptomonedas restantes ( Tradin View s.f).
La Capitalización de Mercado:
Presenta datos cada 2 días del 2013/04/28 al 2024/07/15.
Compuesto por el
Market cap.La Capitalización de Mercado en finanzas se refiere al valor total de mercado de una empresa, calculado multiplicando el precio actual de sus acciones por el número total de acciones en circulación (BMV blog).
El Fear-Greed Index:
Presenta datos diarios del 2023/06/28 al 2024/07/16.
Compuesto por
Fear & greed indexEste es un indicador que, según Binance (2024)“El índice oscila entre 0 (miedo extremo) y 100 (codicia extrema), lo que refleja el sentimiento del mercado de criptomonedas”.
La presente investigación busca responder o ampliar el conocimiento ante las siguientes preguntas:
¿Existe relación causal entre el mercado tradicional de acciones hacia el mercado de criptomonedas?
¿Cómo se presenta el impacto de Bitcoin sobre el resto del mercado?
¿Existe una relación causal entre bitcoin y ethereum con métricas del mercado cripto?
¿Existe relación entre mercados tradicionales y métricas del entorno cripto, ante Bitcoin y Ethereum?
Para el análisis, preparación, limpieza de datos y presentación de resultados, se utilizan las siguientes librerías.
library(readr)
library(plotly)
library(xts)
library(reshape2)
library(gtools)
library(quantmod)
library(lmtest)
library(vars)
library(stats)
library(tseries)
library(purrr)
library(broom)
library(ggpubr)
library(knitr)
library(tidyverse)
# eliminar notacion cientifica
options(scipen=999)
Primero se hace la lectura y descarga de los datos originales
# Datos precios crypto
data_raw <- read_csv("crypto.csv/crypto.csv")
start_date <- "2020-12-31 23:00:00" # Fecha filtro
end_date <- "2024-02-20 02:00:00" # Fecha final
# Datos indices bolsa
syp500_prices <- data.frame(getSymbols("^GSPC", src = "yahoo", from = start_date, to = end_date, auto.assign = FALSE))
nasdaq_prices <- data.frame(getSymbols("^IXIC", src = "yahoo", from = start_date, to = end_date, auto.assign = FALSE))
# Datos metricas cripto
btc_dom <- read_csv("btc_dominance.csv")
fear_greed_index <- read_csv("fear_greed_index.csv")
market_cap <- read_csv("market_cap.csv")
Lo datos de precios de criptomonedas se acortan a un periodo específico, se obtienen precios únicamente de cierre y se convierten a cambios logarítmicos en una nueva data frame.
# date como fromtato fecha
data_raw$date <- as.POSIXct(data_raw$date, format="%d/%m/%Y %H:%M")
data <- filter(data_raw, date>= start_date) # datos filtrados por fecha
# Se obtienen los datos de cierre
data_close_h <- data %>% select(date, contains("close"))
# Se renombran para que quede solo el nombre del activo
colnames(data_close_h) <- get_assets(data_close_h, "USDT_close")
# Se transforman a cambios log mediante una funcion
data_log_h <- calc_log_returns(data_close_h)
# Se obtienen en temporalidad diaria
A datos del syp500 y nasdaq se les
establece la columna de date y se transforma a tipo fecha,
para luego cambiar el nombre de las columnas
# Establecer columna de fechas con nombre de filas
syp500_prices <- syp500_prices %>% rownames_to_column(var = "date")
nasdaq_prices <- nasdaq_prices %>% rownames_to_column(var = "date")
# Cambiar formato a fechas
syp500_prices$date <- as.Date(syp500_prices$date, format = "%Y-%m-%d")
nasdaq_prices$date <- as.Date(nasdaq_prices$date, format = "%Y-%m-%d")
# Cambiar el nombre para facilitar reconocimiento
syp500_close <- syp500_prices %>% select(date, GSPC.Close) %>% rename(syp500 = GSPC.Close)
nasdaq_close <- nasdaq_prices %>% select(date, IXIC.Close) %>% rename(nasdaq = IXIC.Close)
Después se transforman los precios de cierre a datos diarios, y se
ejecuta un merge con los datos del syp500 y
nasdaq transformados a objeto xts para
facilitar la unión. También se transforman a cambios logarítmicos y se
transforma a data frame con una columna de date en formato
fecha.
# Transformacion a datos diarios
data_close_d <- change_timeframe(data_close_h, "day")
# Merge con objetos xts
data_close_all <- merge(as.xts(syp500_close), as.xts(nasdaq_close), as.xts(data_close_d), all = F)
# Se calculan los cierres diarios a cambios logaritmicos
all_lcrends <- calc_log_returns(data_close_all)
# Se transforma a data frame
all_lcrends2 <- xts_to_dataframe(all_lcrends)
A los datos de métricas cripto se les establece el formato fecha a date, y se le cambia el nombre a las columnas
# Renombrar columnas
btc_dom <- rename(btc_dom, date = DateTime, btc_dom = BTC)
fear_greed_index <- rename(fear_greed_index, date = DateTime, fg_index = "Fear & greed index" )
market_cap <- rename(market_cap, date = DateTime, market_cap = "Market cap")
# Establecer formato fecha
btc_dom$date <- as.Date(btc_dom$date, format = "%Y-%m-%d")
fear_greed_index$date <- as.Date(fear_greed_index$date, format = "%Y-%m-%d")
market_cap$date <- as.Date(market_cap$date, format = "%Y-%m-%d")
# Se limpia para solo las columnas deseadas
btc_dom <- btc_dom[1:2]
btc_close <- data_close_d
btc_close2 <- btc_close[1:2]
eth_close <- btc_close[c(1,3)]
Al tener distintas fechas, para evitar una mayor perdida de
información se separan en distintas data frames en combinación con
BTC y ETH para facilitar el análisis. El
merge se realiza con objetos xts para
facilitarlo.
# Se separa en data frames y se unene con un merge con objetos xts
btc_w_fgi <- merge(as.xts(btc_close2),as.xts(fear_greed_index), all = F)
btc_w_dom <- merge(as.xts(btc_close2),as.xts(btc_dom), all = F)
btc_w_mcap <-merge(as.xts(btc_close2),as.xts(market_cap), all = F)
eth_w_fgi <- merge(as.xts(eth_close),as.xts(fear_greed_index), all = F)
eth_w_dom <- merge(as.xts(eth_close),as.xts(btc_dom), all = F)
eth_w_mcap <-merge(as.xts(eth_close),as.xts(market_cap), all = F)
eth_w_btc <- merge(as.xts(eth_close),as.xts(btc_close2), all = F)
Luego se establecen como cambios logarítmicos y de vuelta a tipo data frame
# Calcular cambios log, y convertir a data frame
btc_w_lfgi <- calc_log_returns(btc_w_fgi)
btc_w_lfgi <- xts_to_dataframe(btc_w_lfgi)
btc_w_ldom <- calc_log_returns(btc_w_dom)
btc_w_ldom <- xts_to_dataframe(btc_w_ldom)
btc_w_lmcap <- calc_log_returns(btc_w_mcap)
btc_w_lmcap <- xts_to_dataframe(btc_w_lmcap)
eth_w_lfgi <- calc_log_returns(eth_w_fgi)
eth_w_lfgi <- xts_to_dataframe(eth_w_lfgi)
eth_w_ldom <- calc_log_returns(eth_w_dom)
eth_w_ldom <- xts_to_dataframe(eth_w_ldom)
eth_w_lmcap <- calc_log_returns(eth_w_mcap)
eth_w_lmcap <- xts_to_dataframe(eth_w_lmcap)
eth_w_lbtc <- calc_log_returns(eth_w_btc)
eth_w_lbtc <- xts_to_dataframe(eth_w_lbtc)
Toda esta limpieza deja múltiples data frames a las cuales se les realizara el análisis, en concreto se observan:
data_close_allcomo objeto con todos los precios de cierre de los activos
all_lcrends2como objeto con todos los cambios logarítmicos de los activos
btc_w_lfgicomo objeto con datos de cambios logarítmicos de BTC y el indice Fear-Greed
btc_w_ldomcomo objeto con datos de cambios logarítmicos de BTC y la Dominancia de BTC
btc_w_lmcapcomo objeto con datos de cambios logarítmicos de BTC y la Capitalización de Mercado
eth_w_lfgicomo objeto con datos de cambios logarítmicos de ETH y el indice Fear-Greed
eth_w_ldomcomo objeto con datos de cambios logarítmicos de ETH y la Dominancia de BTC
eth_w_lmcapcomo objeto con datos de cambios logarítmicos de ETH y la Capitalización de Mercado
eth_w_lbtccomo objeto con datos de cambios logarítmicos de ETH y BTC
Según Eric (2021), la causalidad de Granger es una prueba econométrica utilizada para verificar la utilidad de una variable para pronosticar otra.
Se dice que una variable:
Granger-cause otra variable si es útil para pronosticar la otra variable (p<0.05).
Error a Granger-cause si no es útil para pronosticar la otra variable (p>0.05).
Cabe destacar que esta prueba no proporciona información sobre la relacion causal real entre dos variables, sino sobre la capacidad de predicción de una sobre la otra, es decir busca identificar relaciones cusa-efecto.
Primero se busca determinar el tipo de datos que serán usados, para
ello se realiza una prueba de estacionalidad. Para ello se usa la
función adf.test de la librería stats
##
## Augmented Dickey-Fuller Test
##
## data: all_lcrends$BTC
## Dickey-Fuller = -8.9222, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
De esto se concluye que la mejor opción es utilizar los datos en formato cambios logarítmicos, pues son los únicos que pasan la prueba.
De igual forma se realiza una prueba para establecer el numero de
lags que se usaran para el Granger Test, esto se hace usando la función
VARselect, de la libreria vars la cual elige
el lag optimo para los datos.
# determinar numero de lags
lag_selection <- VARselect(all_lcrends[, c("syp500", "BTC")], lag.max = 10, type = "const")
# Obtener los lags optimos
lag_selection$selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 1 1 1 1
De dicha prueba se logra determinar que lo mejor es realizar la prueba con un lag de 1.
Al realizar una primera prueba se logra concluir que no existe una relacion causal entre las variables, sin embargo, esto es mediante un análisis de toda la linea temporal.
# Prueba de causalidad de Granger
granger_test <- grangertest(BTC ~ syp500, order = 1, data = all_lcrends)
## Granger causality test
##
## Model 1: BTC ~ Lags(BTC, 1:1) + Lags(syp500, 1:1)
## Model 2: BTC ~ Lags(BTC, 1:1)
## Res.Df Df F Pr(>F)
## 1 782
## 2 783 -1 0.3382 0.561
Debido a que el análisis se realiza de una sola vez para todas las series de tiempo, es difícil encontrar patrones reales, siendo que en este caso no se puede determinar la posible existencia de una relacion causa/efecto, debido a que la significancia es mayor al 0.05, por lo que se opta por realizar análisis mediante ventanas de tiempo, buscando encontrar las relaciones a lo largo del tiempo y con todas las variables.
Se obtiene la siguiente figura:
De este análisis se puede confirmar la posibilidad de que exista una relacion causa/efecto entre la dominancia de bitcoin, la capitalización de mercado, el nasdaq y el syp500, al menos durante algunos periodos de tiempo.
En cuanto a los mercados tradicionales, estos cuentan con una reacción similar, aunque superior por parte del syp500.
En cuanto a las métricas del mercado cripto, la dominancia de bitcoin y la capitalización de mercado tienen un comportamiento en donde al inicio no llegaban a tener una relacion ante los cambios en BTC, son embargo, al acercarse cada vez mas a fechas recientes, se logra observar que estas métricas sí pueden tener un impacto o una relacion. Por caso contrario, el Fear y Greed Index, no logra brindar evidencia consistente sobre una relacion causal con BTC.
Al realizar el mismo análisis, pero ahora respecto a ETH
se obtiene la siguiente figura:
Al comparar los gráficos se observa un comportamiento similar al de BTC respecto a el Syp500, aunque con un impacto menor.
El Fear y Greed Index de igual forma no presenta información que apoye una relacion causal.
El comportamiento respecto a la dominancia de Bitcoin, es menos notorio, sin embargo aun esta presente.
La capitalización de mercado tiene efecto únicamente en 2 periodos de tiempo, a finales del 2022 y a finales del 2023.
En cuanto a su relacion causal con bitcoin, los resultados, si bien muestra la posibilidad de una relacion causal esta no es tan marcada como se esperaría.
Al comparar los resultados con las gráficas individuales de los activos, presentan movimientos estructurales significativamente similares, con tendencias compartidas en casi todos los casos, sobre todo en cuanto a Bitcoin y Ethereum, se podría llegar a esperar una mayor causalidad, sin embargo, esto se puede ver afectado por la percepción de que la correlación entre las variables implicaría causalidad entre estas, cuando no es completamente así en el caso, ademas de que existen militantes en cuanto al test de Grangerel cual tiene limitantes para detectar cambios estructurales o de alta volatilidad, los cuales son características notables en el mercado de las criptomonedas
Según Saavedra (2023), La regresión lineal es un modelo matemático que describe la relación entre varias variables. Los modelos de regresión lineal son un procedimiento estadístico que ayuda a predecir el futuro.
\[ Y_t= β_1 + β_2X_t+u_t \]
En este caso se utiliza un modelo de regresión lineal simple entre
BTC y cada una de las otras variables de análisis menos
ETH, y también se analiza ETH respecto a
BTC, btc_dom, fg_index y
market_cap .
De la regresión con BTC regresión se obtiene la
siguiente gráfica:
##
##
## | R_squared| Adj_R_squared| F_statistic|p_value | std_error|Variable |
## |---------:|-------------:|-----------:|:-------|---------:|:------------------|
## | 0.1335| 0.1324| 120.8321|0e+00 | 0.0379|S&P 500 |
## | 0.1502| 0.1491| 138.5445|0e+00 | 0.0375|NASDAQ |
## | 0.9990| 0.9990| 158033.4986|0e+00 | 0.0029|BTC Dominance |
## | 0.8647| 0.8642| 1502.4713|0e+00 | 0.0077|Fear & Greed Index |
## | 0.9087| 0.9085| 5669.8064|0e+00 | 0.0143|Market Cap |
En las regresiones con Bitcoin como base, se observa que todas las métricas del sector cripto tienen una fuerte relacion lineal con una baja dispersión. El caso más llamativo el de la dominancia de Bitcoin, siendo que a mas dinero del sector entre a Bitcoin, su precio tiende a subir, caso similar al de la capitalización de mercado.
Los mercados tradicionales, si bien se puede decir que tienen una relacion positiva significativa, presentan una mayor dispersión , y con comportamientos prácticamente iguales entre si.
Es posible determinar que Bitcoin tiene una relacion lineal positiva y significativa con las variables utilizadas.
En cuanto a las regresiones con ETH como base, se
obtiene los siguientes resultados:
##
##
## | R_squared| Adj_R_squared| F_statistic|p_value | std_error|Variable |
## |---------:|-------------:|-----------:|:-------|---------:|:------------------|
## | 0.6746| 0.6744| 2372.1159|0e+00 | 0.0250|BTC |
## | 0.6843| 0.6823| 348.9583|0e+00 | 0.0682|BTC Dominance |
## | 0.5682| 0.5664| 309.2883|0e+00 | 0.0154|Fear & Greed Index |
## | 0.8198| 0.8195| 2592.8600|0e+00 | 0.0259|Market Cap |
Es posible observar una relacion positiva en todas las variables, siendo el caso mas destacable la capitalización de mercado con el poder explicativo más grande, mientras que la variable con el menor poder explicativo es el Fear y Greed Index.
Existe una fuerte relacion con una relativamente baja dispersión entre Bitcoin y Ethereum, siendo congruente con el comportamiento del precio entre ambos activos.
El caso de la dominancia de bitcoin es desconcertante, puesto que una relacion lineal, aunque con una dispersión relativamente mas grande, implicaría que a mayor es la proporcion de dinero que entra a Bitcoin respecto al resto de las criptomonedas mayor seria el precio de Ethereum, suceso que no es posible al largo plazo.
Es posible determinar que Ethereum tiene una relacion lineal positiva y significativa con las variables utilizadas.
Para mejorar el análisis en futuras ramas de investigación se recomienda el utilizar técnicas de medición de la cointegración entre las variables, o la implementación de métodos de prueba de causalidad no lineal, además de tomar en cuenta la existencia de factores externos que pueden influir en los activos de manera simultanea, buscando así obtener una imagen más completa de las fuerzas que conforman al mercado.
De igual forma es necesario realizar mas pruebas respecto a la relacion lineal que puedan tener las variables, pues se presentan inconsistencias en algunos de los resultados.
Otra posible fuente para próximas investigaciones es la aplicación de metodologías para medir la transmisión de volatilidad entre los diversos activos, ya no solo de los analizados en el presente documento, sino incluir un mayor numero de activos y muestras para una medición mas completa.
Capitalización de mercado. (2024, 14 mayo). Hablemos de Bolsa. https://blog.bmv.com.mx/glossary/capitalizacion-de-mercado/
Crypto Fear & Greed Index | Bitcoin Sentiment | Binance. (s. f.). Binance Square. https://www.binance.com/en/square/fear-and-greed-index
Eric. (2021, 29 junio). Introduction to Granger Causality | Aptech. https://www.aptech.com/blog/introduction-to-granger-causality/#:~:text=Granger%20causality%20is%20an%20econometric,for%20forecasting%20the%20other%20variable.
Gráfico dominio Bitcoin: BTC.D — TradingView. (s. f.). TradingView. https://es.tradingview.com/symbols/BTC.D/
Gráficos y Datos del Mercado de Criptomonedas en Tiempo Real | CoinMarketCap. (s. f.). CoinMarketCap. https://coinmarketcap.com/es/charts/
Granger causality test for values above a threshold in time series . . . (s. f.). https://la.mathworks.com/matlabcentral/answers/2011182-granger-causality-test-for-values-above-a-threshold-in-time-series-data
Saavedra, J. A. (2023, 3 mayo). Regresión Lineal: teoría y ejemplos. Ebac. https://ebac.mx/blog/regreson-lineal
Top-40 crypto perpetuals hourly prices. (2024, 6 junio). Kaggle. https://www.kaggle.com/datasets/hsergeyfrolov/top-40-crypto-perpetuals-hourly-prices