大数跨境
0
0

比特币下跌与加密货币的联动效应(附代码)

比特币下跌与加密货币的联动效应(附代码) 量化投资与机器学习
2021-03-26
0
导读:定量分析~

前言

比特币价格的剧烈波动往往引发整个加密市场的连锁反应。本文基于Coinbase Pro数据,对2021年3月13日比特币从61788美元高点回落至两天后54568美元期间的市场行为进行定量分析,研究其他加密资产在短期内对比特币价格变动的跟随程度。

通过编程计算加密资产与比特币之间的瞬时价格运动关系,本文采用分钟级收盘价数据,捕捉短期价格联动特征。该方法区别于传统线性相关性分析,聚焦于价格方向的一致性,最终得出:在特定交易时段,高达95%至100%的加密资产同步响应比特币的价格走势。同时提出,5分钟滚动平均的瞬时相关性可作为衡量加密资产短期抛售风险的有效指标。

数据整理

首先获取比特币小时级OHLC数据,并绘制价格走势图,确认其在研究区间内的波动特征:

import ccrypto as cc
import numpy as np
import pandas as pd
import pickle
import matplotlib.pyplot as plt

grey = (.8,.8,.8)

# 下载 BTC OHLC 
b = cc.getCryptoSeries('BTC', 'USD', freq='h', ohlc=True, exch='Coinbase', \
                      start_date='2021-03-13 00:00')

