向量化回测系列1——单只股票的回测
在我探索量化的进程中,回测一直是十分重要的一个环节,而其中又分为事件驱动型回测和向量化回测。大家市面上见到的绝大多数在线回测平台,或者是backtrader和vnpy,都是事件驱动型回测,但是究其代码层面,使用的普遍是for循环的需要占用大量内存和运行时间的原理。
相较于前者,向量化回测则快速的多的多的多,出结果只要一秒钟都不到的计算,但是这玩意儿我一直在很长时间里都不知道是什么,其实是一个特别简单的事情,因此我在这里分享给所有人。
我们常见的数据格式如下:
(数据读取采用Arctic高性能数据库我先前有介绍请参考我的帖子https://blog.csdn.net/weixin_44566452/article/details/120832712)
这个数据格式包含OHLCV等常见数据,LIMIT是涨停价格,ADJFACTOR是复权因子。
所谓的向量化回测,非常简单!!就是dataframe相乘,说高级点叫矩阵相乘。
原理是通过计算收益率矩阵和01矩阵相乘来计算得出结果(0不开仓,1开仓获取收益率)
例如:
然后创建条件01矩阵,原理也很简单,请仔细看代码:
得到了一个全1矩阵,然后再设计条件01矩阵:
see? 就是这么简单,在构建条件矩阵和收益率矩阵之后,我们可以通过两个矩阵相乘得出策略收益率。
总结一下,这篇文章里面我们发现向量化回测的几个要素:
1. 收益率矩阵
2. 策略条件矩阵
3. 策略收益率矩阵 = 收益率矩阵 * 策略条件矩阵
下一篇文章中,我将把这种方法推广到一次性度量所有股票(即把策略“因子化”)
向量化回测系列1——单只股票的回测相关推荐
- 01【股票初级】-【找准入场时机】投资五大流派,好公司投资法,判断单只股票是否便宜?如何找准时机入场?
第一天 找准入市时机 第一节:介绍 第二节,价值投资主要有那些投资方法呢? 投资五大流派 1,技术投资派(技术分析,图线分析,趋势分析等预测股市涨跌) 2,宏观投资派(整个市场经济向好,股市就向好:宏 ...
- 风火编程--python获取单只股票实时数据和历史数据
获取股票数据 这本来是专门为我的一个单一选股模型提供数据的类, 因此封装的只是模型中需要的数据. 如有其它需求可以自己扩展. 积分多的可以下载文件, 没积分的直接复制下面的代码是一样的. 代码不复杂, ...
- python回测代码_python实现马丁策略回测3000只股票的实例代码
免费资源网 - https://freexyz.cn/ 上一篇文章讲解了如何实现马丁策略,但没有探索其泛化能力,所以这次来尝试回测3000只股票来查看盈利比例. 批量爬取股票数据 这里爬取数据继续使用 ...
- python 股票回测书籍推荐_python实现马丁策略回测3000只股票
python实现马丁策略回测3000只股票 批量爬取股票数据 这里爬取数据继续使用tushare,根据股票代码来遍历,因为爬取数据需要一定时间,不妨使用多线程来爬取,这里要注意tushare规定每分钟 ...
- 计算风险指标:最大回撤、计算风险收益指标:夏普比率、利用最大回撤和夏普比筛选基金、比较3只股票的夏普指数
接着上一次获取股票数据[实时更新股票数据.创建你的股票数据].计算交易指标[买入.卖出信号.计算持仓收益.计算累计收益率] - cexo - 博客园的量化交易往下学习. 计算风险指标:最大回撤 什么是 ...
- python 量化策略回测_在python中创建和回测对交易策略
python 量化策略回测 Pairs trading is one of the many mean-reversion strategies. It is considered non-direc ...
- 用python构建多只股票日收益率直方图_Barra纯因子收益率的Python实现
人生若只如初见,何事秋风悲画扇.等闲变却故人心,却道故人心易变. --<木兰花> 纳兰容若 多因子模型的介绍文章汗牛充栋,但系统性的归纳整理首推石川博士的多因子系列文章,看完绝对让人有醍醐 ...
- 股票日回易略(附源码
原 股票日内回转交易策略(附源码) 什么是日内交易? 日内交易(Day Trade)是一种交易模式.主要是指持仓时间短,不留过夜持仓的交易方式.日内交易捕捉入市后能够马上脱离入市成本的交易机会,入 ...
- 5000个基金经理能跑赢4000只股票吗?15年数据告诉你该炒股还是买基金【邢不行】
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投Z,了解行业研究方向 这是邢不行第87期量化小课堂分享 作者 l 邢不行 这两年比较流行一句话 ...
最新文章
- 编程题:顺时针打印矩阵(不一定是方阵)
- React Native 环境配置
- web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?
- 微型计算机指令系统例题,微机原理复习题(指令系统)
- 测试私有方法 重构_一个全栈工程师重构之路:中小公司 DevOps 落地实践
- 坎宁安法则又称“卑鄙的人”
- 2017年闰秒linux_2017年Linux专业人员的4个热门技能
- Asp.Net MVC 身份验证-Forms
- asp版的简单留言板
- 数字化会议管理系统,实现会议全流程管理
- ios ping服务器
- blender动作_Blender实现小人行走
- Android手机怎么找回微信好友,安卓手机微信好友删除怎么找回?这三种方法真香...
- 算法导论——钢条切割问题(C语言)
- 联盟链系统开发 联盟链开发多钱
- 机器学习和深度学习有什么区别?
- pytorch 入门:GPU加速,卷积层,池化层
- 计算机程序中的堆和栈的区别,内存中的堆与栈(stack)和栈的区别
- MySQL登录、访问、退出操作
- 创新是企业发展的动力源