Releases: fasiondog/hikyuu
Releases · fasiondog/hikyuu
2.0.1
- 新增 TURNOVER (换手率指标)
- 新增股票类型 STOCKTYPE_A_BJ (北交所), 修复科创板和北交所股票最小交易量为1
- fixed tm 建立日期小于参考日期时 sys_performance 报错
- hub 中的 prtflo 更名为 pf, 和内部叫法统一
- 调整 MF_MultiFactor getScores 方法命名(原为 getScore ),并调整为在指定日期不存在数据时返回空列表(原为抛出异常)
- fixed python 中 TradeRecordList/PositionRecordList 中 to_df 方法失效
- hku_catch 中忽略对 KeyboardInterrupt 的捕获,避免 python 中 Ctrl-C 无法终止
- crtSL 更名为 crtSP (移滑价差算法),和内部其他叫法统一
- fixed 缺失 hku_save / hku_load 函数,导致示例运行失败
- fixed crtMM 补充缺失的接口
- 更新其他运行失败示例,如 OrderBroker (pybind需要先创建对象再传入方法)
- python 中缺失 CAPITAL (流通盘), 原可使用 LIUTONGPAN, 但缺失对 CAPITAL 的同名指定
2.0.0
-
新增特性
- 新增 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 的工具包进一步处理
- 所有系统部件及指标支持参数变更时的动态检查
-
其他优化与调整
- 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 可以捕获输出
- 缺陷修复
- fixed 建stock.db时候没包括历史退市的股票
- fixed tdx本地数据导入问题
- fixed low_precision 下python部分测试用例
- fixed python 日志目录创建
- fixed get_trans_list 数据错误
1.3.5
-
整体性能优化
- 整体性能优化,Indicator 计算速度再次提升 10% ~ 20%
- 编译支持 low_precision 参数,Indicator 可以使用 float 进行计算,在前述基础上可以再次提升计算速度,尤其是指支持 float neon 的 arm 芯片。(需自行编译)
-
功能增强
- 增加 STOCKTYPE_CRYPTO 数字货币类型,及其相关修改支持
- 系统有效条件组件 Condition 支持逻辑操作(+,-,*,/,&,|),及支持 _addValid 时附带额外数值(后续版本会在其他系统部件中增加此功能)
- 增加 EV_bool 系统环境组件,python 中增加 ev.plot 绘制 ev
- ev 增加线程保护,ev 通常作为公用组件,只计算一次,需要增加线程保护
- hikyuutdx 导入工具过滤长度非 6 位的证券代码,防止导入速度严重变慢
-
缺陷修复
- 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
1.3.3
1.3.2
-
整体调整与优化
- 整体从 boost.python 切换至 pybind11,以便在 C++ 部分中可以方便的进行 GIL 解锁,并行调用 python 代码
- 优化权息数据加载速度,尤其是使用 MYSQL 引擎时,缩短初始化加载周期从 6s 至 1s
- Block信息改为使用 MySQL/SQLite 方式,原有钱龙ini格式支持保留,但需要自行修改配置文件,
且使用 HikyuuTdx 进行配置时,使用 hdf5 存储时,配置文件会被自动更新为使用 SQLite 方式。
如果想继续使用钱龙格式,需使用 importdata 进行导入,且需自行调用 tools/update_block_info.py 更新板块信息。
-
功能增强
- 优化行情采集服务支持网络内发送和接收数据
- 新增技术指标 MDD/MRR 相对历史最高值回撤百分比/相对历史最低值盈利比例
- 支持版本升级提示
- 创建默认配置文件,用于没有gui的环境
- Performance 增加单笔最大盈利/亏损比例统计
- add CN_Bool 布尔信号指标系统有效条件
- 增强Condiciton, 增加get_datetime_list, get_valuse方法
- hikyuutdx未选择数据时添加提示
- add Performance.to_df in python
- Datetime 增加 ticks 方法,获取距最小日期过去的微秒数
-
缺陷修复
- fixed 调整止盈初始值,使其在未发生盈利前不生效
- fixed BandSignal 缺失序列化
- fixed Condiciton在未设置SG时无法生效
-
其他修改
- 兼容 akshare 新旧版本
- 屏蔽 talib 导入告警
1.3.1
1.3.0
-
性能优化
#125 <https://github.com/fasiondog/hikyuu/pull/125>
_ 指标融合优化,计算速度提升了8~10倍左右。 -
功能增强
- TradeManager 引出买空/买空操作至 python
- Stock 引出 get_index_range 方法至 python
- 编译选项增加 stacktrace 选项,方便异常时打印 C++ 堆栈
- 优化 TimerManager、线程池、数据驱动等基础设施
- MySQL/SQLite 数据引擎支持绑定 datetime
- 优化指标默认名称
- 升级 flatbuffers 版本至 23.5.6
- 优化 Stock 的相等比较
- KQuery/KRecord/KData 相等/不等比较完善并引出至 python
- 完善 Performance
-
其他错误修复
- 更新 SG 信号指示器系列方法,去除移除 OP 后的一些遗留问题
- 修复 TradeList 转 np 时使用了已废弃的方法
- 修复 SUM 存在访问越界的问题
- 修复 IniParser 不支持 windows 中文路径的问题
- 修复 RSI 存在 NaN 值时计算错误
- 修复 Ubuntu 23.10 下编译失败的问题
1.2.9
-
稳定性与兼容性
- 修复了 setup.py 更新编译模式时的问题,确保并行编译参数能够正常生效
- 对 HikyuuTdx 数据下载进行了优化,增加了超时处理,以防止网络连接问题导致进度停滞
- 增加了对 pytdx 连接失败的检测,以便记录相关日志
-
算法优化
- 优化了 VAR 和 STDP 算法,现在使用移位算法,提升了计算效率
- 修复了 weave formula 中缺少 break 的问题,避免了在打印时出现崩溃
- 增加了相关系数指标 CORR
- 修复了 SUM 中缺少 discard 设置的问题
- 修复了 setDiscard 在 discard 小于 size 时未对 m_discard 进行赋值的问题
-
功能增强
- 新增 pyechart 绘图支持
- 在 ipython/notebook 模式下,自动设定 matplotlib 绘图为交互模式,并改善了 bokeh 绘图效果
- StrategyBase 现在可以直接获取 StockManager 实例
- 自动设置 matplotlib 的中文字体
- 增加了 TimerManager 对系统时间发生变化的保护
- SQLite kdata driver 新增了支持转换时间间隔的功能
-
其他修复和改进
- 修复 getFinanceInfo 和 getHistoryFinanceInfo 的问题,只对 STOCKTYPE_A 生效
- 修复 IndicatorImp::setContext 方法中判断逻辑的问题,确保在遍历过程中 Context 能够正确修改
- 增加一下常用了跨平台函数
- 添加了反馈信息发送功能
- 优化了编译选项,对于部分用户直接使用 xmake 进行编译控制
- 修复了 split 函数的缺陷,并新增了 byteToHexStr 系列 byte 转字符串函数
1.2.8
- fixed 多broker时m_broker_last_datetime更新
- support Query.HOUR2
- 优化 Stock 缓存修改增加二次保护
- fix time delta when start_time < phase1_start
- add timeout for proxy requests.get
- 重复用一个代理ip,当超时6次换ip
- 解决delta.total_seconds()出现负值的情况
- update executor.map timeout
- fixed for bokeh3
- fixed flatbuffers version
- 升级 fmt
- fix "zsbk_sz = blockbj" to "zsbk_bj = blockbj"
- 优化编译工程