From 0c70c7a251a847ceb105a5d7319076fc9fc42249 Mon Sep 17 00:00:00 2001 From: fasiondog Date: Wed, 3 Apr 2024 11:19:09 +0800 Subject: [PATCH 1/2] update for release --- docs/source/release.rst | 36 ++++++++++++++++++++++++++++++++++++ sub_setup.py | 3 ++- xmake.lua | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/docs/source/release.rst b/docs/source/release.rst index 236d0136..4680369f 100644 --- a/docs/source/release.rst +++ b/docs/source/release.rst @@ -1,6 +1,42 @@ 版本发布说明 ======================= +2.0.0 - 2024年4月3日 +------------------------- + +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 可以捕获输出 + +3. 缺陷修复 + - fixed 建stock.db时候没包括历史退市的股票 + - fixed tdx本地数据导入问题 + - fixed low_precision 下python部分测试用例 + - fixed python 日志目录创建 + - fixed get_trans_list 数据错误 + + 1.3.5 - 2024年2月29日 ------------------------- diff --git a/sub_setup.py b/sub_setup.py index 60827bb2..1f90ec58 100644 --- a/sub_setup.py +++ b/sub_setup.py @@ -91,7 +91,8 @@ hku_data_files = [] packages = ['hikyuu'] for root, dirs, files in os.walk('hikyuu'): for p in dirs: - if p.find('__pycache__') < 0 and p.find('ipynb_checkpoints') < 0 and p.find('.virtual_documents') < 0: + if p.find('__pycache__') < 0 and p.find('ipynb_checkpoints') < 0 \ + and p.find('virtual_documents') < 0 and p.find('idea') < 0 and p.find('venv') < 0: packages.append(f'{root}/{p}') setup( diff --git a/xmake.lua b/xmake.lua index f1064cb8..bbb5dafb 100644 --- a/xmake.lua +++ b/xmake.lua @@ -96,7 +96,7 @@ add_rules("mode.debug", "mode.release") if not is_plat("windows") then add_rules("mode.coverage", "mode.asan", "mode.msan", "mode.tsan", "mode.lsan") end -- version -set_version("1.3.5", {build = "%Y%m%d%H%M"}) +set_version("2.0.0", {build = "%Y%m%d%H%M"}) local level = get_config("log_level") if is_mode("debug") then From 845c240c5521a3183748d6238840c19a746554a1 Mon Sep 17 00:00:00 2001 From: fasiondog Date: Wed, 3 Apr 2024 11:24:24 +0800 Subject: [PATCH 2/2] hub add mf --- hikyuu/hub.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hikyuu/hub.py b/hikyuu/hub.py index 4fc7f02d..99b773ca 100644 --- a/hikyuu/hub.py +++ b/hikyuu/hub.py @@ -324,6 +324,7 @@ class HubManager(metaclass=SingletonType): 'af': 'part/af', 'cn': 'part/cn', 'ev': 'part/ev', + 'mf': 'part/mf', 'mm': 'part/mm', 'pg': 'part/pg', 'se': 'part/se', @@ -405,7 +406,7 @@ class HubManager(metaclass=SingletonType): name_parts = name.split('.') checkif( len(name_parts) < 2 - or (name_parts[-2] not in ('af', 'cn', 'ev', 'mm', 'pg', 'se', 'sg', 'sp', 'st', 'prtflo', 'sys', 'ind', 'other')), + or (name_parts[-2] not in ('af', 'cn', 'ev', 'mf', 'mm', 'pg', 'se', 'sg', 'sp', 'st', 'prtflo', 'sys', 'ind', 'other')), name, PartNameError )