
En un artículo anterior, exploramos un fenómeno común en el mercado de criptomonedas: la mayoría de las criptomonedas, especialmente aquellas que siguen las fluctuaciones de precios de Bitcoin y Ethereum, a menudo muestran una tendencia de subida y bajada juntas. Este fenómeno revela su alta correlación con las monedas tradicionales. Sin embargo, el grado de correlación entre las diferentes criptomonedas varía. Entonces, ¿cómo afecta esta diferencia en la correlación al desempeño del mercado de cada moneda? En este artículo, exploraremos esta cuestión utilizando el mercado alcista de la segunda mitad de 2023 como ejemplo.
El mercado de criptomonedas es conocido por su volatilidad e incertidumbre. Bitcoin y Ethereum, como dos gigantes del mercado, a menudo juegan un papel principal en las tendencias de precios. Para mantener la competitividad del mercado y la actividad comercial, la mayoría de las monedas digitales pequeñas o emergentes tienden a mantener un cierto grado de sincronización de precios con estas monedas principales, especialmente las monedas creadas por las partes del proyecto. Esta sincronización refleja las expectativas psicológicas y las estrategias comerciales de los participantes del mercado, lo que constituye una consideración importante en el diseño de estrategias comerciales cuantitativas.
En el campo del comercio cuantitativo, la medición de la correlación se logra mediante métodos estadísticos. La medida más utilizada es el coeficiente de correlación de Pearson, que mide el grado de asociación lineal entre dos variables. A continuación se presentan algunos conceptos básicos y métodos de cálculo:
El coeficiente de correlación de Pearson (denominado \(r\)) varía de -1 a +1, donde +1 indica una correlación positiva perfecta, -1 indica una correlación negativa perfecta y 0 indica que no hay correlación lineal. El coeficiente se calcula de la siguiente manera:
\(r = \frac{\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n} (X_i - \bar{X})^2} \sqrt{\sum_{i=1}^{n} (Y_i - \bar{Y})^2}}\)
Aquí, \(X_i\) y \(Y_i\) son los valores observados de dos variables aleatorias, y \(\bar{X}\) y \(\bar{Y}\) son las medias de las dos variables aleatorias, respectivamente. Usando paquetes relacionados con la computación científica de Python, es muy conveniente calcular la correlación.
Este artículo recopila los datos de la línea K de 4 horas de Binance para todo el año 2023 y selecciona 144 monedas que figuraban en la lista el 1 de enero. El código de datos de descarga específico es el siguiente:
import requests
from datetime import date,datetime
import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ticker = requests.get('https://fapi.binance.com/fapi/v1/ticker/24hr')
ticker = ticker.json()
sort_symbols = [k['symbol'][:-4] for k in sorted(ticker, key=lambda x :-float(x['quoteVolume'])) if k['symbol'][-4:] == 'USDT']
def GetKlines(symbol='BTCUSDT',start='2020-8-10',end='2023-8-10',period='1h',base='fapi',v = 'v1'):
Klines = []
start_time = int(time.mktime(datetime.strptime(start, "%Y-%m-%d").timetuple()))*1000 + 8*60*60*1000
end_time = min(int(time.mktime(datetime.strptime(end, "%Y-%m-%d").timetuple()))*1000 + 8*60*60*1000,time.time()*1000)
intervel_map = {'m':60*1000,'h':60*60*1000,'d':24*60*60*1000}
while start_time < end_time:
time.sleep(0.5)
mid_time = start_time+1000*int(period[:-1])*intervel_map[period[-1]]
url = 'https://'+base+'.binance.com/'+base+'/'+v+'/klines?symbol=%s&interval=%s&startTime=%s&endTime=%s&limit=1000'%(symbol,period,start_time,mid_time)
res = requests.get(url)
res_list = res.json()
if type(res_list) == list and len(res_list) > 0:
start_time = res_list[-1][0]+int(period[:-1])*intervel_map[period[-1]]
Klines += res_list
if type(res_list) == list and len(res_list) == 0:
start_time = start_time+1000*int(period[:-1])*intervel_map[period[-1]]
if mid_time >= end_time:
break
df = pd.DataFrame(Klines,columns=['time','open','high','low','close','amount','end_time','volume','count','buy_amount','buy_volume','null']).astype('float')
df.index = pd.to_datetime(df.time,unit='ms')
return df
start_date = '2023-01-01'
end_date = '2023-11-16'
period = '4h'
df_dict = {}
for symbol in sort_symbols:
print(symbol)
df_s = GetKlines(symbol=symbol+'USDT',start=start_date,end=end_date,period=period)
if not df_s.empty:
df_dict[symbol] = df_s
df_close = pd.DataFrame(index=pd.date_range(start=start_date, end=end_date, freq=period),columns=df_dict.keys())
for symbol in symbols:
df_s = df_dict[symbol]
df_close[symbol] = df_s.close
df_close = df_close.dropna(how='any',axis=1)
En primer lugar, después de normalizar los datos, calculamos el índice de aumento y disminución de precios promedio. Podemos ver que hay dos olas de condiciones de mercado en 2023, una de las cuales es un gran aumento a principios de año y la otra es un Gran aumento a partir de octubre. El punto más alto del índice.
df_norm = df_close/df_close.fillna(method='bfill').iloc[0] #归一化
total_index = df_norm.mean(axis=1)
total_index.plot(figsize=(15,6),grid=True);

