02
量化数据获取
在编写代码前我们首先要知道如何获取北向资金数据。
1、财经网站
最基本的可以去港交所官网下载北向资金交易明细数据。
港交所网址:www.hkex.com.hk
但上面的数据并未整理且无法直接下载,你需要用Python写爬虫代码去抓取相关数据。
所以我更建议你从主流财经网站上爬取数据,如东方财富网、新浪财经等。
上面有每日更新整理好的数据,爬取内容比港交所更优质。
东财数据网址:data.eastmoney.com/hsgt
2、量化小课堂
也可以到我们量化小讲堂网站进行下载,上面有各类A股和数字货币相关数据,其中就包含北向资金数据。
量化小讲堂:quantclass.cn/data/stock
3、数据展示
下载数据后得到可以直接使用的沪股通和深股通的Excel文件。
沪股通Excel
运用文件中包含的当日成交净买额(净流入)字段,可以统计不同情况下北向资金单日净流入的出现次数。
此外还需沪深300指数每日收盘价数据来计算涨跌幅,以统计大盘未来几日表现。
量化小讲堂同样提供指数的历史日线数据,且能永久免费获取
量化小讲堂:quantclass.cn/data/stock
加我获取网址后,下载的数据如图所示,包含了2005年至今沪深300指数每日开高收低的价格数据。
沪深300指数历史日线数据
这样我们就整理好了所需数据:北向净流入和指数收盘价。
接下来就是我们真正硬核的内容:如何通过Python编程得到下方统计图。
真正的勇士可以继续看完逐行的代码讲解
03
编程思路
下面就是完整的编程思路文字版,需要的话也可以看视频版本:
编程部分从7:52起
1、数据初步处理
我们下载的数据(沪股通/深股通/沪深300)都以CSV格式存储,可用Excel打开。
正式讲解编程前,我先用Excel来演示数据处理的思路,看完就会发现编程操作大抵如此。
首先新建一个Excel,将沪深300表格中2014年11月17日之后的日期与close列(收盘价)数据复制过去。
沪深300指数数据
沪深300指数数据同样将沪股通和深股通的当日成交净买额列对照日期复制过去。
沪股通
深股通
沪、深当日成交净买额列相加形成北向资金当日净流入列,如下表:
初步处理后数据表格
2、数据统计
根据以上数据计算大盘在北向资金单日净流入事件触发后未来几日的表现。
要求次日表现,就用(次日收盘价-当日收盘价)/当日收盘价得到。如11月17日则为(2541.42-2567.1)/2567.1 = -1%,即跌幅1%。
同理可计算大盘未来3日和5日表现。
11月17日未来5日表现计算方式
选中北向资金当日净流入列,使用筛选功能,如要求大于10亿的事件出现次数(表中单位为百万),则输入1000。
筛选条件
筛选后如下图计数所示该事件出现655次,扣除表头后则为654次。
同理可得北向资金单日净流入各事件出现次数。
再次筛选各事件对应的次日/未来3日/未来5日的上涨次数,即涨跌幅大于0的次数。
继而用上涨次数/出现次数得到上涨概率。
最后针对未来N日表现列求平均值即可计算出对应的平均涨跌幅。
完成上述所有步骤后即可求出前文的统计图。
通过Excel处理数据其实并不麻烦,但思路却至关重要。写代码时你就会发现编程思路和手工操作Excel的思路完全一致。
04
代码详解
到此我们正式进入代码逐行讲解环节,有了上面的铺垫,零基础也可以轻松听懂。
如果有朋友连Python都不会安装,可以看我这期文章。
收藏|最最最最简单、最最最最详细的Python和Pandas安装教程
这个教程经过千锤百炼,可以帮你避免很多不必要的坑。可以加我微信xbx719,我将这篇文章及相应的安装包发给你。
按照文章流程安装好Python后,打开Anaconda程序中的Spyder。
Spyder界面
接下来就是真枪实弹的操作部分了。
先用read_csv函数读取原始数据,并将数据时间段定在2014年11月17日以后,代码如下:
读取数据代码
接着用sum函数将代表沪/深股通数据的当日成交净买额h和当日成交净买额s相加得到北向资金净流入。
计算净流入
之后用Excel讲解中提到的公式计算出N日涨跌幅数据,只要会简单的数学运算即可。
N日涨跌幅
最后写出筛选数据的代码,计算北向资金单日净流入各事件出现次数以及未来几日上涨次数、上涨概率、平均涨跌幅等信息。
完整代码运行结果如下:
05
后记
我强烈建议你看完文章、视频后亲自写一下代码加深感受。这样才能对整个流程有更直观的认识。
本文相关代码和数据都可以加我微信xbx719获取。
以上就是本次代码讲解的大致内容。碍于篇幅还有许多细节无法一一展开。更详细的内容推荐你去看本文的相关视频: