上周在云栈社区看到有人抱怨:用Python跑个全市场回测,喝完咖啡代码还在跑。评论区炸了,有人说"这就是量化的日常",也有人甩出一个GitHub链接——Hikyuu。
我花了两天时间把这个框架从头到尾啃了一遍,说实话,有点意外。
源码下载:
hikyuu-master.zip
(56.48 MB, 下载次数: 5)
先说数据
AMD 7950x处理器,A股全市场1913万根日K线,计算20日均线:
- 首次加载含数据读取:6秒
- 数据加载完毕后再算:166毫秒
这什么概念?我之前用纯Python写的回测框架,同样的任务至少要跑20秒以上。
数据存储也很克制。沪市全部日线数据压缩后149M,深市184M。5分钟线数据各不到2G。笔记本硬盘随便放。
核心设计很聪明
Hikyuu把交易系统拆成了9个独立组件:
市场环境判断 - 现在是牛市还是熊市
信号指示器 - 什么时候买什么时候卖
资金管理 - 每次买多少
止损止盈 - 什么时候认输什么时候落袋
对象选择 - 全市场选哪些票
资金分配 - 多个策略怎么分钱
...还有3个
每个组件都能单独替换。比如你觉得双均线信号不错,但想换个止损方式,直接换掉止损组件就行,其他代码一行不用改。
这种设计最大的好处是策略能复用。你写过的每个组件都是资产,可以像搭积木一样组合出新策略。
为什么这么快
秘密在架构上。
底层用C++写核心计算引擎,多线程并行,内存对齐优化,该用的手段都用了。上层用Python封装接口,写策略的时候还是熟悉的Pandas和Numpy。
数据存储默认用HDF5格式,压缩比高,随机访问快。需要哪段数据就加载哪段,不会把整个市场数据全塞进内存。
指标计算做了缓存。算过一次的结果会存起来,下次直接用,不会傻乎乎地重复计算。
适合什么人用
个人研究者 - 成本低,数据存本地,隐私有保障。想验证个策略想法,写几行代码跑一下,几秒钟就有结果。
小型私募团队 - 如果你们做的是日线或周线级别的策略,Hikyuu够用了。策略组件库可以慢慢积累,新人来了直接用现成的模块。
量化教学 - 开源代码可以随便看,架构设计也很清晰,适合学习。
不适合什么场景
说实话,高频交易别想了。这个框架主要面向回测研究,不是为实盘高频设计的。毫秒级延迟要求它满足不了。
实盘交易功能也比较基础,需要自己对接券商接口,风控系统得额外开发。
市场覆盖主要是A股,期货期权要扩展,海外市场得自己定制。
我的实际体验
装起来不复杂,文档写得还算清楚。有个知识星球可以付费提问,社区也比较活跃。
写了个简单的双均线策略测试,代码量比我预想的少。最爽的是回测速度,基本上是秒出结果,可以快速试错。
唯一不太习惯的是策略组件的概念,刚开始需要转换思维。但理解之后会发现这种方式确实更灵活。
一点思考
量化交易的门槛其实挺高的。数据、回测、实盘,每个环节都要花钱花时间。Hikyuu这种开源框架的价值在于,它把回测这个环节的成本降到了很低。
当然,工具再好也只是工具。策略逻辑、风控意识、市场理解,这些才是核心竞争力。但至少有了趁手的工具,可以把更多精力放在策略本身上。
如果你正在找一个轻量级的A股回测框架,或者想学习量化系统的架构设计,Hikyuu值得一试。
想了解更多量化工具和实战经验?关注《alphaFind》,从因子到实盘,陪你走完最后一毫秒。
项目地址:
https://github.com/fasiondog/hikyuu
官方文档:
http://hikyuu.org/
标签:#Hikyuu #Github #量化交易 #开源项目 #A股回测 #Python量化