从零编写60%+胜率的短线择时信号!零基础python量化投资代码详解【邢不行】
引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
如果有人说你是百年难得一见的量化投资天才,要送你一本秘籍,你信还是不信?
你是否有量化投资天赋我不知道,也没有秘籍。但本文可以测试你是否有量化编程的天赋。
我会用一个实际案例逐行讲解量化代码,编程零基础也能完全理解。
如果你看完后觉得很容易,甚至有一点热血沸腾想学编程,至少说明你对这方面是感兴趣的,并且可能还有一些天赋。
01
编程问题描述
1、某神秘事件
很多人会费心寻找股市上涨的征兆,并以此作为自己的买入依据。
这里就有一个神秘征兆,只要这些征兆发生,大盘未来5日会有较大的概率上涨。具体统计如下表:
事件发生后未来5日沪深300指数(代指大盘)平均涨幅0.7%左右,上涨概率也都大于55%,最多能到60%+
要知道在X场庄家靠51%+的胜率都能赚得盆满钵满,55%胜率的事件代表什么也就不言而喻了。
那这类神秘事件究竟是什么呢?
它就是「北向资金」单日净流入事件。图中事件1-4分别代表了北向资金单日净流入大于40亿、50亿、60亿和70亿。
北向资金大幅度净流入事件
北向资金大幅度净流入事件一旦北向资金单日净流入达到一定标准,我们就认为是一个不错的上涨征兆。
2、北向资金说明
可能还有朋友不了解北向资金是什么,这里做简单的说明
如上图所示,在香港的港交所,投资者可以使用港币交易其上市股票;在大陆的深交所和上交所,可以使用人民币交易在A股上市的股票。
从2014年起,A股和港交所开始尝试部分互通。全世界投资者可以用港币在港交所通过沪股通及深股通直接购买A股。
而因为上交所和深交所都在香港的北边,所以这些来自香港的投资被形象的称为北向资金。
3、北向资金数据统计
并且对于我们量化投资者非常友好的是,在香港交易所官网上会每日披露北向资金的交易明细数据。
例如上图中,2021年6月18日当天北向资金总共买入291亿、卖出309亿,总成交额为600亿,净流入负18亿(291-309)。
通过数据就能统计出北向资金单日净流入大于0的天数,观察大盘次日表现:上涨概率55%,平均涨幅0.15%。
统计时间:2014.11.17-2021.05.31
为了全面了解北向资金净流入,我继续统计了事件发生后大盘未来3日和5日的表现,同时将净流入标准从0依次扩大至100亿。
北向资金统计
观察上图发现,北向资金一旦发生净流入,未来几日大盘确实表现较好。这是一个很不错的股市征兆。
接下来,本文就会从数据收集开始,详细讲解如何运用Python写代码逐步得到上文统计图。
当然单凭统计结果是无法形成明确的买点、卖点的。关于用北向资金数据构建交易策略,可以看我这期视频。
点击文字观看视频
02
量化数据获取
在编写代码前我们首先要知道如何获取北向资金数据。
1、财经网站
最基本的可以去港交所官网下载北向资金交易明细数据。
但上面的数据并未整理且无法直接下载,你需要用Python写爬虫代码去抓取相关数据。
所以我更建议你从主流财经网站上爬取数据。
上面有每日更新整理好的数据,爬取内容比港交所更优质。
2、量化小课堂
也可以到我们量化小讲堂网站进行下载,上面有各类A股和数字货币相关数据,其中就包含北向资金数据。
需要的话可以点我头像交流,我会无偿送你一份最新数据。
3、数据展示
下载数据后得到可以直接使用的沪股通和深股通的Excel文件。
沪股通Excel
运用文件中包含的当日成交净买额(净流入)字段,可以统计不同情况下北向资金单日净流入的出现次数。
此外还需沪深300指数每日收盘价数据来计算涨跌幅,以统计大盘未来几日表现。
量化小讲堂同样提供指数的历史日线数据,且能永久免费获取。
加我获取网址后,下载的数据如图所示,包含了2005年至今沪深300指数每日开高收低的价格数据。
沪深300指数历史日线数据
这样我们就整理好了所需数据:北向净流入和指数收盘价。
接下来就是我们真正硬核的内容:如何通过Python编程得到下方统计图。
真正的勇士可以继续看完逐行的代码讲解
03
编程思路
下面就是完整的编程思路文字版,需要的话也可以看视频版本:
60%胜率的短线信号!零基础python量化代码详解【量化投资邢不行啊】
编程部分从7:52起
1、数据初步处理
我们下载的数据(沪股通/深股通/沪深300)都以CSV格式存储,可用Excel打开。
正式讲解编程前,我先用Excel来演示数据处理的思路,看完就会发现编程操作大抵如此。
首先新建一个Excel,将沪深300表格中2014年11月17日之后的日期与close列(收盘价)数据复制过去。
沪深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安装教程
这个教程经过千锤百炼,可以帮你避免很多不必要的坑。你可以点我头像交流,我把这篇文章及相应的安装包发给你。
按照文章流程安装好Python后,打开Anaconda程序中的Spyder。
Spyder界面
接下来就是真枪实弹的操作部分了。
先用read_csv函数读取原始数据,并将数据时间段定在2014年11月17日以后,代码如下:
读取数据代码
接着用sum函数将代表沪/深股通数据的当日成交净买额h和当日成交净买额s相加得到北向资金净流入。
计算净流入
之后用Excel讲解中提到的公式计算出N日涨跌幅数据,只要会简单的数学运算即可。
N日涨跌幅
最后写出筛选数据的代码,计算北向资金单日净流入各事件出现次数以及未来几日上涨次数、上涨概率、平均涨跌幅等信息。
完整代码运行结果如下:
05
后记
我强烈建议你看完文章、视频后亲自写一下代码加深感受。这样才能对整个流程有更直观的认识。
本文相关代码和数据都可以点我头像获取。
以上就是本次代码讲解的大致内容。碍于篇幅还有许多细节无法一一展开。更详细的内容推荐你去看本文的相关视频:
60%胜率的短线信号!零基础python量化代码详解【量化投资邢不行啊】
从零编写60%+胜率的短线择时信号!零基础python量化投资代码详解【邢不行】相关推荐
- 根据《LLT低延迟趋势线与交易性择时 短线择时策略研究》的python模型 策略开发
<低延迟趋势线与交易性择时短线择时策略研究> 传统移动平均线(MA)的缺点 移动平均线(MA)是技术分析中常用的一类趋势跟踪指标,其可以在一定程度上刻画股票价格或指数的变动方向.MA ...
- 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
- [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- python线上课程-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
- 量化投资python教程_零基础入门Python量化投资全套教程,30+经典教材打包送!暑期get新技能就靠它了!...
量化投资是指使用数理分析.编程.建模等方式,通过对样本数据进行集中比对处理,找到数据之间的关系,制定量化策略,并使用编写的软件程序来执行交易,从而获得投资回报的方式. 在如今的量化投资领域,已经有了无 ...
- [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- Python量化投资——股票择时到底能否赚钱?ADX指标的有效性回测
ADX指标的有效性回测 Python量化投资--`ADX`技术指标的有效性研究 背景介绍 技术指标介绍 指标用法建议 `qteasy`中的ADX内置策略 433支股票五年回测结果 12.45% --该 ...
- Python量化投资——股票择时到底能否赚钱?TA-Lib 33种技术指标有效性横向大评比
TA-Lib中33种技术指标回测研究 `Python`量化投资--`TA-Lib`中33种股票择时技术指标的有效性研究 为什么要做这个评测 技术指标清单 评测方法 评测工具 测试方法及评价指标 期待你 ...
- 零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏
零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏 六大推荐理由 理由一:系统 理由二:详细 理由三:专业 理由四:图解 理由五:深度 理由六:实例 一键直达:<UGUI 控件详解 ...
最新文章
- 10个角度分析软件工程师应该知道的100件事
- MCtalk教育创业者说:学吧课堂K12领域转型突围之路
- java 创建线程_【80期】说出Java创建线程的三种方式及对比
- 提取一个二进制位最右侧的1
- cuda版本查看_ubuntu安装CUDA
- 谷歌将停止对32位Linux系统Chrome浏览器支持
- jquery 选择器之children与find
- oracle餐饮权,初秋来临,献上餐饮数字化经营的“暖心大餐”
- 16. CSS 轮廓
- python操作sql_Python操作MSSQL
- 流文件 服务器无响应,文件服务器配置程序未响应
- 239.滑动窗口的最大值
- c语言实验报告字符数组,C语言实验报告数组
- java计算机毕业设计校园点餐系统源程序+mysql+系统+lw文档+远程调试
- 扫描仪支持linux驱动,开源扫描仪驱动sane支持的扫描仪列表
- 弹性计算的内部概念:弹性扩张、弹性收缩、弹性自愈
- NOD32 ID及升级服务器
- 链接和二维码被微信拦截(被封锁、被屏蔽、被和谐)的最新解决方法——MaxJump
- javascript练习:输入一个值,判断是不是质子数
- AI时代-人工智能入学指南 - 迪哥有点愁
热门文章
- Could not load file or assembly ‘office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce11
- 《南朝凶猛》 轩辕鸿鸣
- 钉钉、微信抢占移动OA入口,其他OA厂商何去何从?
- google外链重要性高吗?谷歌外链作用大不大
- dedecms友情链接plus/flink.php页面出错,DedeCMS友情链接flink_add Getshell漏洞管理员CSRF漏洞...
- 【VirtualBox报错】不能为虚拟电脑打开一个新任务. Not in a hypervisor partition (HVP=0) (VERR_NEM_NOT_AVAILABLE).
- vue开发项目必备知识
- 远程视频监控智能工业网关
- 长虹官方刷机包和刷机教程
- 论文精度 —— 2017 ACM《Globally and Locally Consistent Image Completion》