Merge pull request #221 from fasiondog/release

Release
This commit is contained in:
fasiondog 2024-04-03 11:47:28 +08:00 committed by GitHub
commit 392a42049c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 41 additions and 3 deletions

View File

@ -1,6 +1,42 @@
版本发布说明
=======================
2.0.0 - 2024年4月3日
-------------------------
1. 新增特性
- 新增 MF 多因子组件,用于时间截面对各标的排序评分,重新整理 PF(投资组合)、SE(选股算法)。从投资组合(PF)--截面评分(MF)--选股过滤(SE)--系统策略(SYS)--择时(SG)--资金管理(MM)--止损(ST)/止盈(TP)--盈利目标(PG) 全链条的交易组件化。
- 新增指标 ZBOND1010年期国债收益率用于计算夏普比例、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日
-------------------------

View File

@ -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
)

View File

@ -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(

View File

@ -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