Hikyuu Versions Save

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

2.0.5

1 week ago

主要修复

  1. fixed 接收spot时,分钟级别的成交量为股数
  2. fixed SG_Cycle 其 alternate 属性须为 false,影响 PF 示例

其他修复

  1. fixed strategy 加载权息失败
  2. StrategyContext 在设定 ktypes 时进行从小到大的排序,以便后续能够按顺序调用 onBar
  3. fixed setKRecordList 使用 move(ks) 时错误

2.0.4

1 week ago
  1. 缺陷修复

    • fixed ETF 权息缺少扩缩股
    • fixed Portfolio 在非延迟买入、延迟卖出的场景下对账错误
    • fixed matplotlib performance 绘制时,当前收益率显示显示错误
    • fixed requirements.txt 增加tdqm, 缺失可能导致 windows HikyuuTdx 无法直接命令启动
  2. 其他改进

    • Stock 添加获取所属板块列表方法 get_belong_to_block_list
    • 改进 sys_performance,在query日期不在stock的有效日期范围内时,抛出异常
    • matplotlib sysplot 增加 only_draw_close,避免数据量较大时, matploblib 绘制 K 线过慢
    • 改进matplot绘制图形时,x轴坐标显示
    • pf 系统名称加上股票名称
    • 处理nng升级后的编译告警

2.0.3

3 weeks ago
  1. 增强 FINANCE,增加 only_year_report 和 dynamic 参数,以便进行市盈率等计算
  2. Indicaotr.plot 绘制时,将 x 轴设置为日期
  3. 增加北交所 92 号段
  4. 增加 BlockIndex 表,支持 Block 获取对应指数
  5. fixed 板块信息导入时,如果网络不好,未获取到当前板块信息时,会把之前的板块信息删除
  6. fixed interactive 中 blockbj 为空

2.0.2

4 weeks ago
  1. 新增特性

    • 历史财务信息入库,并增加指标 FINANCE 获取相应历史财务数据
    • 新增 RESULT 指标,以便对存在多个结果集的指标可以通过指标公式的方式获取结果
    • Stock 开放部分属性可在运行时修改,增加 set_krecord_list 方法,可以希望使用其他数据源时生成临时的 Stock 并获取 K 线数据
  2. 缺陷修复

    • fixed 获取节假日信息时出现错误
    • fixed hdf5 在只有日线数据时,运行在 jupyter 中,初始化会出现卡死
    • fixed 新增的北交所股票类型未修改全,导入数据后又变成了 A 股类型

2.0.1

1 month ago
  1. 新增 TURNOVER (换手率指标)
  2. 新增股票类型 STOCKTYPE_A_BJ (北交所), 修复科创板和北交所股票最小交易量为1
  3. fixed tm 建立日期小于参考日期时 sys_performance 报错
  4. hub 中的 prtflo 更名为 pf, 和内部叫法统一
  5. 调整 MF_MultiFactor getScores 方法命名(原为 getScore ),并调整为在指定日期不存在数据时返回空列表(原为抛出异常)
  6. fixed python 中 TradeRecordList/PositionRecordList 中 to_df 方法失效
  7. hku_catch 中忽略对 KeyboardInterrupt 的捕获,避免 python 中 Ctrl-C 无法终止
  8. crtSL 更名为 crtSP (移滑价差算法),和内部其他叫法统一
  9. fixed 缺失 hku_save / hku_load 函数,导致示例运行失败
  10. fixed crtMM 补充缺失的接口
  11. 更新其他运行失败示例,如 OrderBroker (pybind需要先创建对象再传入方法)
  12. python 中缺失 CAPITAL (流通盘), 原可使用 LIUTONGPAN, 但缺失对 CAPITAL 的同名指定

2.0.0

1 month ago
  1. 新增特性

    • 新增 MF 多因子组件,用于时间截面对各标的排序评分,重新整理 PF(投资组合)、SE(选股算法)。从投资组合(PF)--截面评分(MF)--选股过滤(SE)--系统策略(SYS)--择时(SG)--资金管理(MM)--止损(ST)/止盈(TP)--盈利目标(PG) 全链条的交易组件化。
    • 新增指标 ZBOND10(10年期国债收益率用于计算夏普比例)、SPEARMAN(秩相关系数)、IC(信息系数)、ICIR(信息比率)
    • 新增复权类指标(EQUAL_FORWARD 等), 方便需要复权数据的指标计算
    • python 中 PF、SYS 增加 performance 方法,直接查看系统绩效
    • 新增 concat_to_df 将多个指标数据合并为 pandas DataFrame,方便其他使用 pandas 的工具包进一步处理
    • 所有系统部件及指标支持参数变更时的动态检查
  2. 其他优化与调整

    • python 中增强系统部件快速创建方法直接支持带有私有属性的 python 继承实例进行 clone,从而在 c++ 中调用
    • ALIGN 指标 增加 “fill_null” 参数,控制对齐填充(填充 nan 值 或使用最近数据进行填充)
    • System reset/clone 改为依据部件共享属性进行实际操作
    • 优化 C++ log 输出到 python 环境的交互
    • StockManager、Block、MF 可以直接通过过滤函数进行过滤获取相关证券
    • python 中改进 CLOSE/OPEN/HIGH/LOW/AMO/VOL,使其在公式中不再必须要括号
    • Indicator 增加 equal/isSame 方法,简化一些测试代码
    • Performance 统计结果按顺序输出
    • 获取仓库组件的 get_part 方法,不用必须指定参数名
    • 优化 TradeManager 获取资金曲线相关方法及其他 python 引入调整
    • 清理 C++ serialization 头文件包含及 cppcheck 静态检查信息
    • MYSQL_OPT_RECONNECT 兼容
    • SpendTimer 改输出到 std::cout ,以便 jupyter 可以捕获输出

