Qlib全新升级:强化学习能否重塑金融决策模式?

news2024/11/15 23:30:12

编者按:2020年,微软亚洲研究院开源了金融 AI 通用技术平台 Qlib。Qlib 以金融 AI 研究者和金融行业 IT 从业者为用户,针对金融场景研发了一个适应人工智能算法的高性能基础设施和数据、模型管理平台。一经开源,Qlib 便掀起了一阵热潮,相关开源项目在 GitHub 上已收获了11.4k颗星。作为一个通用技术平台,Qlib 不仅大大降低了行业从业者使用 AI 算法的技术门槛,还为金融 AI 研究者提供了一个相对完整的研究框架,让他们可以基于专业知识探索更广泛的金融 AI 场景。

微软亚洲研究院对 Qlib 的研究并未止步于此,经过两年多的深入探索,Qlib 迎来了重大更新,在原有的 AI 量化金融框架基础上,又引入了基于强化学习和元学习的新范式以及订单执行优化和市场动态性建模的新场景,帮助相关从业者使用更先进和多样的人工智能技术来应对更复杂的金融挑战。


金融业务的目标复杂性和顺序决策流程的特殊本质,让构建有效的金融决策模型成为一项十分困难的任务。一方面,金融市场的交易规则及其相互作用十分复杂,给金融策略的模拟和评估带来了巨大挑战。并且,策略模型优化往往涉及收益最大化和风险最小化,是一个多目标优化问题,这进一步增加了获得监督信号的难度。

另一方面,金融市场一系列决策之间相互依赖,这些决策共同决定了最终的策略表现,这使得一系列机器学习算法的独立同分步(Independent and Identically Distributed,IID)假设无效,导致传统的监督学习、半监督学习、无监督学习方法很难适用于这些金融场景的决策。

而基于强化学习(Reinforcement Learning, RL)的学习范式不需依赖标注样本,可通过智能体与环境的交互来收集相应的样本(如状态、动作、奖励)进行试错学习,从而不断改善自身策略来获取最大的累积奖励。这种通过不断试错和探索环境来进行学习,以寻找更好策略的学习范式更有利于满足上述金融决策的需求。

“在应用强化学习时,应用环境需要具有一定的沙盒属性。因为强化学习是通过反复试错的机制进行学习的,如果结果正确它就会得到强化。在现实世界中,游戏和金融领域的回测都是典型的沙盒场景。所以,我们希望能够利用强化学习来帮助解决金融决策的问题。”微软亚洲研究院高级研究员任侃说。

基于这一认知,Qlib 团队的研究员们针对交易决策和投资组合管理策略展开了研究,并在全新升级的 Qlib 中增加了基于强化学习的单智能体订单执行优化和多智能体批量订单联合优化的示例算法及其相应的平台支撑功能。

OPD先知策略提取:更好的订单优化策略

订单执行优化是算法交易中的一个基本问题,目的是通过一系列交易决策完成预设的元交易订单(meta-order),如平仓、建仓及仓位调整。从本质上讲,订单执行的目标是双重的,不仅要求完成整个订单,而且追求更经济的执行策略,实现收益最大化或资本损失最小化。针对订单执行的顺序决策特点,强化学习方法可以发挥优势捕捉市场的微观结构,从而更好地执行订单。

但简单、直接地使用强化学习会遇到一个问题——原始的订单及市场数据中存在大量噪声和不完美的信息。噪声数据可能导致强化学习的样本效率低下,使学习订单执行策略的有效性降低。更重要的是,在采取行动时,可以利用的信息只有历史市场信息,缺少明显的线索来对市场价格或交易活动的未来趋势做准确预测。

为此,Qlib 团队提出了一个通用的订单执行策略优化框架,引入了全新的策略提取方法 OPD(Oracle Policy Distillation,先知策略提取),来弥合噪声和不完美市场信息与最优订单执行策略之间的差距。该方法是一种“教师-学生”(teacher-student)的学习范式,“教师”在获得完美信息的情况下,会先被训练成一个可以找出最佳交易策略的“先知”,然后“学生”通过模仿“教师”的最佳行为模式来进行学习。而当模型训练阶段结束进入到实际使用阶段时,OPD 会在没有“教师”或未来信息的情况下,使用“学生”策略进行订单执行的规划。而且,与传统强化学习方法只为单一股票训练单一模型的思路不同,Qlib 团队提出的这一强化学习算法可以利用所有股票的数据做联合训练,从而极大缓解学习过程中的过拟合问题。

