La correlation entre la chute des devises et le Bitcoin

Auteur:Le foin, Créé à partir de:

img

Dans un article précédent, nous avons abordé un phénomène courant sur le marché des monnaies numériques: la plupart des monnaies numériques, en particulier celles qui suivent les fluctuations des prix de Bitcoin et d'Ethereum, présentent souvent une tendance à la convergence. Ce phénomène révèle une forte correlation entre elles et les monnaies traditionnelles.

Les racines synchronisées du marché de la monnaie numérique

Le marché des monnaies numériques est réputé pour sa volatilité et son incertitude. Bitcoin et Ethereum, les deux géants du marché, jouent souvent un rôle de premier plan dans les mouvements de prix. La plupart des petites ou émergentes monnaies numériques, afin de maintenir la compétitivité du marché et l'activité des transactions, ont tendance à maintenir un certain degré de synchronisation des prix avec ces monnaies principales, en particulier les monnaies du marché par projet. Cette synchronisation reflète les attentes psychologiques et les stratégies de trading des participants au marché et est un facteur important à prendre en compte dans la conception de stratégies de transactions quantitatives.

Formules et méthodes de calcul de la corrélation

Dans le domaine de la quantification des transactions, la mesure de la corrélation est réalisée par des méthodes statistiques. La méthode la plus couramment utilisée est la coefficient de corrélation de Pearson, qui mesure la corrélation linéaire entre deux variables. Voici quelques concepts et méthodes de calcul:

Les coefficients de Pearson (écrits comme $r$) ont une plage comprise entre -1 et +1, où +1 indique une correlation parfaitement positive, -1 indique une correlation parfaitement négative et 0 indique une correlation non linéaire.

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

Parmi eux, $X_i$ et $Y_i$ sont les valeurs observées de deux variables aléatoires, $\bar{X}$ et $\bar{Y}$ sont respectivement les moyennes de ces deux variables aléatoires.

Collecte de données

Cet article recueille les données de la ligne 4hK pour l'année 2023 de Binance, en sélectionnant les 144 pièces qui seront mises en circulation le 1er janvier. Les codes de téléchargement sont les suivants:

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)

Retour sur la vie

Après avoir analysé les données et calculé l'indice de baisse des prix moyens, on peut voir que le marché de 2023 comporte deux vagues: une vague de hausse au début de l'année et une vague de hausse qui a commencé en octobre et qui est actuellement essentiellement au sommet de l'indice.

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

Analyse de la pertinence

Le calcul de la corrélation des pandas est basé sur la corrélation des prix et des faibles de la BTC. La plupart des devises sont positives, ce qui signifie qu'elles suivent le prix de la BTC, mais certaines sont négatives, ce qui est une anomalie dans le marché de la monnaie numérique.

img

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

La pertinence et l'augmentation des prix

Ici, il est peu rigoureux de diviser les monnaies en deux groupes, le premier groupe de 40 monnaies les plus liées au prix de BTC, le deuxième groupe de monnaies les moins liées au prix de BTC, en utilisant l'indice de prix du premier groupe moins l'indice du deuxième groupe, ce qui représente une moyenne de plus que le premier groupe pour le deuxième groupe, on peut calculer la relation entre la chute des prix et la relation entre BTC. Le code et le résultat sont les suivants:

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

img

Les résultats montrent que les monnaies plus fortement liées au prix de BTC ont une meilleure hausse et que les monnaies moins liées au vide ont également un bon effet de couverture. Ce qui est peu rigoureux ici, c'est que les données futures ont été utilisées pour calculer la corrélation, puis les données ont été divisées en deux groupes, un groupe pour calculer la corrélation et un autre pour calculer les gains après couverture.

Bitcoin et Ethereum étant les leaders du marché, leurs mouvements de prix ont souvent un impact énorme sur l'ensemble du marché. Lorsque les prix de ces bitcoins augmentent, l'émotion du marché devient généralement optimiste et de nombreux investisseurs ont tendance à suivre la tendance du marché. Les investisseurs peuvent voir cela comme un signal de hausse de l'ensemble du marché et commencer à acheter d'autres monnaies.

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

img

Résumé

L'article montre comment obtenir des données pour calculer les correlations entre les devises et les utiliser pour évaluer les tendances du marché. Il révèle que la synchronisation des fluctuations des prix dans le marché des monnaies numériques reflète non seulement la psychologie et la stratégie du marché, mais peut également être quantifiée et prédite par des méthodes scientifiques.

L'idée de cet article peut encore être étendue, comme le calcul de la corrélation de roulement, de la corrélation de la hausse et de la baisse, etc., pour analyser plus d'informations utiles.


Plus de

mztcoinEh bien, l'analyse de la corrélation peut être combinée avec les stratégies précédentes de faire des super-boulons et de faire des super-baisses.