SpendTimer 改输出到 std::cout ,以便 jupyter 可以捕获输出

  1. 缺陷修复
    • fixed 建stock.db时候没包括历史退市的股票
    • fixed tdx本地数据导入问题
    • fixed low_precision 下python部分测试用例
    • fixed python 日志目录创建
    • fixed get_trans_list 数据错误

1.3.5

2 months ago
  1. 整体性能优化

    • 整体性能优化,Indicator 计算速度再次提升 10% ~ 20%
    • 编译支持 low_precision 参数,Indicator 可以使用 float 进行计算,在前述基础上可以再次提升计算速度,尤其是指支持 float neon 的 arm 芯片。(需自行编译)
  2. 功能增强

    • 增加 STOCKTYPE_CRYPTO 数字货币类型,及其相关修改支持
    • 系统有效条件组件 Condition 支持逻辑操作(+,-,*,/,&,|),及支持 _addValid 时附带额外数值(后续版本会在其他系统部件中增加此功能)
    • 增加 EV_bool 系统环境组件,python 中增加 ev.plot 绘制 ev
    • ev 增加线程保护,ev 通常作为公用组件,只计算一次,需要增加线程保护
    • hikyuutdx 导入工具过滤长度非 6 位的证券代码,防止导入速度严重变慢
  3. 缺陷修复

    • fixed 相关系数指标 CORR
    • fixed Indicator 动态优化错误,部分使用 getResult 后再使用的场景执行失败
    • fixed 系统策略组件 clone 操作中未对引用的 Indicator clone,导致崩溃
    • fxied strategy的绑定string list到vector出错的问题,和python TestStrategy中的type
    • fixed python 中 SYS_Simple 中 cn 等函数参数不生效

1.3.4

3 months ago
  1. fixed windows 下第三方依赖 hikyuu 的 C++ 代码中无法使用 KData
  2. 调整 matplotlib font manager 日志级别

1.3.3

3 months ago
  1. 配合 hub (策略组件仓库) 使用 C++ 部件更新,参见 <https://gitee.com/fasiondog/hikyuu_hub>_
  2. 尝试获取用户目录下的 hosts.py,方便修改相关 pytdx 服务器设置
  3. 调整log级别宏定义避免windows下冲突
  4. 清理优化 cppcheck 告警提示信息

1.3.2

4 months ago
  1. 整体调整与优化

    • 整体从 boost.python 切换至 pybind11,以便在 C++ 部分中可以方便的进行 GIL 解锁,并行调用 python 代码
    • 优化权息数据加载速度,尤其是使用 MYSQL 引擎时,缩短初始化加载周期从 6s 至 1s
    • Block信息改为使用 MySQL/SQLite 方式,原有钱龙ini格式支持保留,但需要自行修改配置文件, 且使用 HikyuuTdx 进行配置时,使用 hdf5 存储时,配置文件会被自动更新为使用 SQLite 方式。 如果想继续使用钱龙格式,需使用 importdata 进行导入,且需自行调用 tools/update_block_info.py 更新板块信息。
  2. 功能增强

    • 优化行情采集服务支持网络内发送和接收数据
    • 新增技术指标 MDD/MRR 相对历史最高值回撤百分比/相对历史最低值盈利比例
    • 支持版本升级提示
    • 创建默认配置文件,用于没有gui的环境
    • Performance 增加单笔最大盈利/亏损比例统计
    • add CN_Bool 布尔信号指标系统有效条件
    • 增强Condiciton, 增加get_datetime_list, get_valuse方法
    • hikyuutdx未选择数据时添加提示
    • add Performance.to_df in python
    • Datetime 增加 ticks 方法,获取距最小日期过去的微秒数
  3. 缺陷修复

    • fixed 调整止盈初始值,使其在未发生盈利前不生效
    • fixed BandSignal 缺失序列化
    • fixed Condiciton在未设置SG时无法生效
  4. 其他修改

    • 兼容 akshare 新旧版本
    • 屏蔽 talib 导入告警