图1:OPD 先知策略提取示意图

实验结果显示, OPD 的性能显著优于其它方法,证明了 OPD 的有效性,也证实了传统基于金融市场假设的方法在真实场景中并不适用。此外,其它基于训练的数据驱动的方法因为未能很好地捕捉到市场的微观结构,所以也无法相应地调整策略,导致策略性能相较 OPD 方法较弱。

表1:OPD 方法实验结果(数值越高性能越好)。

多智能体协作方案MARL:显著提高批量订单的执行性能

在量化金融中,对资产管理的一类主要目标是通过在市场上连续交易多种资产来最大化长期价值。所以,除了订单执行外,投资组合管理也是量化金融中一个基础的场景,其目标是在一定的时间范围内,完成投资组合管理策略指定的大量订单,从而实现本轮的投资组合持仓调整,并尽可能降低换仓的成本甚至通过订单执行提高整体收益。

在多订单执行的联合优化中存在三个问题。首先,订单数量及交易金额每天都会根据投资组合的分配而变化,这要求订单执行策略具有可扩展性和灵活性,以支持多种不同的订单情况。其次,现金余额有限,所有的买入资产操作都会消耗交易者有限的现金供应,而出现的现金缺口只能通过卖出资产操作来进行补充。另外,现金不足可能会使得投资者错过更好的交易执行机会,所以投资者要在买入及卖出之间实现平衡,避免交易决策因为现金短缺导致交易执行业绩不佳。

尽管市场上存在许多用于订单执行的工具,但这些工具很少能够同时解决上述三个问题。为了解决这些挑战,Qlib 团队推出了多智能体协作强化学习(Multi-Agent Reinforcement Learning, MARL)方法,让每个智能体执行一个单独的订单,再以分解联合行动空间(joint action space)扩展到多个不同的订单,并且所有智能体协作可以在较少的决策冲突情况下实现更高的总利润。为了加强各智能体之间的协作,研究员们还提出了一种新的多轮意图感知通信机制,以了解每个协作阶段智能体的行动意图,该机制使用了新的行动价值归因(value attribution)方法,可以直接优化和细化每一轮智能体的预期行动。

图2:多智能体强化学习算法中多轮意图感知机制示意图

实验表明,在 A 股及美股数据上共6个不同测试时间窗口里,MARL(即表2中的 IaC^C 和 IaC^T)相比于单智能体强化学习、简单的多智能体强化学习及传统金融模型方法都在各项指标上有显著提升。此外,意图感知通信机制大大降低了 TOC 度量(用于衡量多订单执行中买、卖操作不均衡带来的现金短缺情况),这表明采用通信共享意图行动的方法比以前的 MARL 方法提供了更好的协作性能。并且研究员们提出的 IaC 方法的效果,远远超出了此前一些利用通信共享智能体意图的方法,这表明在单个时间段内细化多轮的行动意图对于智能体在复杂环境中实现良好协作来说至关重要。

表2:MARL 在 A 股及美股数据上6个不同测试时间窗口里五个关键性指标的实验结果。↑ (↓) 意味着值越高(越低)越好。

强化学习在金融领域的研究离不开专用框架的支撑

研究新算法通常需要快速地进行反复迭代,而迭代效率则在很大程度上取决于研究框架的完善程度。为了更好地推进强化学习在金融领域的前沿研究,Qlib 针对金融领域的特性,提供了全面的框架支持。

图3:全新升级的 Qlib 框架示意图

Qlib 新发布的金融领域强化学习框架提供了三个关键特性,以解决强化学习在金融领域应用的常见问题。

1. 在金融领域使用强化学习时,用户往往需要对接金融强化学习环境,通过设计马尔可夫决策过程(Markov Decision Process, MDP),集成强化学习策略算法。整个过程需要大量的工程工作,同时也需要大量的金融专业知识和实战经验,非常费时费力,导致研究人员无法专心于研究问题本身。Qlib 直接提供了涵盖上述问题的完整技术栈,免去了研究人员大量繁琐的重复工作。

