Py学习  »  机器学习算法

量化专题 · CTA系列十五:CTA拥抱机器学习之三——当基本面量化遇见机器学习

中信建投期货微资讯 • 3 年前 • 1521 次点击  

本报告完成时间丨2021年4月12日

摘要

我们在CTA拥抱机器学习之一的报告中介绍了金工量化团队基于遗传规划算法的因子挖掘方法。就我们了解到,目前量化CTA类策略主要是依赖对量价行情数据的挖掘生成信号,而非量化CTA更多是依赖基本面分析。本篇报告目的是介绍我们在结合机器学习技术与基本面分析的探索。

模型算法上,我们仍然采用了遗传规划算法,遗传规划是优秀的特征生成工具,可以生成具备可解释可理解的显式特征,这一点对于基本面量化至关重要。

不同于对于量价信号的机器挖掘,基本面信号的人工智能挖掘并不能认为只进行纯数据的拟合,更重要的是要去理解评估挖掘出来的因子逻辑含义以及反映基本面的可解释性。

我们以原油基本面量化为例,展示了我们将机器学习引入到基本面建模过程的整个步骤流程,后续我们也将逐步拓展到其他品种以及产业链上,欢迎投资者致电交流探讨。我们在CTA拥抱机器学习之一、二的报告中介绍了,本篇报告金工量化团队根据遗传规划的因子挖掘方法。就我们了解到,目前量化CTA类策略主要是依赖对量价行情数据的挖掘生成信号,而非量化CTA更多是依赖基本面分析。本篇报告介绍了我们将机器学习技术与基本面分析进行结合的探索工作。

模型算法上,我们仍然采用了遗传规划算法,遗传规划是优秀的特征生成工具,可以生成具备可解释可理解的显式特征,这一点对于基本面量化至关重要。

不同于对于量价信号的机器挖掘,基本面信号的人工智能挖掘并不能认为只进行纯数据的拟合,更重要的是要去理解评估挖掘出来的因子逻辑含义以及反映基本面的可解释性。

我们以原油基本面量化为例,展示了我们将机器学习引入到基本面建模过程的整个步骤流程,后续我们也将逐步拓展到其他品种以及产业链上,欢迎投资者致电交流探讨。

风险提示:本研究主要基于历史数据统计,存策略失效风险、模型误设风险、历史统计规律失效等风险


概述

目前国内CTA市场上,量化CTA的数据利用主要还是以量价数据为主,量化CTA策略的核心在于利用不同周期的量价数据挖掘构建信号。但是随着量价数据挖掘的深入,策略同质化越来越严重,诸多大类策略的收益率降低风险越来越高,这对量化策略开发人员提出来越来越迫切的创新研究的要求。而基本面量化近年来收到越来越多的关注,在国内外已经成为一个比较热门的量化发展方向。我们认为,基本面量化有三个核心关键点,一是更多、更丰富的数据,二是数据挖掘方法的拓展,三是对基本面策略逻辑合理专业的评估。本文,我们将介绍我们在引入机器学习方法到基本面数据挖掘方法上的探索,希望能够更好更高效的从数据中挖掘规律,利用规律。

目前关于AI在投资上的应用仍然存在一定争议,这一点我们也认为在可预见的未来一段时间,整个投资任务对于AI来说还是过于宽泛复杂了。但是AI的长处在于大量繁杂数据的高速处理,这一点已在各个领域包括投资领域证明了其巨大价值。正如我们前期报告“CTA拥抱机器学习之一”中提到,如下图机器学习在投资领域的使用形式。

我们考虑的是,以人类投资成功经验为基础,利用AI作为工具帮助人类去高效完成一些特定环节,以便能够更高效以及相对客观的进行投资。因此,AI的引入的目的应该是降低低端的人力成本,把研究人员从繁琐的、低边际效益的工作中解放出来,能够投入更多时间和精力来对对市场发展变化以及构建投资逻辑进行更深入的思考。


系统介绍

2.1 算法简介

遗传规划算法是优秀的特征生成工具,可以生成具备可解释可理解的显式特征。我们认为,特征的可理解性与可解释性应该是一个有效基本面因子的必要条件。

遗传规划算法涉及的几个关键参数如下:

根据基本面量化的应用场景,我们认为以下几个参数需要特别注意。

parsimony_coefficient:

基本面信号应该是逻辑简洁清晰的,所以我们应当避免使用长度过长因子公式,我们这里对于过长的公式的适应度常用了sigmoid的惩罚函数,惩罚函数公式如下:

