金融合约特征管理平台
以机器学习的视角来看,股票定价中的风险因子是由股票的特征计算而来,挖掘新因子的过程也是特征工程。无论后续打算建立的是多因子模型还是机器学习的模型,一个能管理、积累因子算法和计算成果的平台都是必须的。
一期:
1、基础数据落地 : 可从网络接口中定期同步基础数据(行情/财务/宏观数据)【来源可扩展性强】,并在本地以固定的数据结构存储
2、因子(特征)编写平台 : 基于本地存储的基础数据编写统一取数据api,以此提供一个编写因子(特征)算法的便捷平台;设计一个良好的因子算法编写规则,让自己编写的因子可以像基础数据一样被调用,从而可便捷地编写二次衍生因子
3、计算结果存储 : 为节省计算开销,已经计算过的因子应当按照与基础数据类似的方式被存储;下次调用时优先取既有的计算结果,缺失部分再调用因子算法计算。
二期:
择时模型开发框架;
选股模型开发框架;
特征/模型质量评估;
一期工程框架已搭建完毕,后续:
1.逐步积累数据源、本地数据库以及因子算法库.
2.设计因子评价流程-->维护一个单因子检验流程,对于选定的因子可生成描述性统计/单因子评估/经过经典因子检验后的报告,可存储结果备查
明日任务:完成日行情采集&取日行情api
├─features #特征相关代码
│ │ getfeature.py #获取特征的方法(从数据库获取,没有则重新计算;作为后续机器学习\多因子建模的基础)
│ └──Calprocess #自定义特征算法
│ Calprocess.py #模板
│ fakeCalprocessImpl.py #算法实现类(股票情绪,动量,基本面指标,技术形态...)
├─fundamentals #基础数据相关代码
│ │ DataCheck.py #基础数据自检,根据DBdefinition.xml建立sqlite表结构,若数据有缺漏则调动DataCollection从网络上采集
│ │ getfundamentals.py #基础数据获取方法(特征计算的基础)
│ │ test.py
│ │ testdb
│ └──DataCollectionImpls #基础数据采集代码
│ DataCollection.py #考虑到免费源不稳定,此处定义数据采集类的模板,方便新增或更换基础数据源
│ TushareImpls.py #目前使用tushare作为数据源
| otherImpls.py... #以后从其它渠道获取的数据源...
└──resource
DBdefinition.xml #数据库表结构定义