专栏名称: 程序人生
十年漫漫程序人生,打过各种杂,也做过让我骄傲的软件;管理过数十人的团队,还带领一班兄弟姐妹创过业,目前在硅谷一家创业公司担任 VP。关注程序人生,了解程序猿,学做程序猿,做好程序猿,让我们的程序人生精彩满满。
目录
相关文章推荐
51好读  ›  专栏  ›  程序人生

用 pandas 进行加密货币基金的投资分析

程序人生  · 公众号  · 程序员  · 2020-12-26 08:50

正文

请到「今天看啥」查看全文


好,背景就介绍这么多,更多细节请自行 Google 或者在灰度官网上查询,本人跟灰度资本无关,也不持有任何灰度基金,仅出于实验目的在二级市场上买过少许 GBTC。

对于 GBTC,什么是好的交易机会?

作为一个铁骨铮铮的程序员,看到这样的问题,心中自然会想:那么,我们拿一下所有的历史数据,看看 NAV 和币价之间有什么关系不就可以了么?

要实现这样的代码很简单,我们需要一个 python 的库: yfinance ,它用于获取某只股票(基金,加密货币)在 Yahoo Finance 上的历史数据:

import yfinance as yf
def get_ticker_history(ticker, period='3y'): t = yf.Ticker(ticker) return t.history(period=period)

然后,你可以在 Jupyter 里这样调用来获取 BTC 的历史价格(返回的是一个 pandas DataFrame):

这个数据可以直接用 mplfinance 库可视化成大家喜闻乐见的 candlestick chart:

同样的,我们也可以拿 GBTC 的数据,并可视化:

可以看到,二者的走势有极强的相关性。简单计算一下二者收盘价和涨跌幅度的相关性:

def get_close_prices(crypto, stock):    df = pd.DataFrame({'Crypto Close': crypto['Close'], 'Stock Close': stock['Close']}).dropna()    comp = df.pct_change().dropna()    return pd.DataFrame({'Crypto Close': df['Crypto Close'],                         'Stock Close': df['Stock Close'],                         'Crypto Percent': comp['Crypto Close'],                         'Stock Percent': comp['Stock Close'],                         'Stock Gain': comp['Stock Close'] - comp['Crypto Close'],                         'Stock Outperform': comp['Stock Close'] > comp['Crypto Close'],                        }).dropna()

可以得到价格(收盘价)相关系数是 0.962,非常强的相关性,涨跌幅的相关系数是 0.7097,比较强的相关性。

你也许会好奇,究竟 GBTC 走势比 BTC 更好,还是更差呢?五年的数据告诉我们,有 599 天 GBTC 的涨幅高于 BTC,有 659 天低于,但平均涨幅来看,GBTC 高于 BTC 0.05%。总体来说差别不大。







请到「今天看啥」查看全文