在函数参数中,通过设置threshold参数即可对公式长度大于等于阈值的公式较大的适应度惩罚,从而控制得到的公式长度。

function_set:

算子集合中,我们也是考虑到公式简洁性需求,我们只选择一些逻辑清楚直接的算子进入模型中,目前考虑算子如下: 

而算子参数中,回溯参数参数选择上我们按照逻辑含义,分别选择自然日的的30天(1个月)、92天(3个月)、178天(6个月)、365天(1年)、730天(2年)......

xdf:

与之前对于量价信号挖掘不同,这里基本面数据不试用任何衍生指标,直接采用聚类算法分类合成的原始数据。

信号构建:

假设得到公式指标数据序列Si(i=1,...,N),设置回溯参数为自然日365/730天...(1/2年...),当前信号为Si, 回溯期信号为Sr(r=i-T...i)。

(1)  若当前信号Si向上突破回溯期Sr 85分位处,发出看多信号;当前信号状态为多,且Si向下突破70分位处,发出平多信号。

(2)  若当前信号Si向下突破回溯期Sr 15分位处,发出看空信号;当前信号状态为空,且Si向上突破30分位处,发出平空信号。


2.2 开发流程

Step1:数据清洗

a)获取原始基本面数据,确定数据的时间标签,空值处理方法等...

b)根据最迟数据可获取时间确定信号的产生时间;

Step2:数据聚类降维

原始基本面数据多而繁杂,此时需要对基本面数据进行适当的聚类降维处理提高输入特征数据质量。聚类的方法采用我们前期报告《CTA系列二:趋势策略品种权重分配初探》中提到的AffinityPropagation(AP)无监督学习聚类方法。对于同一分类的数据进行等权平均得到大类特征数据。

Step3:遗传算法挖掘因子

a)初始化种群,计算每个个体适应度,如果存在适应度无法计算的个体,则淘汰个体,重新生成新的个体;

b)种群逐个个体开始交叉、变异进行进化形成新的种群,个体在进化中若进化与上一代的最优个体相同或出现适应度无法计算情况,则该个体重新进化;记录新的种群中适应度最好的个体;

c)若出现M代种群中最佳个体不变的情况,则提高进化的变异概率,吸收更多新的基因进入跳出局部最优点;

d)若M>3,则重新生成新的随机种群开始新的一轮进化。

e)一轮进化完成后,对每一代最佳个体进行评估,选择逻辑简洁,较为符合投资逻辑常识的因子。


系统介绍

3.1 测试条件

由于国内原油期货上市时间较短,我们这里选择布伦特原油作为模拟交易标的,我们交易价格采用布伦特原油的全天均价,交易时间选择基本面信号触发的后一天。测试时段选择2016年1月1日至2021年1月1日。

原始数据以及预处理分类如下:


3.2 信号测试

部分待评估的表现较好因子公式:

以上信号测试结果如下图所示:


总结

在本篇报告中,我们尝试将基本面量化与机器学习算法进行结合,本质上我们采用的是一种在基本面数据集进行数据挖掘拟合的机器学习方法。在这里我们特别要强调的是,这种数据挖掘只是一种数据探索工作,更重要的是结合基本面的研究体系,对数据探索的成果进行细致的评估。我们应用的遗传规划算法是一种启发式探索,帮助研究人员提高数据处理效率,拓宽研究思维,而下一步最重要的工作还是在于结合经济、供需、产业逻辑细致的分析因子背后的逻辑,形成因子管理体系。在实际运行过程中,也要密切跟踪分析因子表现,不断发现可能市场逻辑发生的变化。归纳而言,机器学习只是一个技术工具而并非是圣杯,可以说与我们日常使用的交易软件并无二致,投资中取得优秀绩效表现的核心还是在于背后使用工具的人。


作者姓名:彭鲸桥

期货投资咨询从业证书号:Z0012925

电话:023-86769675

研究助理:童力

期货从业证书号:F3075973

电话:023-81157270

重要声明

本报告中的信息均来源于公开可获得资料,中信建投期货力求准确可靠,但对这些信息的准确性及完整性不做任何保证,据此投资,责任自负。本报告不构成个人投资建议,也没有考虑到个别客户特殊的投资目标、财务状况或需要。客户应考虑本报告中的任何意见或建议是否符合其特定状况。


全国统一客服电话:400-8877-780

网址:www.cfc108.com  

了解更多

了解更多

了解更多









点个【赞】、【在看】· 遇见更多精彩



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111560
 
1521 次点击