python受益股_Python 金融: 看看 A股区块链板块
前文做了一篇区块链本身的一些基本面分析:Victor 教量化:Python 金融: 区块链基本面浅析zhuanlan.zhihu.com
今天作者想在A股,对其中的区块链板块做一个分析和了解。毕竟在A股里,区块链板块还算是一个概念,并且火起来的时间不久。对于想买A股区块链相关的股票的,那么提前做一个分析,不去冲锋当韭菜,也是很合理的。
好了,废话不多,开搞吧。
在这之前需要完成下列需求:
A股区块链板块
区块链在A股是属于一个概念板块,里面的票子大多都不是纯区块链公司,而是很多科技公司,或者区块链周边的公司。怎么从里面挑选出来比较纯正的,有代表性的区块链公司还是一个谜题。
那这里,作者首先在富途牛牛APP上,选择了沪深股市里的区块链板块:
随后,作者挑选了25支最高流动性的票子,流动性具体筛选条件是:市值 (Market Value):100 亿 到 1000 亿 人民币之间。
成交额 (Transaction Value): 近 10 日 在 1亿 人民币之上。
成交量 (Transaction Volume): 近 10 日 在 3000万股以上。
为什么要选择高流动性的票子?作者认为高流动性代表着市场关注度比较高,并且高流动性下的价格发现也相对比较合理。
相反的,小市值,低流动性的票子容易出现价格大幅度波动,影响板块整体发挥。
股票选择 Stock Selection
在以上的筛选条件下,作者选出了25支票子,手动输入了 Excel 表格中:
作者按照市值大小,对其进行了排名,并且按照市值权重对其进行了配比。作者打算用这25支票子来代表A股区块链板块,做一支市值权重配仓的ETF,来方便之后的分析。
建立一支区块链ETF
有了上述的数据,我们就用 Python 来建立这样一支代表区块链板块的ETF:
In [1]:
import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.optimize as sco
%matplotlib inline
In [2]:
stock_codes = ['002024','600588','002065','000066','000961',
'002405','600208','002797','002152','603000',
'002131','000021','000997','002195','600446',
'600093','002123','300058','600839','300459',
'300085','300352','300339','600797','300079']
num_stocks = len(stock_codes)
stock_daily_quotes = {}
In [3]:
import time
for code in stock_codes:
print(code)
df = ts.get_k_data(code=code, start='2010-01-01', end='2020-01-01')
df['date'] = pd.to_datetime(df['date'])
df = df.set_index(['date'])
df[code] = df['close']
stock_daily_quotes[code] = df[code]
time.sleep(1)
上面的代码依然是通过 TuShare API 来抓取这25支票子的历史价格。抓取了价格之后,我们来做一下25支票子的可视化:
In [4]: daily_df = pd.concat([value for _, value in stock_daily_quotes.items()], axis=1).dropna()
In [5]: daily_df.plot(figsize=(14,7))25支挑选出来的区块链板块股票从2016-2019
我们发现原本从2010年开始抓取的价格,但是真实价格是从2016年开始的,因为前几年有些票子还没有上市,并且我们发现在2018年之前有些票子的价格有些缺失,不过问题不大,我们接着搞:
In [6]:
daily_df['blockchain_etf'] = daily_df['002024'] * 0.141 + \
daily_df['600588'] * 0.125 + \
daily_df['002065'] * 0.067 + \
daily_df['000066'] * 0.065 + \
daily_df['000961'] * 0.054 + \
daily_df['002405'] * 0.048 + \
daily_df['600208'] * 0.047 + \
daily_df['002797'] * 0.041 + \
daily_df['002152'] * 0.038 + \
daily_df['603000'] * 0.036 + \
daily_df['002131'] * 0.032 + \
daily_df['000021'] * 0.032 + \
daily_df['000997'] * 0.030 + \
daily_df['002195'] * 0.028 + \
daily_df['600446'] * 0.027 + \
daily_df['600093'] * 0.025 + \
daily_df['002123'] * 0.024 + \
daily_df['300058'] * 0.024 + \
daily_df['600839'] * 0.019 + \
daily_df['300459'] * 0.018 + \
daily_df['300085'] * 0.018 + \
daily_df['300352'] * 0.018 + \
daily_df['300339'] * 0.016 + \
daily_df['600797'] * 0.015 + \
daily_df['300079'] * 0.015
这里作者非常辛苦的手动输入了每一支票子的权重,如下图,在 DataFrame 里的新的一栏教 blockchain_etf 里面:
区块链基准 Blockchain Benchmark
既然我们已经建立好了一支具有板块代表性的ETF,那我们也需要一个在区块链行业里有代表性的标的来比较。这里作者选择了比特币,因为截止 2020年1月23号,比特币市值占了币币市值的 80% 左右,见下图:coinmarketcap.com Bitcoin 页面
这里的几个关键数字:排名 (Rank): 行业第一。
市值 (Market Value): 159,154,181,199 $, 行业第一。
流动供给 (Circulating Supply): 依旧是行业第一,流动性充足。
作者前往 coinmarketcap.com 查看了当前区块链行业表现最好的票子,然后把其历史数据下载了下来,存在一个叫 cmc_btc.csv 的文件中。历史数据就在上图红色标出的 Historical Data页面,手动拷贝到 Excel 里就行:
In [7]:
crypto_df = df = pd.read_csv('./Finance/cmc_btc.csv')
crypto_df['date'] = pd.to_datetime(crypto_df['Date'])
crypto_df.set_index(['date'], inplace=True, drop=True)
这里就是一些常规的 Pandas 操作,因为下载下来的日期是从新到旧,所以把索引反过来一下就可以了。
量化分析 Quantitative Analytics
现在我们手上有两个 DataFrame,一个是保存有我们创造的区块链ETF,另外一个是保存有区块链标的物的历史价格,我们先分别试图一下:
In [8]: daily_df['blockchain_etf'].plot(figsize=(12,6))区块链ETF 2016-2019 价格图
In [9]: crypto_df['Close'].plot(figsize=(12,6))区块链标的物 2016-2019 价格图
如果两张图这么分开来看的话,看不出来什么。而且一个是在9到16的范围,另外一个是在几千到几万的范围,不太好做对比,我们来对数据做一些金融处理:
In [10]:
daily_df['etf_cum_return'] = daily_df['blockchain_etf'].pct_change(1).fillna(0).add(1).cumprod().sub(1)
daily_df['etf_norm_cum_return'] = (daily_df['etf_cum_return'] - np.min(daily_df['etf_cum_return']))/(np.max(daily_df['etf_cum_return'])- np.min(daily_df['etf_cum_return']))累积盈利 % (Cumulative Return %): 这里作者计算了这支ETF 的历史累积盈利百分比,利用了一连串的方法: pct_change(1).fillna(0).add(1).cumprod().sub(1), 这里可以慢慢理解,不碍事,作者也是网上撸下来的方法。
最大-最小 标准化 (Min-Max Normalization): 这个是把数据减去最小值,然后再除以最大值减去最小值,为了把所有数据放在0-1的范围之内。做这个处理是为了之后在图表上能更加清晰的看见区块链ETF 和标的物之间的关系。
In [11]:
crypto_df['cum_return'] = crypto_df['Close'].pct_change(1).fillna(0).add(1).cumprod().sub(1)
crypto_df['norm_cum_return'] = (crypto_df['cum_return'] - np.min(crypto_df['cum_return']))/(np.max(crypto_df['cum_return'])- np.min(crypto_df['cum_return']))
现在对区块链标的物做同样的处理,做完之后,我们先看看,区块链ETF 和 区块链标的物之间两者的相关性:
In [12]: etf_df = pd.concat([daily_df['etf_cum_return'], daily_df['etf_norm_cum_return'], crypto_df['cum_return'], crypto_df['norm_cum_return']], axis=1).fillna(method='backfill')
In [13]: etf_df.iloc[-1]:
Out [13]:
etf_cum_return -0.022548 # 区块链ETF 累积回报 -2.25%
etf_norm_cum_return 0.651209
cum_return 9.522189 # 区块链标的物累积回报 950%
norm_cum_return 0.350721
Name: 2019-12-31 00:00:00, dtype: float64
In [14]: etf_df.corr().style.background_gradient()区块链 ETF 和 区块链标的物 之间的累积盈利相关性
区块链ETF 2016-2019 的累积回报是 -2.25%,而标的物回报是 950%
然后两者相关性竟然是,-0.0768 ??!
作者这时候的感受是。。
一顿操作猛如虎,一看战绩 0:5的感觉。
这个结果难道是,我们大A股的区块链板块,和区块链最大的标的物 回报率相关性是0.07 ?
最后,带着纠结的心情,再画了一张标准化之后的图:标准化之后的 区块链ETF和标的物 历史盈利 走势比较
小结:
上图因为是标准化之后的,只能看一下两者之间的累积盈利关系,不是绝对值比较。虽然在绝对值和量化的相关性上,都无法模拟区块链标的物的表现,但是在这张图上,作者还是想说一点东西的,有兴趣了解的小伙伴可以去雪球上看作者对于这张图的具体分析。Victor大雪球 - 雪球xueqiu.com
python受益股_Python 金融: 看看 A股区块链板块相关推荐
- 【行情丨A股收盘:区块链板块高开低走收跌0.80% 3股跌停】
gbcax链交所 [行情丨A股收盘:区块链板块高开低走收跌0.80% 3股跌停] 今日A股区块链板块高开后震荡,午后直线下挫,后一直在水下震荡,最终收跌0.80%.82只概念股中,29只上涨,45只下 ...
- 工信部区块链论坛 | 乐视金融CEO王永利:区块链技术研发和应用的实践经验
中国区块链技术和产业发展论坛成立大会暨首届开发者大会于今日在北京举行,会上乐视金融CEO.前中国银行副行长王永利先生发表了主题为"区块链技术研发和应用实践的经验"的报告演讲. 王永 ...
- 【网易金融总裁王磊:区块链的出现,有可能产生新的生态关系】
gbcax链交所 [网易金融总裁王磊:区块链的出现,有可能产生新的生态关系] 6月6日,"2018金融科技峰会"在浙江宁波举行.网易金融总裁王磊表示,无论是传统产业还是金融产业,都 ...
- 平安金融壹账通区块链团队产品负责人王梦寒:区块链应用落地有三大瓶颈
"目前区块链应用落地遇到三大瓶颈:数据隐私问题,系统主导权争议,及性能抉择两难." 本文旨在传递更多市场信息,不构成任何投资建议. 8月20日,由火星财经主办的"POW' ...
- 【京东金融王越国:区块链能够解决欺诈问题】GBCAX
gbcax链交所 [京东金融王越国:区块链能够解决欺诈问题] 据澎湃新闻消息,京东金融研究院.中国人民大学金融科技与互联网安全研究中心.中国刑事警察学院联合发布<数字金融反欺诈白皮书>,京 ...
- 用python完成选股策略a股_Python 金融: 0亏损选股策略
在上一篇文章中,作者介绍了一个优化投资组合结构的方案:多多教Python:Python 金融: 建立A股最优投资组合zhuanlan.zhihu.com 最近A股又启动了,从2020年第一个交易日以 ...
- python 金融分析投资_Python金融数据分析全景图
金融市场智能化,就业必然就越来越精英化. 当操控着量化投资策略的人出现了,99个传统岗位都会被取代. 如今,金融业的"码农化"已是大势所趋,Python更是已然成为投行.基金.咨询 ...
- python爬取岗位数据并分析_区块链岗位薪资高,Python爬取300个区块链岗位分析,龙虎榜出炉...
原创: 菜鸟哥 菜鸟学Python 最近区块链技术再次被大家热议,既然区块链受到如此高的关注,我们就不妨去采集数据分析看看,目前所有与区块链相关的招聘信息吧. 1数据的爬取 首先是对于数据的爬取,由于 ...
- Python实现一条基于POS算法的区块链
最新内容会更新在主站深入浅出区块链社区 原文链接:用Python从零开始创建区块链 区块链中的共识算法 在比特币公链架构解析中,就曾提到过为了实现去中介化的设计,比特币设计了一套共识协议,并通过此协议 ...
最新文章
- Failed to resolve:com.android.support:appcompat-v7:报错处理
- 循序渐进Python3(二) -- 数据类型
- unity3d优化IOS
- vc6 前进后退 番茄_openMP 使用 VC6+Intel Compiler 9.1 (来自网络)
- 因子分析——因子旋转
- 【双100%解法】LeetCode 141 【剑指Offer 23】链表中环的入口节点
- QT+VS中使用qDebbug()打印调试信息无法显示
- Indent Guides for Visual Studio 代码格式化收缩插件
- CAD(计算机辅助设计)
- Linux设备驱动中的异步通知
- nyoj-488-素数环
- Java网络爬虫实操(6)
- 【python利用url下载文件】
- 非负矩阵分解 java_matlab练习程序(非负矩阵分解)
- 基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计
- 华为服务器上传文件后怎么通过链接查看,怎么上传图片到服务器查看链接
- L4RE学习笔记——服务介绍
- 新手程序员之初生牛犊不怕虎
- Android 自动化测试 Espresso篇:简介基础使用
- NVIDIA Jetson TX2 安装 Astra相机的ros驱动源码 错误总结
热门文章
- 海康、大华网络摄像机RTSP流接入流媒体实现WEB无插件直播通过视频广场观看实时直播
- 骑士cms文件包含getshell复现
- 英语测试题库软件,英语考试app哪个好 英语考试题库app推荐_96u手游网
- 解决Android 8.1 获取不到wifi名称
- 【Nginx 源码学习】Nginx 的缓冲区
- 搭建DEM企业管理器
- ClickHouse-尚硅谷(1. 入门-概述)学习笔记
- Linux完全清除防火墙策略,linux下的软件防火墙iptables——规则的查看与清除、定义默认策略,...
- 测试管理办公室TMO职责
- 红帽 Linux 考试 要求