关注微信公众号:NLP分享汇。【喜欢的扫波关注,每天都在更新自己之前的积累】
文章链接:https://mp.weixin.qq.com/s/g5GaJrUpWOzYjL0f4-8npw
摘要
量化投资已经成为强化学习领域的研究热点,特别是股票、外汇和期货等方面具有广泛的应用需求和学术研究意义。基于深度强化学习构建的量化投资策略可以随时根据金融市场的变化进行自主调整,实现感知市场变化并进行决策,使量化投资实现智能化。
背景和意义
-
量化交易本质:分析金融市场、了解市场运动规律、辅助投资决策。
-
意义
-
量化投资运用数学、计算机技术制定策略,能够有效利用金融数据。强化学习实现“感知-认知-自主决策-自我学习”的循环,呈现出自我学习的特征。量化投资作为高度数据化、数学化、程序化的行业,是强化学习很好的应用场景。金融行业需要便捷、有效、精确的量化投资工具。随着大数据、人工智能的蓬勃发展,量化投资具备较为成熟的发展条件。基于深度强化学习的量化投资策略使投资者具备智能,可以随时根据金融金融市场的变化进行学习,提升策略性能,对将强化学习应用于金融领域具有参考价值。
-
量化投资运用计算机对交易市场的数据进行处理并在适当时机发出买卖指令完成交易。从金融市场提取有效交易信息是量化投资成功的关键,宏观经济数据、经济政策、品种交易数据、公司财务报表以及公开的即时市场消息等数据都可用于提取交易信息。一般通过构建数学模型分析金融产品收益与风险、判断各种不同走势发生概率完成交易信息提取。量化投资可以运用的投资标非常广泛,包括外汇、期货、股票等。
-
投资过程涉及的数据获取、数据处理、决策、交易执行等各个阶段都能用到量化投资。根据应用形式不同,量化投资分为交易择时、算法交易、资产配置、套利交易、风险管理等。
-
量化投资形式
-
交易择时:基于某种投资理念,分析、处理投资标的历史行情,判断价格走势,在特定时间点进行交易。
-
资产配置:运用量化投资实时获取、分析金融市场中可交易资产、建立资产投资组合、调整组合中个资产比例。
-
套利:金融交易中,相关市场或相关资产存在价差,通过在相关市场或相关资产中进行方向相反的交易,利用价差进行获利的交易方式为套利。金融市场中的套利机会非常少,量化投资能够帮助捕捉市场中的价差完成套利。
-
高频交易:金融交易中,投资标的买卖价差在不同交易市场或极短时间内存在变化,高频交易通过短持仓、高频率的交易捕捉瞬间的利润。
-
对冲:投资中存在风险,对冲指同时进行两笔行情相关、方向相反、数量相当、盈亏相抵的交易实现降低投资组合的风险。
基于DRL的量化策略设计
如图1所示,强化学习的框架包含agent和环境两个部分,强化学习的环境在时刻t生成状态st并输出给agent,接受、执行agent的动作at、转移到下一状态st+1,将评估动作at好坏的reward rt反馈给agent;agent在时刻t根据状态st输出动作、接收reward rt。agent与环境交互收集轨迹,然后根据轨迹更新策略。
图1 DRL的量化策略设计图
要基于深度强化学习进行量化策略的设计,总体上我们需要追述两个问题:一是问题如何定义,包括RL基本场景的设定?二是强化学习的环境如何进行构建?
-
问题定义
-
量化投资需要收集大量金融市场数据,借助计算机分析市场,以数学模型代替主观判断,编程分析金融资产的行情走势,挖掘获利机会并发出交易指令,这是在线决策问题,可以通过将其建模为MDP应用深度强化学习进行解决。
-
-
表征MDP的状态S:收集到的所有市场信息
-
表征MDP的动作A:交易过程中的操作
-
MDP的奖励函数R:交易过程中获得的收益
-
MDP的状态转移函数f:市场行情的变化
-
-
假定策略进行固定数量的做多、做空或不持仓。做多是指先购买一定数量的证券,并希望在随后的时间内升值;做空是指先卖出证券,并期望证券价格在随后的时间内降低。
-
在本文中,交易策略是时间驱动的,交易周期为T,在每个周期的开始,策略根据市场状况及持仓状态进行相应的买、卖、持有等动作已实现建仓、平仓、持仓等待、等待建仓等目的,对金融资产的买卖以收盘价进行,交易成本为现实金融市场的真实交易成本。
-
策略训练和回测的假设:
-
-
零滑点:金融市场资产的流动性都足够高,在下单时,每一笔交易可以立即以收盘价进行。
-
零市场影响:策略投入的资金微不足道,对市场没有影响。
-
-
强化学习环境构建
图2 持仓状态转移
-
数据源
-
量化投资、强化学习等都属于数据挖掘领域,只有具备尽可能完备、丰富的数据才能应用深度强化学习研究出高效、稳定的量化投资策略。
-
-
状态设置
-
环境状态大致可以用市场中所有历史订单来表示。可以用以下信息表征市场的状态:
-
开盘价:对应时段内第一笔交易成交的价格
-
收盘价:对应时段内最后一笔交易成交的价格
-
最高价:对应时段内所有交易中成交最高的价格
-
最低价:对应时段内所有交易中成交最低的价格
-
成交量:对应时段的成交数量
-
-
本文中的交易策略是时间驱动的,设agent执行交易动作的时刻为t,则在每一步交易决策时输入给agent的状态st设置如公式所示:St = (Xt, Ft)
【Xt表示[t-l,t]时间窗口内的历史数据(l为时间窗口大小),Ft表示t时刻的持仓信息,Ft不仅包括持仓状态,还包含建仓价格及持仓收益等。】
-
持仓状态公式:Ft ∈ {做多,中立,做空} = {1, 0, -1}
-
-
动作设置
-
本文中,我们考虑的策略被假设在金融市场中对单一证券中进行固定数量的买卖,即策略只涉及到建仓、持仓等待、平仓等阶段,不会对持仓大小进行调整(加仓、减仓),是离散动作空间。
-
agent在t时刻的动作at设置如公式所示:at ∈ {买,持有,卖} = {1, 0, -1}
-
策略在时刻t根据状态st执行动作at,改变自身的持仓状态:Ft+1 = f(Ft,at)
-
持仓状态的转移【图2 持仓状态转移】
-
-
回报设置(reward)
-
强化学习算法的目标是最大化累计回报的期望,reward在强化学习算法中担当重要作用,某种程度上类似于监督学习的数据标签。奖励函数R由当前状态、已经执行的动作和下一步状态共同决定:rt = R(st, at, st+1)
-
本文中的策略周期性输出动作调整持仓状态,而完整的交易包含建仓、持仓等待、平仓等阶段,经历完一次完整的买卖才能得到最终的收益,策略的目标是最大化收益。
-
-
智能体构建(agent)
-
本文的目标是应用深度强化学习学得一个量化投资策略是的策略能够稳定获得高收益。策略是agent用于决定执行动作的规则,是agent的大脑,本质上“策略”等同于“agent”。策略可以是确定性的:at = u(st);也可以是随机的:at ~ π(·|st)。
-
持仓信息Ft不仅在输入层进行输入,还连接到其他隐藏层,这是因为Ft是agent的内部状态,在做决策中起到关键作用,并且Ft在维度、变化尺度等方面都远小于Xt,为了确保agent捕捉到Ft在状态转移中的关键作用,因此将其连接到其他隐藏层。
-
网络架构【图3 agent结构】
-
图3 智能体agent结构图
总结
为了开发这样的量化策略,预先需要收集一定量的数据,并在其基础上建立一套基于数据的处理决策模型,通常把这一过程叫做量化策略的研究。策略研究好后,就要实现它,让它活起来。
从人工智能的角度来看:
-
量化策略就说是一个能坚定地执行你的交易思路的智能机器人,它会代替你时刻监视 行情变化,完成繁琐的交易动作。
-
其他细节方面:面对市场固有的不确定性,一些交易技巧其实是也很重要。
-
仓库管理:根据资金情况和行情决定每次的下单量,下单过程如何逐渐降低总成本,增加赢的概率,比如买的啥时候降低仓位的VMAP,根据行情走势的运动冲量决定仓位的调整。
-
风险管理:从策略层面出将,也就止赢止损。