d23rojew / FactorManage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FactorManage

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

核心功能:

一期:
1、基础数据落地 : 可从网络接口中定期同步基础数据(行情/财务/宏观数据)【来源可扩展性强】,并在本地以固定的数据结构存储
2、因子(特征)编写平台 : 基于本地存储的基础数据编写统一取数据api,以此提供一个编写因子(特征)算法的便捷平台;设计一个良好的因子算法编写规则,让自己编写的因子可以像基础数据一样被调用,从而可便捷地编写二次衍生因子
3、计算结果存储 : 为节省计算开销,已经计算过的因子应当按照与基础数据类似的方式被存储;下次调用时优先取既有的计算结果,缺失部分再调用因子算法计算。

二期:
1、多因子模型:以因子获取Api&股票收益为基础,给出因子收益序列、因子协方差&股票预期收益、预期风险
2、整合决策器:整合不同预测期的多因子模型,形成当前持仓下的最有决策并执行下单;委托下单模块执行投资决策,记录各因子模型的决策以及成交反馈,便于投后收益归因

三期:
1、实现实盘连接Connection

一期\二期工程框架已搭建完毕,后续:
1.逐步积累数据源、本地数据库以及因子算法库.
2.探索因子&预测期组合方式,获取不同时间框架的最优股票预测模型
3.完成交易模块Connection,打通决策层与执行层

当前结构:

├─Connection                                 #与实盘账户的连接
|     Account.py                              #实盘账户对象,可获取持仓、下单
├─features                                    #特征相关代码
│     getfeature.py                           #获取特征的方法(包含特征自检方法;从数据库获取,没有则重新计算;作为后续机器学习\多因子建模的基础)
│     Descriptor.py                           #特征模板(包含一个特征抽象类,规定了特征命名规则、特征必须参数)
│     DescriptorImpls.py                      #特征算法(特征实现类,填充特征的具体算法,以fundamental模块提供的api作为数据源)
│     utils.py                                #一些工具函数
├─fundamentals                                #基础数据相关代码
│  │  RebuildAll.py                           #根据DBdefinition.xml建立或修改sqlite表结构的便捷工具
│  │  getfundamentals.py                      #对其它模块所提供的基础数据Api
│  └──DataCollectionImpls                     #基础数据采集代码  
│        UpdateData.py                        #针对已开发的数据源(DataCollection的实现类),执行基础数据更新
│        DataCollection.py                    #数据源对象抽象类(定义提供了数据采集类的模板,其子类仅需实现apidata、mapper、renew三个方法即可完成数据的外部获取、格式转换、落地存储、缺漏查询、数据补全功能。)
│        TushareImpls.py                      #目前使用tushare作为数据源
|        otherImpls.py...                     #以后从其它渠道获取的数据源...
├─model                                       #定价模型相关代码
|     MultiFactor.py                          #多因子模型对象(输入因子对象&时间段&预测期,使用FMB回归计算因子收益\因子协方差;可输出股票预期收益\预期方差)
|     ModelAssembler.py                       #整合决策器(1、管理不同预测期的多因子模型上架; 2、多个因子模型转化为多个预测期的股票收益/风险矩阵,并以此实现组合优化 3、整合多个因子模型的组合优化结果,形成下单决策并且记账 4、委托Account.py模块下单,并记录成交反馈)
└──MyResource
       DBdefinition.xml                       #数据库表结构定义

About


Languages

Language:Python 100.0%