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彼此独立)。虽然大三刚开源的时候我对它的定位是低学习成本的,竞赛,科研和量化研究都通用的低耦合的库,然而当我不再以一个学生的身份来审视代码的时候,我对功能的追求和对这个库的意义的理解都有了些微妙的改变。