基于 C++/Python 的开源量化交易研究框架 Hikyuu

基于 C++/Python 的开源量化交易研究框架 Hikyuu

MIT
C/C++ Python
跨平台
2017-04-28
fasiondog

Hikyuu Quant Framework是一款基于C++/Python的开源量化交易研究框架,用于策略分析及回测。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境判断策略、系统有效条件、信号指示器、止损/止盈策略、资金管理策略、盈利目标策略、移滑价差算法七大组件,你可以分别构建这些组件的策略资产库,在实际研究中对它们自由组合来观察系统的有效性、稳定性以及单一种类策略的效果。例如::

#创建模拟交易账户进行回测,初始资金30万
my_tm = crtTM(initCash = 300000)

#创建信号指示器(以5日EMA为快线,5日EMA自身的10日EMA最为慢线,快线向上穿越慢线时买入,反之卖出)
my_sg = SG_Flex(OP(EMA(n=5)), slow_n=10)

#固定每次买入1000股
my_mm = MM_FixedCount(1000)

#创建交易系统并运行
sys = SYS_Simple(tm = my_tm, sg = my_sg, mm = my_mm)
sys.run(sm['sz000001'], Query(-150))

完整示例参见:https://nbviewer.jupyter.org/github/fasiondog/hikyuu_examples/blob/master/001-overview.ipynb?flush_cache=True

Maybe,你已经注意到了,上面没有“选股策略”?!是的,选股策略是股票交易的重要方面,肯定不会少。事实上,之前所述的交易系统都是针对一个交易对象的,也就是经常听到的策略,但很多所谓的“策略”其实仅仅只是买入、卖出的指示信号而已,并非完整的交易策略。为了区别,在这里直接以系统指称,表示一个完整的系统化交易方法或策略。而在系统之上,称为Portfolio资产组合,选股策略则是Portfolio的组件,Portfolio的另一重要组成则是资金分配策略,比如选股策略选定了4个交易对象(股票或基金等),那么如何在它们之间进行合理的资金分配?

所以,Hikyuu Quant Framework其实是在System和Portfolio基础之上、包含了九大策略组件:市场环境判断策略、系统有效条件、信号指示器、止损/止盈策略、资金管理策略、盈利目标策略、移滑价差算法、交易对象选择策略、资金分配策略。可以在此基础上构建自己的策略库,并进行灵活的组合和测试,甚至可以更进一步,在选择交易对象的同时,选取与之匹配的最优系统交易策略(System)。

为什么选择 Hikyuu

1、组合灵活,分类构建策略资产库 Hikyuu对系统化交易方法进行了良好的抽象,将完整的系统交易分为不同的策略组件接口,在进行策略探索时,可以更加专注于某一方面的策略性能与影响,可以构建自己的策略库累计资产,并灵活组合。其主要功能模块如下:

主要功能模块示意图

2、性能保障,打造自己的专属应用 目前项目包含了3个主要组成部分:基于C++的核心库、对C++进行包装的Python库(hikyuu)、基于Python的交互式工具。

  • C++核心库,提供了整体的策略框架,在保证性能的同时,已经考虑了对多线程和多核处理的支持,在未来追求更高运算速度提供便利。C++核心库,可以单独剥离使用,自行构建自己的客户端工具。

  • Python库(hikyuu),提供了对C++库的包装,同时集成了talib库(如TA_SMA,对应talib.SMA),可以与numpy、pandas数据结构进行互相转换,为使用其他成熟的python数据分析工具提供了便利。

  • hikyuu.interactive 交互式探索工具,提供了K线、指标、系统信号等的基本绘图功能,用于对量化策略的探索和回测。

3、多范式支持,探索更便捷、自由 同时支持面向对象和命令行编程范式。其中,命令行在进行策略探索时,更加简单、便捷、自由。

4、安全、自由、隐私,搭建自己的专属云量化平台 结合 Python + Jupyter 的强大能力与云服务器,可以搭建自己专属的云量化平台。将Jupyter部署在云服务器上,随时随地的访问自己的云平台,即刻实现自己新的想法,如下图所示通过手机访问自己的云平台。结合Python强大成熟的数据分析、人工智能工具(如 numpy、scipy、pandas、TensorFlow)搭建更强大的人工智能平台。

5、数据存储方式可扩展 目前支持本地HDF5格式、MySQL存储。默认使用HDF5,数据文件体积小、速度更快、备份更便利。截止至2017年4月21日,沪市日线数据文件149M、深市日线数据文件184M、5分钟线数据各不到2G。