fig, ax1 = plt.subplots(1,1, figsize=(12,7))
ax1.plot(b.BTCUSD_H, 'b:')
ax1.plot(b.BTCUSD_C, 'k')
ax1.plot(b.BTCUSD_L, 'r:')
ax1.grid()
plt.title('BTC Price: Max %.2f, Min %.2f' % (b.BTCUSD_H.max(), b.BTCUSD_L.min())

随后,选取包括以太坊(ETH)、莱特币(LTC)、链链接(LINK)等在内的24种主流加密货币,获取其在Coinbase平台上的1分钟级别收盘价时间序列,用于分析其对比特币价格变动的即时响应:

ccys = ['BTC', 'ETH', 'LTC', 'LINK', 'BCH', 'XLM', 'WBTC', 'AAVE', 'EOS', 'ATOM',
        'XTZ', 'DASH', 'GRT', 'MKR', 'SNX', 'ALGO', 'COMP', 'ZEC', 'ETC', 'YFI',
        'CGLD', 'OMG', 'UNI', 'UMA']
timeseries = {}
fi = True

plt.figure(figsize=(12,7))

for ccy in ccys:
    timeseries[ccy] = cc.getCryptoSeries(ccy, 'USD', freq='m', exch='Coinbase', \
                                      start_date='2021-03-15 00:00')
    
    if fi:
        df = timeseries[ccy]
        fi = False
    else:
        df = pd.merge(left=df, right=timeseries[ccy], how='left', 
                      left_index=True, right_index=True)
    
    plt.plot((timeseries[ccy]-timeseries[ccy].mean())/timeseries[ccy].std(), color=grey)

plt.plot((timeseries['BTC']-timeseries['BTC'].mean())/timeseries['BTC'].std(), 
         color='r', label='Bitcoin')
plt.legend(loc=3)
plt.grid()
plt.ylabel('Standardised Price')
plt.xlabel('Date/Time')

经标准化处理后的价格走势显示,尽管各加密货币交易活跃度不同,但其价格变动方向与比特币高度一致。

进一步将价格序列转换为1分钟收益率序列,并剔除因数据缺失导致无效的四个资产(GRT、ALGO、CGLD、UMA):

df_ret = df.pct_change(periods=1)

mask = df_ret.isna()
df_ret[mask] = np.nan 

df_ret.dropna(how='all', axis=0, inplace=True)

del df_ret['GRTUSD']
del df_ret['ALGOUSD']
del df_ret['CGLDUSD']
del df_ret['UMAUSD']

瞬时相关性分析

为衡量其他加密资产在每一分钟内是否与比特币同向波动,构建符号判断逻辑:若某资产当期收益率符号与比特币相同,则标记为True,否则为False。

df_ret_dir = df_ret.copy()

for i in range(0, df_ret.shape[0]):
    row = df_ret.iloc[i]
    btc_sign = -1 if df_ret.iloc[i][0] < 0.0 else 1
    df_ret_dir.iloc[i] = np.sign(row) == btc_sign

此操作生成一个布尔型DataFrame,反映各资产每分钟是否跟随比特币变动方向,即“瞬时相关性”。

研究结论

通过对瞬时相关性矩阵按行求均值,计算出每个时间点上与比特币同向波动的资产比例:

fraction = df_ret_dir.astype(int).sum(axis=1) / df_ret_dir.shape[1]

display(pd.DataFrame(fraction, columns=['Fraction']))

结合价格走势与资产跟随比例曲线可见,在比特币出现明显下跌阶段,绝大多数加密资产几乎同步下行。部分时段内,跟随比例达到95%甚至100%:

fig, ax1 = plt.subplots(1,1, figsize=(12,9))

for ccy in ret.columns.tolist():
    ax1.plot((df[ccy]-df[ccy].mean())/df[ccy].std(), color=grey)
    
ax1.plot((df['BTCUSD']-df['BTCUSD'].mean())/df['BTCUSD'].std(), 'r-', label='1-min BTCUSD')
ax1.grid()
ax1.set_ylabel('Normalised Price')
ax1.set_xlabel('Date and Time')
ax2 = ax1.twinx()
ax2.plot(ratio.iloc[1:], '-', color='#f09547', alpha=0.35, label='1-min Fraction')
ax2.plot(fraction.rolling(5).mean(), color='#f09547', label='5-min rolling average fraction')
ax2.set_ylabel('Fraction')
ax2.legend(loc=4)
ax1.legend(loc=3)
ax1.set_xlim([pd.to_datetime('2021-03-15 00:00'), pd.to_datetime('2021-03-15 13:00')])

以2021年3月15日10:20为例,3分钟滚动平均的资产跟随比例接近峰值:

fig, ax1 = plt.subplots(1,1, figsize=(12,7))

for ccy in ret.columns.tolist():
    ax1.plot((df[ccy]-df[ccy].mean())/df[ccy].std(), color=grey)
    
ax1.plot((df['BTCUSD']-df['BTCUSD'].mean())/df['BTCUSD'].std(), 'r-', label='1-min BTCUSD')
ax1.grid()
ax1.set_ylabel('Normalised Price')
ax1.set_xlabel('Date and Time')
ax2 = ax1.twinx()
ax2.plot(fraction.rolling(3).mean(), color='#f09547', label='3-min rolling average ratio')
ax2.set_ylabel('Fraction')
ax2.legend(loc=1)
ax1.legend(loc=3)
ax1.set_ylim([-2.1, 0])
ax1.set_xlim([pd.to_datetime('2021-03-15 08:30'), pd.to_datetime('2021-03-15 13:00')])
plt.title('Max Fraction = %.1f%% at %s' % 
          (100*(fraction[fraction.index > '2021-03-15 08:30']).max(), 
           fraction[fraction.index > '2021-03-15 08:30'].index[fraction[fraction.index > 
            '2021-03-15 08:30'].argmax()]))

结果显示,约95%的加密资产在同一时间段内与比特币保持一致的下跌趋势。这一现象可能源于高频交易算法在极短时间内(不足60秒)对BTC/USD价格波动做出快速复制或套利反应,从而带动整体市场同向运动。

综上所述,比特币在加密市场中仍处于主导地位,其价格变动具有显著的溢出效应。通过计算加密资产与比特币的瞬时方向一致性,并结合滚动平均处理,可构建有效的短期抛售风险监测指标,为市场参与者提供预警参考。

【声明】内容源于网络
0
0
量化投资与机器学习
1234
内容 1206
粉丝 0
量化投资与机器学习 1234
总阅读4.5k
粉丝0
内容1.2k