之前的几节做的全部是ump相关的回测与训练,本节将在第10节:比特币莱特币的回测,
第12节:机器学习与比特币示例, 第14节:量化相关性分析应用的基础上做一个完整的
比特币策略示例。
1. 比特币 vs 黄金 ?莱特币 vs 白银 ?
在第14节中使用abupy中的各个相似度接口示例 了如何度量相关性。
比特币与莱特币是现在交易量最大的币类,比特币的出现类似于真实市场中的黄金,
莱特币的设计标榜黄金与白银的关系,比特币10分钟一个块,莱特币参照1:4的关系
设计2.5分钟一个块,总数量比特币为2100万,莱特币8400万,那是不是比特币和黄金
的相关度高,莱特币和白银的相关度高呢?
下面首先从内置期货symbol数据中查到国内期货黄金,白银的code:
fcn = AbuFuturesCn()fcn.futures_cn_df[(fcn.futures_cn_df['product']
== '黄金') | (fcn.futures_cn_df['product'] == '白
银')]
接下来从内置期货symbol数据中查到国际期货黄金,白银的code:
fgb = AbuFuturesGB()fgb.futures_gb_df[(fgb.futures_gb_df['product']
== '伦敦金') | (fgb.futures_gb_df['product'] == '伦敦银') |
(fgb.futures_gb_df['product'] == '纽约黄金') |
(fgb.futures_gb_df['product'] == '纽约白银')]
将上述期货黄金,白银产品和比特币,莱特币一起做交易数据获取,如下:
choice_symbols = ['btc', 'ltc', 'AU0', 'AG0', 'XAU', 'XAG', 'SI',
'GC']panel = ABuSymbolPd.make_kl_df(choice_symbols, start='2014-03-
19', end='2017-07-25',
show_progress=True)# 转换panel轴方向,即可方便获取所有金融时间数据的某一个列
panel = panel.swapaxes('items', 'minor')# dropna:因为btc, ltc一周交易7
天,别的市场5天,dropna即把周六,周日的都drop了cg_df =
panel['p_change'].dropna()cg_df.tail()
只使用正负号相关度计算,如下所示:
备注:更多关于相关性的接口使用请阅读 第14节:量化相关性分析应用
corr_df = ABuCorrcoef.corr_matrix(cg_df,
similar_type=ECoreCorrType.E_CORE_TYPE_SIGN)corr_df.btc.sort_values()
[::-1]btc 1.0000ltc 0.5929AG0 0.0457AU0 0.0321GC
0.0304SI 0.0130XAU 0.0099XAG 0.0026Name: btc, dtype:
float64
从结果可以看到,和比特币最相关的是国内白银,并不是黄金,而且国内期货相关性
要高于国际期货产品。
但从结果来看实际上并不知道黄金,白银在整体市场中与比特币的相关水平,下面以
整个A股市场和比特币做相关性计算,统计相关值。