的码云指数为
超过 的项目
加载中

评论(12)

x
xuyuan8003
好,认真学习一下。
成都老柴
成都老柴
产生了config文件,但是: F:\WinPython\python-3.6.5.amd64\Lib\site-packages\hikyuu>importdata Can't read file(c:\\Users\94995\.hikyuu\data_dir.ini)!
navyblue
navyblue
mark
zhuyupeng
zhuyupeng
玩玩~
爻爻爻
爻爻爻
看不懂,业余学学玩玩
z
zzwufozzw2017
非常的牛。。。。。。。。。。
陈思齐_Kevin
陈思齐_Kevin
666
蔡立恒
好文章,营养十足!!!!!!!!!!
rainlzy
rainlzy
很好的学习案例
w
wewewe

Hikyuu 1.1.2 发布,量化交易研究框架

Hikyuu 1.1.2 已发布,这是一款量化交易研究框架。该版本更新如下: 修复 Indicator 无法作为原型使用,导致部分预定义的 SG 等无法正在运行的BUG。如: #以下两种写法等效: (EMA() + MA...

04/19 09:30

Hikyuu 1.1.1 发布,量化交易研究框架

Hikyuu 1.1.1 已发布,这是一款量化交易研究框架。该版本更新如下: HikyuuTDX 新增当前财务信息及历史财务信息下载 Stock 新增 getFinanceInfo、getHistoryFinanceInfo 支持当前及历史财务信...

04/08 02:44

Hikyuu 1.1.0 发布,量化交易研究框架

Hikyuu 1.0.9 已发布,这是一款量化交易研究框架。该版本更新如下: 复权增加周线及其以上支持 支持历史分笔、分时数据 添加日志打印的等级控制 MoneyManagerBase增加对成本计算 Datetime增加...

02/28 22:32

Hikyuu 1.0.9 发布,量化交易研究框架

Hikyuu 1.0.9 已发布,这是一款量化交易研究框架。该版本更新如下: 更新周线、月线等周线及其之上的K线BAR记录,从以开始时间为准,改为以结束时间为准。(如从老版本升级,需手工删除sh_da...

2018/10/23 01:40

Hikyuu 1.0.8 发布,量化交易研究框架

Hikyuu 1.0.8 已发布,这是一款量化交易研究框架。该版本更新如下: 1、实现一个简单资产组合回测框架 PF_Simple(多标的、相同策略),因目标是多标的、多策略的资产组合框架,所以后续接口...

2018/01/22 01:30

Hikyuu 1.0.7 发布,量化交易研究框架

Hikyuu 1.0.7 已发布,这是一款量化交易研究框架。该版本更新如下: 1、合入网友哥本哈根达斯提供的修改,复权时不处理只有股本变化的权息记录,和通达信等软件处理保持一致。 2、增加使用 ...

2017/12/15 02:04

Hikyuu 1.0.6 发布,量化交易研究框架

Hikyuu 1.0.6 已发布,这是一款量化交易研究框架。该版本更新如下: 完善Python帮助,以便在Shell中直接使用 help(cmd) 查询 修改数据驱动,支持直接使用Python编写数据驱动。实现使用 pytd...

2017/11/20 03:05

Hikyuu 1.0.5 发布,量化交易研究框架

Hikyuu 1.0.5 发布,量化交易研究框架 1、增加载入临时的CSV K线数据功能,可用于期货或A股之外的数据测试。详情参见 StockManager 的 addTempCsvStock、removeTempCsvStock 方法帮助。 2、C...

2017/09/25 03:04

Hikyuu 1.0.4 发布,量化交易研究框架

Hikyuu Quant Framework 发布 1.0.4 版本 1、Indicator、Operand 支持直接AND和OR操作,如: c = CLOSE(c) #由于语法问题,不能直接使用关键字and,采用&、|来表达与、或的操作 x = c...

2017/07/25 01:51

Hikyuu Quant Framework 1.0.3 发布,支持实盘交易

Hikyuu Quant Framework 发布 1.0.3 支持实盘交易 1、Indicator、Operand 支持直接和数字进行四则运算及比较运算,如: c = CLOSE(k) x = c + 100 2、增加 SG_Bool 布尔信号指示器,直...

2017/07/03 02:09

没有更多内容

加载失败,请刷新页面

暂无问答

暂无博客

返回顶部
顶部