2. 强化学习是通过与环境交互试错来优化策略的。但模拟环境与实际市场环境之间往往存在较大差异,这种差异可能导致模拟环境的最优解与真实环境的最优解存在很大的差距,这是强化学习研究落地的难点之一。这种差距一方面来自于真实交易包含了大量繁琐的规则,而一般用于学术研究的交易框架常常会忽略这些规则;另一方面,真实交易中通常是不同层次的交易互相结合使用(如日频交易和高频交易),忽视这部分交互影响也会对模拟产生偏差。Qlib 在设计时尽可能考虑到了各种规则,并将嵌套决策框架(nested decision making)用于模拟真实交易时不同层次交易策略的互相影响,从而最大限度地减少模拟误差。

3. 强化学习需要大量计算资源,涉及与环境的交互和试错,可能需要多次迭代才能达到最优策略。特别是在金融市场的复杂规则下,这些交互可能非常耗时,需要大量内存和计算。为了加速强化学习的研究迭代,优化训练和测试流程至关重要。Qlib 提供了不同仿真程度的模拟器,用户可以在训练时在不同的阶段使用不同仿真程度的模拟器(例如,在训练早期使用低仿真度但运行效率极高的模拟器,在训练后期使用高仿真同时资源开销较大的模拟器),从而实现在获得高仿真环境下的最优策略的同时,节约计算资源并加快训练速度。在测试环节,通过 Qlib 可灵活调度强化学习智能体的训练及测试环境的这一功能,实现提高回测并行度以加速策略的评估。

实时市场动态建模:更有效地预测未来数据分布

在现实世界的真实场景中,人们处理的数据往往是随时间顺序收集的流式数据,但机器学习算法能够被广泛应用于现实世界一般依赖数据独立同分布的假设。然而,金融领域的数据是非独立同分布的,它的规律会随着时间产生变化,这就导致传统的依赖独立同分布假设的机器学习模型难以在不同时间上同时进行有效预测。这种流数据分布以不易预测的方式发生变化的现象被称为概念漂移。

为了处理概念漂移,此前的方法是先检测概念漂移发生的时间,再调整模型以适应最新数据的分布,但是这类方法无法应对数据分布在下一个时刻继续发生变化的问题。Qlib 团队的研究员们发现,除了一些极端难以预料的分布突变,概念漂移常常以渐进地非随机方式演变,且这种渐进的概念漂移在某种程度上是可预测的,即概念漂移本身就存在一定的趋势和规律。而实际上这种场景在流数据中十分常见,但大多数现有研究都较少关注这一方向。因此,Qlib 团队通过预测未来的数据分布来关注可预测的概念漂移,并提出了新的方法 DDG-DA(Data Distribution Generation for Predictable Concept Drift Adaptation),来有效地预测数据分布的演变,并提高模型的性能。其具体的思路是,首先训练预测器来估计未来的数据分布,然后利用它生成训练样本,最后在生成的数据上训练模型。

图4:DDG-DA 算法示意图

DDG-DA 方法已经在三个实际任务中进行了实验:股票价格趋势、电力负荷和太阳辐照度的时序预测,并在多个广泛使用的模型上获得了显著的性能提升。

表3:DDG-DA 在概念漂移可预测场景中的 SOTA 表现

微软亚洲研究院高级研究员杨骁表示,“如果用户在使用工具时没有考虑到时间上数据分布的动态变化 ,那么最终的建模将是不完善的。我们的动态市场建模方法可以动态调整数据分布,让模型更好地学习和适应当前市场的规律。相比于传统使用历史数据构建模型进行预测的方法,DDG-DA 能够根据实时的市场规律变化,使用与未来分布更相似的数据建模,从而可以更准确地预测未来。”

元学习框架助力市场动态性建模

在市场动态性研究中,DDG-DA 通过调整数据分布间接地影响预测模型的训练过程,从而影响最终的预测结果。这种训练模式本质上是在学习如何训练一个模型,可以归结到元学习(Meta Learning)范畴。Qlib 提供了一套元学习框架,定义了元学习中任务、数据、模型的接口规范。

