专栏首页量化投资与机器学习N-CryptoAsset投资组合 | 使用PCA识别高度相关的加密货币(最近听说某币很疯狂哦!)

N-CryptoAsset投资组合 | 使用PCA识别高度相关的加密货币(最近听说某币很疯狂哦!)

前言

在本文中,以每日加密货币价格时间序列为例,以选择其中一个加密货币,通过巧妙地合并,我们将创建一个可存储的(例如HDF5,CSV文件格式)和可重用的N-CryptoAsset投资组合的文件。接下来,对于任何手动定义的时间间隔,我们将应用主成分分析(PCA)去实现建立一些模型,最后基于几个主要组件的分析来识别高度相关的加密货币。

520

找个好人

Python中的

N-Cryptocurrency组合

考虑任何资产的单一(每日抽样)收盘价时间序列。 它有开始和结束日期。 如果我们使用的数据来源是直接通过交易所,每个交易日都有相应的收盘价。 与外汇货币不同,加密货币全年都可以全天候交易。 但是,请记住,每个单一的加密货币在市场上都有自己的“fist time”,因此历史价格系列的长度不一样。 幸运的是,Python和它的pandas可以让我们控制时间序列范围和进一步的过滤。 下面直接开始程序吧:

获取时间序列很容易。 创建投资组合需要更多的关注细节。 让我们把选择的加密货币相对应的代码列表(fsym)放在一起,让我们定义“versus”我们希望表达的全部货币(tsym):

由于交易中流动性很差,所以省略了USDT。

通过运行程序我们给定(fsym)代码列表(每日历史收盘价)创建N-CryptoAsset投资组合:

比特币(BTC)是所有加密货币的头一把交易。

由于我们的DataFrame(df)包含大量缺失值(NaN),所以从这一点来看,有多种可能性可以提取数据分析子集。 例如,如果您想创建一个子组合,比如df1,只能存储BTC,DASH和XMR,可以通过以下方式实现:

那些NaN可以分散注意力。 不好的做法是用固定值(例如零)替换它们,因为它引入了无效数据。 插值也是一个坏主意。 一个好的是根据选择的日期/时间间隔进行过滤,或强制所有的时间序列在同一天开始,数据可用于所有三个货币。 后者由pandas自动完成,如下所示:

在此选择2017年3月作为输入数据,所有21个加密时间序列将在以下内容中进行分析。

相关性基于PCA

相关矩阵:

PC loadings (columns, k=1,…,21):

现在,构建一个涵盖PCA的最后两个PC组件(PC-20和PC-21)中每个隐式货币的相对权重的二重曲线,该协方差矩阵涵盖2017年3月的全时间段:

我们需要确定最大负载的加密货币。 通过阈值,采用导出距离的平均值加上一个标准偏差。 接下来,检查每个货币的数量为1号,2号,3号或4号,保存为一个列表中的元组。 最后,通过分别添加x和y标签来完成一个双曲线的绘制:

第1季度“高于门槛值”的货币可能与第3季度发生的高度相关。同样适用于第2季度与第4季度。我们使用两种不同工具的这种货币对(密码时间序列)的线性相关性,即单因素线性回归(R2)和Kendall的等级相关度量τ

高度相关的加密货币:

ETC ETH
0.953695467194 1.13545626686e-16  # R^2  p-value
0.840760907233 3.03600231596e-11  # tau  p-value
ETC PIVX
0.937915426073 7.20370581785e-15  # R^2  p-value
0.78875507792 4.55270029579e-10   # tau  p-value

WAVES ETH

0.909168786883 1.48631538239e-12 # R^2 p-value

0.81377872765 1.26296896563e-10 # tau p-value

WAVES PIVX

0.894512813936 1.18055349284e-11 # R^2 p-value

0.753498821898 2.59829246278e-09 # tau p-value

- END -

本文分享自微信公众号 - 量化投资与机器学习(ZXL_LHTZ_JQXX),作者:编辑部

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【重磅干货】Matlab 高频算法交易——从基础到高级算法的完美实现(源码附送,这货太干了!)

    由于内容较多,附上部分代码和截图。具体内容,大家下载后进行学习。 ? ? ? ? ? ? ? ? ? ? ? ?

    量化投资与机器学习微信公众号
  • 【传奇】华尔街穿梭如鲫,江湖从此不再平静!

    量化投资与机器学习微信公众号
  • 用Python实现一个基于RSA算法的区块链客户端(区块链系列4)

    量化投资与机器学习微信公众号
  • G20公报重点关注加密货币,预计7月出台相关政策 | 热点

    镁客网
  • PHP的几个常用加密函数

    在php的开发过程中,常常需要对部分数据(如用户密码)进行加密 一、加密类型: 1.单向散列加密   就是把任意长度的信息进行散列计算,得到固定长度的输出,这个...

    joshua317
  • Travis CI 教程:入门

    在这个 Travis CI 教程中,学习如何设置流行的持续集成服务,并与 GitHub 集成,以便自动运行测试。

    iOSDevLog
  • 【重磅】阿里CEO:“电子商务”未来将会消失

    如果以未来的视角观察今天的变革,我们就可以预见,未来所有的商业、业务、产业都是互联网的。届时,互联网这个概念会消失。因为它已经无处不在。

    曾响铃
  • 手动构建比特币交易

    Andreas Antonopoulos曾经提到过,如果他将入狱,他将通过玩数独来重塑比特币共识算法的离线版本。在比特币聚会上进行这样的角色扮演比起最初想象的更...

    hekind
  • 夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!

    近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领的联合团队,摘得WSDM Cup 2020大赛“...

    AI科技大本营
  • 【译】npx简介:一种npm包的执行器

    那些将npm升级到npm@5.2.0或以上的用户,会发现与通常的npm平级的文件夹中还多了另一个二进制文件:npx

    腾讯IVWEB团队

扫码关注云+社区

领取腾讯云代金券