”qlib AI量化平台建设“ 系列文章第 15 篇。 我们的目标是星辰大海,涓涓细流,功不唐捐。 第一个百天计划:三个月内以qlib为基础框架,搭建AI量化投研平台。 8月底前要完成qlib框架内建于系统平台中。 好多朋友催更新aliabx上的代码,今天来收拾一下,后续系统的代码会继续开源,欢迎大家关注(公众号:ailabx)。 开源地址:https:///ailabx/ailabx 01 ailabx项目说明 项目原先是我完全自研的回测系统,借鉴了qlib的规则表达式,适用于传统的规则型的策略回测,还支持定投,市值恒定等策略。 本次“重构”,完全引入qlib作为底层框架,包括金融数据库,模型库,以及回测引擎,会结合自己对金融量化的理解,加上界面开发成系统,方便大伙的投研与投资工作。 适用人群: 1、对量化投资感兴趣的群体。 2、对机器学习感兴趣且喜欢金融的AI从业者。 3、传统投资遇见到瓶颈,希望借力AI找到突破的投资者。 4、主动投资转量化投资的人。 5、... 朴素的常识告诉我们,AI和金融都是”很长的坡,很湿的雪“,二者遇见,一定会有故事。也许AI发展短期会不及预期,但人工智能一定是生产力进步的方向,没有人会怀疑;而金融500年来只会更强,更健康,是资源配置最有效的方向。 金融业数据很多,结构化非结构化的,而处理手段仍然是”刀耕火种“,需要革新和进步。 02 系统架构 为方便用户投研工作,会提供GUI界面,初定方案是wxpython。 底层框架以qlib为主,辅以自主研发的策略和工具。 使用gui的逻辑是保证用户策略的”私密性“,另外就是算法对于计算资源是有要求的,在网页端运行体验不好。 如果有一些数据需要服务端支持,以Fastapi为后端提供能力, 以momgo db提供存储能力。 03 主框架 入口文件main.py, 核心业务逻辑core文件夹, core/qlib_mgr.py完成qlib框架初始化。 模型初始化比较简单,从类和模块里直接加载,当然你要自己直接导入模块也可以: def init_model(self, config=None): 这里初始化一个GBDT的树模型。 再来初始化一个数据集: def init_dataset(self, config=None): 模型训练与预测: class ExpMgr: 得到预测得分——每天每一个instument都会算出一个pred_score用于回测: 实验结果会保存在mlruns里(mlflow的格式,一个机器学习过程管理平台) 运行mlflow ui命令,在本机5000端口,可以直接看到实验结果: 年化12.7%,最大回撤8.8%,还可以的结果,当然这里还有大量的参数没有调优,只作用框架入门使用的一个示例。 小结: 阶段核心目标确定,100天计划本月要完成qlib作为底层框架整合到平台当中。
当然因为它提供了保存和加载的机制,倒也没有必要自己从头造轮子。 |
|