初识Hikyuu:不只是另一个回测工具
接触过量化交易的朋友,大多有过这样的经历:想验证一个投资想法,却发现大部分现成平台像个黑箱,策略逻辑被封装得严严实实;想自己写代码,又得从零处理K线数据、计算指标、模拟交易,工程量不小。
Hikyuu试图在这两者之间找到一个平衡点。
它是一个基于C++/Python的开源量化交易研究框架,核心思想是将系统化交易拆解为市场环境判断、信号指示器、止损止盈、资金管理等七大独立组件。
你可以像搭积木一样,把已有的策略部件组合起来,快速验证不同模块的效果,而不必每次都从头写一遍。这种架构设计,对于希望深入理解系统化交易概念、而非单纯寻找“圣杯”信号的研究者来说,显得格外友好。
更实际的一点是,Hikyuu对国内A股市场有很好的支持,并且官方文档和社区中提供了大量模仿通达信公式的示例,这让很多习惯用通达信选股、看指标的投资者,能够比较平滑地迁移到量化回测领域。
此外,他还有一个独特的优点:性能好,回测速度超快!
据官网介绍:在AMD 7950x 实测:A 股全市场 1913 万日 K 线,首次加载 + 计算 20 日均线并求和,仅需 6 秒;数据预热后,同操作耗时仅需 166 毫秒。
从零搭建:Hikyuu安装全流程
Hikyuu的安装过程不算复杂,但有几个关键点需要注意。
第一步:环境准备
确保你的系统是64位的Windows 7+、Ubuntu或macOS。Python版本建议3.10及以上。
第二步:安装核心包与依赖
直接通过pip安装Hikyuu,它会自动处理大部分依赖。若下载慢,可指定国内镜像源。
pip install hikyuu -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成后,在Python中验证版本:
import hikyuuprint(hikyuu.__version__)
如果遇到ModuleNotFoundError之类的导入错误,可能是Python版本不兼容或安装不完整,可尝试pip uninstall hikyuu后重新安装。
第三步:数据准备——最关键的环节
Hikyuu本身不带行情数据,需要自行导入。它提供了图形化和命令行两种方式。
图形化工具(推荐新手):
在命令行中执行hikyuutdx,会启动一个GUI界面,
这里可以选择支持从通达信数据源或其他渠道下载K线数据。

配置文件:无论是哪种方式,都需要配置hikyuu.ini文件,指定数据存储路径。该文件通常位于用户目录下的.hikyuu文件夹中。配置要点是让[database]、[weight]和[dest]等部分的路径保持一致。
初试身手:运行第一个策略
数据就绪后,可以写一个经典的双均线策略来验证环境。在Jupyter Notebook中运行以下代码:
from hikyuu.interactive import *#创建模拟交易账户进行回测,初始资金30万my_tm = crtTM(init_cash = 300000)#创建信号指示器(以5日EMA为快线,5日EMA自身的10日EMA作为慢线,快线向上穿越慢线时买入,反之卖出)my_sg = SG_Flex(EMA(C, 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))#绘制系统信号sys.plot()k = sm['sz000001'].get_kdata(Query(-150))c = CLOSE(k)fast = EMA(c, 5)slow = EMA(fast, 10)#绘制信号指示器使用两个指标fast.plot(new=False)slow.plot(new=False)#绘制资金收益曲线x = my_tm.get_profit_curve(k.get_datetime_list(), Query.DAY)x = PRICELIST(x)x.plot()

运行后,你会看到交易信号、资金曲线等回测结果。这是Hikyuu“积木式”策略开发的基本流程。


核心亮点:模仿通达信公式的能力
对于熟悉通达信的投资者,Hikyuu的一大吸引力在于其对通达信公式语法和函数的良好兼容性。这使得将选股或技术指标逻辑从通达信迁移到Python量化框架中,变得异常顺畅。
1. 语法与函数的高度对应
Hikyuu提供了大量与通达信同名的指标函数,例如MA(均线)、EMA(指数移动平均)、REF(向前引用)、SUM(求和)、IF(条件判断)、COUNT(计数)等。这使得移植代码时,大部分逻辑可以“直译”过来。
例如,官方文档中给出了移植通达信DMI趋向指标的示例。通达信中的核心计算:
MTR:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)),N);HD := HIGH-REF(HIGH,1);LD := REF(LOW,1)-LOW;DMP:=SUM(IF(HD>0 && HD>LD, HD, 0), N);
在Hikyuu中几乎可以逐句翻译:
N = 14C = CLOSE()H = HIGH()L = LOW()MTR = SUM(MAX(MAX(H-L, ABS(H-REF(C,1))), ABS(REF(C,1)-L)), N)HD = H - REF(H, 1)LD = REF(L, 1) - LDMP = SUM(IF(HD > 0 & HD > LD, HD, 0), N)DMM = SUM(IF(LD > 0 & LD > HD, LD, 0), N)PDI = DMP * 100 / MTRMDI = DMM * 100 / MTR
这种对应关系,极大地降低了学习曲线。
2. 绘图函数的兼容
除了指标计算,Hikyuu还增加了与通达信兼容的绘图函数,如STICKLINE(画柱状线)、DRAWBAND(画带状线)等。
这意味着你可以在Jupyter Notebook中,用接近通达信的方式绘制出专业风格的技术图表,便于直观分析。
3. 底层逻辑的适配
更深入一层,Hikyuu在底层处理上也考虑到了与主流软件的兼容。例如,在复权处理逻辑上,1.0.7版本之后,对于只有股本变化、不影响价格的权息记录,其处理方式与通达信等软件保持一致。这保证了基于复权价格计算的指标在不同平台上的结果一致性。
总结
Hikyuu是一个为系统化交易者设计的框架,它通过模块化的组件设计,让你能更专注于策略逻辑本身,而非重复造轮子。
它对通达信公式的良好兼容性,为习惯国内市场的投资者提供了一个从“看盘选股”向“量化回测”过渡的坚实桥梁。
虽然安装和数据准备需要一些初期投入,但一旦搭建完成,其高效的回测引擎(基于C++)和灵活的Python接口,能为策略研究带来不错的效率提升。

夜雨聆风