Влияние падения валюты на биткоин

Автор:Трава, Создано: 2023-11-16 16:53:56, Обновлено: 2023-11-17 21:36:53

img

В предыдущих статьях мы обсуждали общее явление на рынке цифровых валют: большинство цифровых валют, особенно те, которые следуют за колебаниями цен на биткоин и эфириум, часто демонстрируют тенденцию к падению. Это явление показывает их высокую корреляцию с основными валютами.

Синхронные корни рынка цифровых денег

Рынок цифровых валют известен своей волатильностью и неопределенностью. Биткоин и Эфириум, как два крупных гиганта рынка, часто играют ведущую роль в движении цен. Большинство небольших или развивающихся цифровых валют, чтобы сохранить конкурентоспособность рынка и активность торговли, часто сохраняют определенную цену синхронизации с этими основными валютами, особенно с валютами, которые находятся на рынке по проектам. Такая синхронизация отражает психологические ожидания и торговые стратегии участников рынка, что является важным фактором в разработке количественной стратегии торговли.

Формулы и методы расчета корреляции

В области количественных сделок измерение корреляции осуществляется статистическими методами. Наиболее часто используемый метод измерения - корреляционный коэффициент Пирсона, который измеряет степень линейной корреляции между двумя переменными. Ниже приведены некоторые из основных концепций и методов расчета:

Пирсонские коэффициенты ((записанные как $r$) имеют диапазон от -1 до +1, где +1 обозначает полную положительную зависимость, -1 - полную отрицательную зависимость, а 0 - отсутствие линейной зависимости. Формула расчета коэффициента выглядит следующим образом:

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

$X_i$ и $Y_i$ - это наблюдаемые значения двух случайных переменных, $\bar{X}$ и $\bar{Y}$ - это средние значения этих двух случайных переменных.

Сбор данных

В данной статье собраны данные по линии 4hK на весь 2023 год, выбранные из 144 монет, выпущенных 1 января. Конкретные коды для загрузки данных:

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)

Обзоры

Сначала объединим данные и вычислим индекс падения средних цен, и мы увидим, что в 2023 году есть две волны рынка, в которых в начале года произошла большая волна, а также большая волна, начавшаяся в октябре, которая в настоящее время находится в основном на высоте индекса.

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

Анализ корреляции

Pandas самостоятельно рассчитывает корреляцию, а также корреляцию цены BTC и наиболее слабые из них. Большинство валют имеют положительную корреляцию, что означает, что они следуют за ценой BTC, а некоторые валюты имеют отрицательную корреляцию.

img

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

Соотношение и рост цен

Здесь неточно разделить монеты на две группы, первая группа - 40 монет, наиболее связанных с ценой BTC, вторая группа - монеты, наименее связанные с ценой BTC, с помощью индекса цены первой группы минус индекс второй группы, что означает, что в среднем больше первой группы, чем вторая группа, можно вычислить связь ценового падения с BTC. Код и результат:

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

img

Результаты показывают, что криптовалюты, которые более сильно связаны с ценой BTC, лучше растут, и криптовалюты, которые имеют более низкую неактивную корреляцию, также играют хорошую роль в хеджировании. Здесь неуверенность заключается в том, что при расчете корреляции используются данные о будущем, а затем данные делятся на две группы, одну группу для расчета корреляции, другую группу для расчета доходности после хеджирования. Результаты, как показано ниже, остаются теми же.

Биткойн и Эфириум, как лидеры рынка, часто оказывают значительное влияние на целый рынок. Когда цены на эти биткоины растут, рыночные настроения обычно становятся оптимистичными, и многие инвесторы склонны следовать тенденциям рынка. Инвесторы могут рассматривать это как сигнал к росту рынка в целом и начинать покупать другие валюты. В результате коллективного поведения участников рынка, валюты, высоко связанные с основными валютами, могут испытывать аналогичные ценовые повышения.

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

img

Подведение итогов

В статье раскрывается степень взаимосвязи между валютами. В статье показано, как получить данные, которые позволят вычислить взаимосвязь между валютами и использовать эти данные для оценки рыночных тенденций. В статье показано, что синхронность ценовых колебаний на рынке цифровых валют является не только отражением рыночной психологии и стратегии, но также может быть количественно и предсказуемо с помощью научных методов.

Есть много возможностей для расширения этой идеи, например, можно вычислить корреляцию ролика, корреляцию подъема и падения, и т.д., чтобы проанализировать более полезную информацию.


Больше

mztcoinХорошо, анализ корреляции может быть использован в сочетании с предыдущей стратегией сверху и вверх, сверху и вниз.