Releases: HaoningChen/scutquant
scutquant
scutquant
解决了v0.6.0回测时将投资组合由等权改为加权而产生的一些bug,并且修改了原来交易逻辑中存在的问题(例如auto_offset),解决了一直以来turnover显示不正确的bug
本质上还是继续对大三时写的代码动刀。哪怕仅仅过了一年我对交易逻辑和代码风格的理解也不可同日而语,不知某些几十年没写过代码靠吃老本的教授是如何厚得起脸皮在学生面前当小丑的
scutquant
大改了主要是大三时写的一些代码,主要有:
- 删除了scutquant模块的时间序列分析部分,因为对于一个具有多重索引[("datetime", "instrument")]的Series而言,report模块的single_factor_ana能够更简洁优雅地提供更多有效信息;
- 重写了scutquant模块的auto_process函数,现在它只支持具有多重索引的输入,但是对数据的处理则更加规范和科学;
- scutquant模块中的标准化函数由operators模块的对应函数代替;
- signal_generator模块增加处理预测值的功能,将模型预测值先做市场中性化,然后用get_trade_volume函数获得交易信息,最后将处理过后的dataframe扔给策略筛选数据,得到最后的order;
- strategy模块仅保留了TopKStrategy,因为当数据已经做了市场中性化后,原来那些策略已经失去了经济意义;
- 删除了Pipeline和generate_yaml模块,因为基本不会被用到,而且有些意义不明
总体而言,这次的改动使得整个库向着更加专业化(偏量化)的方向发展,而且耦合度也一定程度上提高了(operators和report.single_factor_ana会在很多功能中用到,而回测的executor也不再与signal_generator彼此独立)。虽然大三刚开源的时候我对它的定位是低学习成本的,竞赛,科研和量化研究都通用的低耦合的库,然而当我不再以一个学生的身份来审视代码的时候,我对功能的追求和对这个库的意义的理解都有了些微妙的改变。
scutquant
修正了一些bug(主要是alpha.get_factor_metrics的计算bug),简化了operatros.neutralize的代码
scutquant
data模块从依赖akshare变成依赖tushare, 因为akshare无法获取不在网页上的数据, 所以会造成很多数据质量问题
data模块增加了计算复权因子的功能, 目前只实现了后复权
alpha模块增加了get_factor_metrics函数, 可以快速地对单因子获取相应指标
scutquant
修改了requirements.txt, 将~=换成>=;
大幅加速了alpha模块的qlib158函数的计算;
增加了若干operators;
report模块增加了因子可视化功能(single_factor_ana)
scutquant
移除了原来alpha模块的make_factors和alpha360, 分别改为qlib158和qlib360(顾名思义, 分别复现了qlib的alpha158和alpha360). 以后alpha模块更多地把重心放在因子本身上, 而具体的计算交给新增的operators模块
scutquant
修正了report的一些bug, 并且在alpha模块中增加了组合中性化和计算单因子portfolio的功能
scutquant
对之前的部分模块性能进行了提升,也新增了get_news_data模块
scutquant
新加入了Pipeline模块, 仅需一行代码尽可完成量化研究;
新加入了来自金融工程的因子: DELTA, GAMMA和VEGA;
修正了report模块的年化收益率只能正确计算日频数据的问题;
data模块新增了一些函数