Relación entre la caída de la moneda y el Bitcoin

El autor:Las hierbas, Creado: 2023-11-16 16:53:56, Actualizado: 2023-11-17 21:36:53

img

En un artículo anterior, abordamos un fenómeno general en el mercado de las monedas digitales: la mayoría de las monedas digitales, especialmente aquellas que siguen las fluctuaciones de precios de Bitcoin y Ethereum, suelen mostrar una tendencia a la caída y a la convergencia. Este fenómeno revela su alta correlación con las monedas tradicionales, pero también los diferentes grados de correlación entre las diferentes monedas digitales. Entonces, ¿cómo afecta esta diferencia de correlación al rendimiento del mercado de las diferentes monedas?

Las raíces sincronizadas del mercado de la moneda digital

El mercado de las monedas digitales es conocido por su volatilidad e incertidumbre. Bitcoin y Ethereum, los dos gigantes del mercado, suelen tomar el liderazgo en los movimientos de los precios. La mayoría de las monedas digitales pequeñas o emergentes, para mantener la competitividad del mercado y la vitalidad de las transacciones, suelen mantener un cierto grado de sincronización de precios con estas monedas principales, especialmente las monedas que operan en el mercado por proyecto.

Fórmulas y métodos de cálculo de la correlación

En el campo de las transacciones cuantitativas, la medición de la correlación se realiza mediante métodos estadísticos. El método de medición más comúnmente utilizado es el coeficiente de correlación de Pearson, que mide la correlación lineal entre dos variables.

Los coeficientes de Pearson (denominados como $r$) se encuentran en un rango de -1 a +1, donde +1 indica una correlación totalmente positiva, -1 una correlación totalmente negativa y 0 una correlación no lineal. La fórmula de cálculo del coeficiente es la siguiente:

$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}}$

En este caso, $X_i$ y $Y_i$ son los valores observados de dos variables aleatorias, y $\bar{X}$ y $\bar{Y}$ son los valores medios de las dos variables aleatorias respectivamente.

Recopilación de datos

Este artículo recopila los datos de la línea 4hK para todo el año 2023, seleccionando 144 monedas que se lanzarán el 1 de enero.

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)

Recuerdos

Primero, después de analizar los datos y calcular el índice de caída de los precios promedio, se puede ver que en 2023 hay dos oleadas de mercado, una de las cuales es una ola de crecimiento al comienzo del año, y otra que comenzó en octubre, que actualmente está básicamente en 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);

img

Análisis de correlación

El cálculo de la correlación de pandas, con la correlación de precios de BTC y el más débil, se muestra a continuación. La correlación de la mayoría de las monedas es positiva, lo que significa que siguen el precio de BTC, y también hay una correlación de monedas negativa, lo que es una anomalía en el mercado de monedas digitales.

img

corr_symbols = df_norm.corrwith(df_norm.BTC).sort_values().index

Relación con el aumento de los precios

Aquí se divide la moneda en dos grupos, el primer grupo de 40 monedas más relevantes para el precio de BTC, y el segundo grupo de monedas menos relevantes para el precio de BTC, utilizando el índice de precio del primer grupo menos el índice del segundo grupo, representando un promedio de más del primer grupo y el segundo grupo vacío, se puede calcular la relación entre la caída del precio y la relación con BTC.

(df_norm[corr_symbols[-40:]].mean(axis=1)-df_norm[corr_symbols[:40]].mean(axis=1)).plot(figsize=(15,6),grid=True);

img

Los resultados muestran que las monedas más fuertemente correlacionadas con el precio de BTC crecen mejor, y las monedas con una baja correlación al vacío también desempeñan un buen efecto de cobertura. Lo que no es riguroso aquí es que se utilizan datos futuros para calcular la correlación, y luego se dividen en dos grupos, un grupo para calcular la correlación y otro para calcular la ganancia después de la cobertura, y el resultado sigue siendo el mismo, como se muestra en la siguiente figura.

Bitcoin y Ethereum son los líderes del mercado, y sus movimientos de precios a menudo tienen una gran influencia en el mercado en general. Cuando 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 el mercado en general sube y comenzar a comprar otras monedas. Debido al comportamiento colectivo de los participantes en el mercado, las monedas altamente asociadas con las monedas dominantes pueden experimentar aumentos de precios similares.

corr_symbols = (df_norm.iloc[:1500].corrwith(df_norm.BTC.iloc[:1500])-df_norm.iloc[:1500].corrwith(total_index[:1500])).sort_values().index 

img

Resumen

Este artículo revela el grado de correlación entre las monedas. El artículo muestra cómo obtener datos para calcular la correlación entre las monedas y utilizar estos datos para evaluar las tendencias del mercado. Se revela que la sincronía de las fluctuaciones de precios en el mercado de monedas digitales no solo refleja la psicología y la estrategia del mercado, sino que también se puede cuantificar y predecir mediante métodos científicos.

La idea de este artículo tiene muchos lugares donde se puede ampliar, como calcular la correlación de rodaje, calcular la correlación de alza y bajada respectivamente, etc., para analizar más información útil.


Más.

el mztcoinBueno, el análisis de correlación se puede combinar con la estrategia anterior de hacer más o menos un salto y más o menos un descenso.