在我探索量化的进程中,回测一直是十分重要的一个环节,而其中又分为事件驱动型回测和向量化回测。大家市面上见到的绝大多数在线回测平台,或者是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——单只股票的回测相关推荐

  1. 01【股票初级】-【找准入场时机】投资五大流派,好公司投资法,判断单只股票是否便宜?如何找准时机入场?

    第一天 找准入市时机 第一节:介绍 第二节,价值投资主要有那些投资方法呢? 投资五大流派 1,技术投资派(技术分析,图线分析,趋势分析等预测股市涨跌) 2,宏观投资派(整个市场经济向好,股市就向好:宏 ...

  2. 风火编程--python获取单只股票实时数据和历史数据

    获取股票数据 这本来是专门为我的一个单一选股模型提供数据的类, 因此封装的只是模型中需要的数据. 如有其它需求可以自己扩展. 积分多的可以下载文件, 没积分的直接复制下面的代码是一样的. 代码不复杂, ...

  3. python回测代码_python实现马丁策略回测3000只股票的实例代码

    免费资源网 - https://freexyz.cn/ 上一篇文章讲解了如何实现马丁策略,但没有探索其泛化能力,所以这次来尝试回测3000只股票来查看盈利比例. 批量爬取股票数据 这里爬取数据继续使用 ...

  4. python 股票回测书籍推荐_python实现马丁策略回测3000只股票

    python实现马丁策略回测3000只股票 批量爬取股票数据 这里爬取数据继续使用tushare,根据股票代码来遍历,因为爬取数据需要一定时间,不妨使用多线程来爬取,这里要注意tushare规定每分钟 ...

  5. 计算风险指标:最大回撤、计算风险收益指标:夏普比率、利用最大回撤和夏普比筛选基金、比较3只股票的夏普指数

    接着上一次获取股票数据[实时更新股票数据.创建你的股票数据].计算交易指标[买入.卖出信号.计算持仓收益.计算累计收益率] - cexo - 博客园的量化交易往下学习. 计算风险指标:最大回撤 什么是 ...

  6. python 量化策略回测_在python中创建和回测对交易策略

    python 量化策略回测 Pairs trading is one of the many mean-reversion strategies. It is considered non-direc ...

  7. 用python构建多只股票日收益率直方图_Barra纯因子收益率的Python实现

    人生若只如初见,何事秋风悲画扇.等闲变却故人心,却道故人心易变. --<木兰花> 纳兰容若 多因子模型的介绍文章汗牛充栋,但系统性的归纳整理首推石川博士的多因子系列文章,看完绝对让人有醍醐 ...

  8. 股票日回易略(附源码

    原 股票日内回转交易策略(附源码) 什么是日内交易? ​ 日内交易(Day Trade)是一种交易模式.主要是指持仓时间短,不留过夜持仓的交易方式.日内交易捕捉入市后能够马上脱离入市成本的交易机会,入 ...

  9. 5000个基金经理能跑赢4000只股票吗?15年数据告诉你该炒股还是买基金【邢不行】

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投Z,了解行业研究方向 这是邢不行第87期量化小课堂分享 作者 l 邢不行 这两年比较流行一句话 ...

最新文章

  1. 编程题:顺时针打印矩阵(不一定是方阵)
  2. React Native 环境配置
  3. web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?
  4. 微型计算机指令系统例题,微机原理复习题(指令系统)
  5. 测试私有方法 重构_一个全栈工程师重构之路:中小公司 DevOps 落地实践
  6. 坎宁安法则又称“卑鄙的人”
  7. 2017年闰秒linux_2017年Linux专业人员的4个热门技能
  8. Asp.Net MVC 身份验证-Forms
  9. asp版的简单留言板
  10. 数字化会议管理系统,实现会议全流程管理
  11. ios ping服务器
  12. blender动作_Blender实现小人行走
  13. Android手机怎么找回微信好友,安卓手机微信好友删除怎么找回?这三种方法真香...
  14. 算法导论——钢条切割问题(C语言)
  15. 联盟链系统开发 联盟链开发多钱
  16. 机器学习和深度学习有什么区别?
  17. pytorch 入门:GPU加速,卷积层,池化层
  18. 计算机程序中的堆和栈的区别,内存中的堆与栈(stack)和栈的区别
  19. MySQL登录、访问、退出操作
  20. 创新是企业发展的动力源

热门文章

  1. 力扣LeetCode-哈希表
  2. 武汉理工大学2019计算机考研专业课题目(回忆版)
  3. 对称数c语言,中心对称数 - Developmer的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. Word中插入多张图片/论文图片排版的方法
  5. 【Linux】ab命令实现网站性能压力测试
  6. 使用git提交代码到仓库报错总结
  7. HFDS 内部工作机制
  8. progress的高级过程调用以及全局变量
  9. win10双 cd linux,win10系统将CdLinux装入硬盘的还原方案
  10. Blink SQL内置函数大全