使用这套框架,研究者和从业人员不仅可以训练模型,还可以设计元模型(meta model)来自动地学习如何更好地训练模型,这为开展 DDG-DA 类似的研究工作提供了极大的便利。未来,Qlib 团队希望这个框架能够为更多的元学习算法提供支持,从市场动态性研究开始,扩展到更多的场景和问题。

更新版Qlib已开源,全新功能等你来探索

集成了最新功能的多范式 Qlib 现已在 GitHub 上发布。其新增的框架和组件能更好地支持强化学习这一学习范式在金融领域中进行智能决策相关的研究和应用。同时 Qlib 团队还发布了基于 Qlib 框架在订单执行这一典型场景下,基于强化学习的先知策略提取 OPD 及多智能体协作 MARL 的两个示例算法。而对元学习范式的支持也使得类似于市场动态性建模这类依赖元学习范式场景上的相关研究得以高效地开展并且更方便于实际应用,为智能金融决策又增加了一个成功的砝码。

图5:新版 Qlib 更新内容

“从数据处理到算法支撑,再到模型的训练与验证,此前的 Qlib 在纵向深度上为金融 AI 研究者和金融行业从业者提供了一个全方位面向 AI 量化投资的研究框架,而升级后的 Qlib 则在横向广度上为智能金融决策提供了更多新的学习范式,能够帮助使用者更精准地匹配金融业务及相关研究的需求。全新升级的 Qlib 将更多的 AI 算法、学习范式与更广阔的金融任务、场景相连接,提供了一个更易用、更高效的量化金融研究平台。”微软亚洲研究院首席研究员刘炜清表示。

相关论文:

Universal Trading for Order Execution with Oracle Policy Distillation

https://arxiv.org/abs/2103.10860

DDG-DA: Data Distribution Generation for Predictable Concept Drift Adaptation

https://arxiv.org/abs/2201.04038

GitHub链接:

https://github.com/microsoft/qlib

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对话罗氏中国:数字化创新驱动下的高效运营与合规实践

上海斯歌与罗氏中国已合作十余年,罗氏几乎见证了上海斯歌发展的全过程。近日,斯歌与罗氏 China Market Domain 架构负责人—— Brian Yang,就企业数字化探索、新技术的展望及斯歌产品等话题展开了探讨。 罗氏中国简介 罗氏(Roche&…

Nacos启动报错

错误如下 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name communicationController defined in URL [jar:file:/D:/apache/maven/vip/xiaonuo/nacos/nacos-config/2.1.2.GA/nacos-config-2.1.2.GA.jar!/com/alibaba/nacos…

前后端实现mqtt物联网消息互通对话(图文详解)

需求:前端使用mqtt订阅主题和硬件设备进行通讯功能,不走后端,前端操作可以控制。从部署到对话,跟着图文一套下来你也可以学会。很简单的。后端用node,前端就用原生的js,如果要使用vue,可以看我另…

OpenCV4使用applyColorMap()函数,可以将灰度图或彩色图转换成自定义的彩色图,或opencv提供的20多种色彩值

文章目录 1、applyColorMap()函数的使用:(1)函数原型:void applyColorMap(InputArray src, OutputArray dst, int colormap)void applyColorMap(InputArray src, OutputArray dst, InputArray userColor) (2&#xff0…

记录CompletableFuture使用遇到的坑-多数据源

现象:使用了allof().get()去阻塞线程等待子线程跑完,但子线程还是没跑完就结束了。 代码如图: 如果您熟悉CompletableFuture的.allOf方法应该知道题主是想等3个异步任务完成再往下执行,但事实是3个异步任务执行到最后 "好像…

2023年最新全国分省、市路网数据shp

最新全国分省、市路网数据 2023年 ​ 最近有小伙伴反应无法进入OSM地图官网下载数据,所以这次带来全国路网数据shp文件。获取时间:2023年5月 数据格式:shp 坐标系:GCJ-02 数据概览 分省如下: ​ 例如河北&#xff…

DDR3 控制器 MIG IP 详解完整版 (nativeVIVADOVerilog)

文章目录 前言一、MIG IP 核的配置二、MIG 交互的接口三、常用IP例化值四、小实验传图 前言 本节主要是介绍 Xilinx DDR 控制器 IP 的创建流程、IP 用户使用接口 native 协议介绍和IP 对应的 Example Design 的仿真和上板验证。。 提示:以下是本篇文章正文内容&…

开放式耳机哪个好?综合性能不错的开放式耳机推荐

传统入耳式耳机容易滑落,而且戴久了耳朵疼,开放式耳机的出现就避免了这个问题的出现,本文就为大家推荐几款使用感较好的开放式耳机,一起来看看吧~ 一、NANK南卡OE Pro开放式耳机 南卡OE Pro凭借着顶级的佩戴体验和极高的音质水准…

图像几何变换笔记

图像缩放 图像缩放是指对图像大小进行调整,对原图进行放大或缩小。图像缩放一般通过插值采样来实现。 常见的插值方法:最近邻插值、双线性插值、双三次插值。 最近邻插值 最近邻插值是最简单的一种插值方法,通过映射将原始图片中的像素值映射…

【数据结构与算法】哈希表设计(C\C++)

实践要求 1. 问题描述 针对某个集体中人名设计一个哈希表,使得平均查找长度不超过R,并完成相应的建表和查找程序。 2. 基本要求 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留…

C++——string(2)

作者:几冬雪来 时间:2023年7月7日 内容:C——string内容讲解 目录 前言: 1.string: 1. reserve: 2.resize: 3.assign: 4.insert: 5.erase: 6.rep…

策略模式深度实践——通用的HTTP接口调用

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

【CSS卡片翻转特效】CSS3实现3D旋转动画卡片翻转效果(附源码)

文章目录 写在前面涉及知识点效果展示1、web页面的搭建1)创建dom节点2)DOM元素添加图片3)添加翻转后的文字 2、CSS效果的实现1)div本身翻转效果2)3D翻转效果完整CSS3实现翻转效果demo代码可以留言邮箱或者自己去百度网…

