FactorManage

金融合约特征管理平台
以机器学习的视角来看,股票定价中的风险因子是由股票的特征计算而来,挖掘新因子的过程也是特征工程。无论后续打算建立的是多因子模型还是机器学习的模型,一个能管理、积累因子算法和计算成果的平台都是必须的。

核心功能:

一期:
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                       #数据库表结构定义