Pandas viene con un cálculo de correlación incorporado. La correlación con el precio de BTC se muestra en la siguiente figura. La mayoría de las monedas tienen una correlación positiva, lo que significa que siguen el precio de BTC, mientras que algunas monedas tienen una correlación negativa. considerado una anomalía en el mercado de divisas digitales.

corr_symbols = df_norm.corrwith(df_norm.BTC).sort_values().index
Aquí dividimos libremente las monedas en dos grupos. El primer grupo consta de 40 monedas que están más correlacionadas con los precios de BTC, y el segundo grupo consta de monedas que están menos correlacionadas con los precios de BTC. El índice de los dos grupos representa el promedio de largo plazo Posición en el primer grupo y posición corta en el segundo grupo. Se puede calcular la relación entre las fluctuaciones de precios y la correlación con BTC. El código y los resultados son los siguientes:
(df_norm[corr_symbols[-40:]].mean(axis=1)-df_norm[corr_symbols[:40]].mean(axis=1)).plot(figsize=(15,6),grid=True);

Los resultados muestran que las monedas con una correlación más fuerte con los precios de BTC tienen un mejor crecimiento y la venta en corto de monedas con baja correlación también juega un buen papel de cobertura. La parte imprecisa aquí es que se utilizan datos futuros para calcular la correlación. A continuación, los datos se dividen en dos grupos, uno para calcular la correlación y el otro para calcular el rendimiento después de la cobertura. Los resultados se muestran en la siguiente figura y La conclusión sigue siendo la misma.
Como líderes del mercado, los movimientos de precios de Bitcoin y Ethereum a menudo tienen un gran impacto en todo el mercado. Cuando los precios de estos bitcoins suben, el sentimiento del mercado generalmente se vuelve optimista y muchos inversores tienden a seguir la tendencia del mercado. Los inversores pueden ver esto como una señal de que todo el mercado está subiendo y comenzar a comprar otras monedas. Las monedas que están altamente correlacionadas con las principales monedas pueden experimentar aumentos de precios similares debido al comportamiento colectivo de los participantes del mercado. En estos momentos, las expectativas del mercado sobre las tendencias de precios a veces pueden convertirse en una profecía autocumplida. Las monedas con una correlación negativa con Bitcoin son únicas. Es posible que sus fundamentos se hayan deteriorado o que ya no estén en la mira de los inversores tradicionales. Incluso puede que exista un mercado que succione sangre para Bitcoin: el mercado las ha abandonado. Persigue las monedas que puedan seguir el ritmo de las ganancias.
corr_symbols = (df_norm.iloc[:1500].corrwith(df_norm.BTC.iloc[:1500])-df_norm.iloc[:1500].corrwith(total_index[:1500])).sort_values().index

Este artículo utiliza el coeficiente de correlación de Pearson para revelar el grado de correlación entre monedas. El artículo muestra cómo obtener datos para calcular correlaciones entre monedas y utilizar estos datos para evaluar las tendencias del mercado. Revela que la sincronización de las fluctuaciones de precios en el mercado de monedas digitales no es solo un reflejo de la psicología y la estrategia del mercado, sino que también puede cuantificarse y predecirse mediante métodos científicos. Esto es especialmente importante para el diseño de estrategias comerciales cuantitativas.
Hay muchas áreas en las que se pueden ampliar las ideas de este artículo, como calcular correlaciones continuas, calcular las correlaciones durante aumentos y disminuciones por separado, etc., para analizar información más efectiva.