扒开 TCP 的外衣,看清 TCP 的本质

TCP 非常重要,它的内容很多,今天只能讲解其中的一部分,但足以让你超越 80 % 的编程开发人员对于 TCP 的认知。 本篇内容非常多,非常干,希望你花点时间仔细研究,我相信会对你有所帮助。 1. TCP 协议是什么…

【tomcat】应用服务

准备环境 三台虚拟机 192.168.1.120 192.168.1.122 192.168.1.131 三台虚拟机关闭防火墙 、查看光盘 、检测yun创库 查看JDK是否安装 [rootlocalhost ~]# java -version openjdk version "1.8.0_161" //这是系统自带的rpm方式安装 OpenJDK Runtime Environment…

云端刺点难?这次看看云端地球怎么做

了解像控点与刺点 像控点是直接为摄影测量的控制点加密或测图需要而在实地布设并进行测定的控制点。 刺像控点是把外业采集的像控点的地理坐标与看到这个点的照片相关联的过程。在倾斜摄影建模中,使用像控点进行刺点可以大大提高建模精度。 为什么云端地球可以做…

青岛大学_王卓老师【数据结构与算法】Week04_02_带尾结点的循环链表合并_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

LLM搭建金融系统

背景: 这篇文章主要给大家介绍如何基于LLM模型配合各种pluging工具(这边主要是跟数据连接、检索的工具相关:知识图谱、向量库...)。在开始文章前先讲讲我的观点:大模型的颠覆性应用应该不在于AIGC,而在于数据驱动技术…

python验证公网ip与内网ip

公网IP和内网IP都是用于标识网络设备的地址,但它们有着不同的作用和特点。 公网IP是由互联网服务提供商(ISP)分配给用户设备的唯一标识符。它是全球范围内唯一的,并且可以被其他网络设备使用来寻找和连接特定的设备。公网IP通常用…

Linux操作系统中命令提示符最后的符号为“#”或“$”

07-Linux操作系统中命令提示符最后的符号为“#”或“$” 1、最后提示符“#”2、最后提示符“$”3、[lwhlocalhost~]中 “ ~” 1、最后提示符“#” 表示管理员身份2、最后提示符“$” 表示不同用户3、[lwhlocalhost~]中 “ ~” 表示当前用户的家目录