APP下载

应用于投资组合优化的强化学习状态与值函数的选择

2020-04-07王美清

关键词:交易日时刻股票

朱 昆,刘 蓉,王美清

(福州大学数学与计算机科学学院,福建 福州 350108)

0 引言

20世纪50年代,文献[1-3]提出了均值-方差理论模型,标志着现代投资组合理论的开端.很多学者在此基础上构建了其他模型,文献[4]在 1966年提出了资本资产定价模型(CAPM);文献[5]在1976年针对CAPM模型进行改进,提出APT模型;文献[6]提出使用“收缩”技术,以便在样本协方差矩阵中提取极端系数.

随着机器学习的长足发展以及大数据时代的到来,机器学习在各个领域大放异彩,最为人所知的是人工智能AlphaGo[7].次年,AlphaGo的最强版AlphaGo Zero[8]问世.文献[9]利用强化学习中的策略梯度分别对风险中性投资框架及风险敏感投资框架进行了研究;文献[10]在强化学习的状态中采用收盘价涨跌信息,通过对沃尔玛股票以及固定收益债券的组合进行实证分析研究,证明该方法能够得到稳定的收益,此方法被称为Horel-Sarkar-Storchan(HSS)方法.本研究在此基础上进行扩展,在状态的定义过程中加入了开盘涨跌这一因素,一定程度上纳入了市场消息面因素;考虑股票市场的特殊性,提出基于蒙特卡罗算法的状态值函数迭代更新方法.实证分析证明本研究方法能够获得优于HSS方法的收益.

1 投资组合优化问题

考虑最简单的传统资本配置问题,投资者仅持有两种资产: 无风险资产b,即固定收益证券,如国债;风险资产s,如个人股票.权值wb和ws分别表示用于投资无风险资产及风险资产的资金比重.假设所有资金均用于投资,即:wb+ws=1.分别使用rb与rs表示无风险资产及风险资产的收益率.投资者的目标即为动态确定最优ws以优化投资组合的回报:

(1)

即投资者在初始时刻t0做出决策,以期在时刻t获得最大收益.

由于风险资产的未来收益是随机变化的,因此投资组合优化问题是一个随机优化问题,可以用MDP来描述并采用强化学习方法求解.

2 强化学习框架

2.1 马尔科夫决策过程

强化学习的理论基础是马尔可夫决策过程(Markov decision process,MDP).一个马尔可夫决策过程可以简单地表示为一个五元组MDP=〈S,A,Psa,R,γ〉.即,

S: 状态集(States),有s∈S,st表示t时刻Agent所处的状态.

A: 动作集(Actions),有a∈A,at表示t时刻Agent采取的动作.

Psa: 状态转移概率矩阵.Psa指的是Agent在当前状态s∈S下,经过a∈A作用后,转移到其他状态的概率分布情况.

R:S×A|→.R是回报函数,表示Agent位于状态s∈S时,采取a∈A后可以获得的当即回报.

γ: 折扣因子,用来表示未来回报和当即回报之前的差别.

2.2 强化学习

传统的MDP求解方法是动态规划方法,但是当状态或动作数目过大,或者状态转移概率矩阵不能完全获得时,便无法采用动态规划方法.强化学习的出现为解决这类MDP问题提供了可能.

在强化学习中,智能体(Agent)通过选用某种策略(Policy) 采取动作(Action),和环境(Environment)进行交互,随后转移至下一个状态(State),并且获得当即回报(Reward),此后Agent根据Reward值对当前Policy进行调整优化.

简而言之强化学习即为一个试探评价过程,智能体通过采取一系列动作和环境进行不断的交互,Agent在此过程中改变了状态,并获得环境回馈的正奖励或是负奖励.

3 基于强化学习的动态投资组合

投资组合优化问题主要研究如何将资金投资于多样化的资产(例如股票、债券或基金),并动态地进行调整,以求获得最大的收益.由于投资市场行为是随机的,因此投资组合优化问题本质上是一个随机优化控制问题.

在用MDP描述投资组合优化问题时,最直接的想法是把股票的价格或者是收益率作为状态,买卖份额作为动作.在HSS方法中便是以连续数日的涨跌幅信息为状态,以用于投资股票的资金比重为动作.

假设交易以天为单位,股票s在时刻t和t-1的收盘价格分别为pct,pct-1,则在时刻t的涨跌幅为:

(2)

3.1 HSS方法

文献[10]提出的HSS方法,定义如下4个状态和动作.

1) 状态.状态由经处理后连续4个交易日收盘价的涨跌幅信息构成,即:

这里,每个元素取值依照股票涨跌幅的三等分点q33%,q66%离散化为三类,具体如下:

(3)

其中:rsc(t)表示第t个交易日股票的涨跌幅.

2) 动作.动作at用来记录投入股票市场的资金所占比重ws,离散化为[0,0.2,0.4,0.6,0.8,1.0].

3) 回报.即当即收益,rt=atrsc(t+1)+(1-at)rb.

4) 折扣因子γ=1.

3.2 改进HSS方法

在股票市场中,投资者有时会根据个股早盘的开盘价来判断当天是否具有参与价值,这是由于个股早盘开盘价中隐含了当日的投资者情绪、主力意图等市场信息.虽然这不是左右股价走势的决定性因素,但其也可以作为投资的参考依据,因此本研究尝试将开盘价的涨跌幅加入到状态中,以期获得更好的结果.

假设t时刻,股票s的开盘价为pot,定义开盘涨跌幅为:

(4)

状态由两部分组成,第一部分为选定股票昨日收盘价格的涨跌幅;第二部分为选定股票当日开盘价较之昨日收盘价的涨跌幅.受限于训练样本数量,状态集不宜过大,本研究令每个状态包含3组交易日信息,即:

其中每一个元素取值如下:

(5)

其中:rsc(t)为第t个交易日收盘价较之第t-1个交易日收盘价的涨跌幅,med1为训练集中rsc(t)的中位数;rso(t)为第t个交易日开盘价较之第t-1个交易日收盘价的涨跌幅,med2为训练集中rso(t)的中位数.

本研究方法的动作、回报以及折扣因子设置方法与HSS方法相同.

3.3 状态值函数更新方式改进

强化学习中的策略是一个从环境状态S到动作A的映射,记为策略π:S→A.由于强化学习通常具有延迟回报的特点,因此对于任意状态st和动作at,回报函数rt无法说明策略的好坏,需要定义值函数来表明当前状态下策略π的长期影响.

假设从状态s出发,依策略π选取的后续动作序列为at,at+1,…,at+k,…, 定义总折扣奖励Gt:

(6)

状态值函数表示从状态s出发,依策略π选取该动作序列得到的期望回报:

Vπ(s)=Eπ[Gt|St=s]

(7)

强化学习的解即为使得公式(7)取得最大值的动作序列.即,

(8)

一般,状态值函数通过不断迭代更新来获得最大值.

HSS方法采用传统Q-learning算法的值函数更新方式:

V(st)←V(st)+α[rt+1+γV(st+1)-V(st)]

(9)

其中:V(st)为状态st所对应的值函数值;α是学习率;rt+1是当即回报;γ是折扣因子;V(st+1)为状态st+1所对应的值函数值.

基于股票市场的特殊性,本研究更加关注每组状态与动作(s,a)自身的优劣,即每组(s,a)所能带来的收益,因而借鉴蒙特拉罗的思想,将状态值函数更新方式修改如下:

V(st)←rt+1+γV(st)

(10)

其中:V(st)为状态st所对应的值函数值,rt+1是当即回报,γ是折扣因子.

4 算法实现

4.1 数据预处理

本研究选取2%年度回报的国债、金枫酒业股票以及中信证券股票进行实证分析.交易数据是从Tushare金融社区下载的每日收盘价及开盘价,经计算得出开盘涨跌幅以及收盘涨跌幅.训练期间为2006年9月1日至2010年8月31日,测试期间从2010年9月1日到2014年8月31日.训练期与测试期时长均设置为4 a,这是为了验证模型的泛化能力.

4.2 算法

本研究对模型做以下假设: 不考虑交易费用;用于投资股市的资金可尽数转化为股票;进行的投资组合操作不会对股市产生影响.

在训练阶段采用ε-greedy策略选取动作,其中ε∈[0,1),即智能体在任一时刻以ε的概率选取当前时刻的最优动作,以1-ε的概率任意选取动作;在测试阶段采用greedy策略选取动作,即智能体在任一时刻以100%的概率选取当前时刻的最优动作.

本研究算法步骤如下: 1 训练阶段 初始化Q-table 在每一个训练周期: 初始化状态向量s为s0 在该训练周期的每一天: 在当前时刻状态s依照ε-greedy策略通过Q-table选取动作a 采取动作a, 得到当即回报r以及下一时刻状态s' Q(s, a)←r+γQ(s, a) 更新s至s'直至s'到达训练期最后一个交易日2 测试阶段调用训练得到的Q-table初始化s为s0在该测试周期的每一天: 在当前状态s依照greedy策略通过Q-table选取动作a 采取动作a, 得到当即回报r以及下一时刻状态s' rt=rt-1(1+arst+(1-a)rb) 更新s至s'直至s'到达测试期最后一个交易日

5 实证与分析

本实验在训练期所采用的ε-greedy策略中ε取值为0.6,其目的是让智能体能够充分探索每个状态下各种可执行动作进而做出综合评判;迭代次数训练周期取值为2 500,其目的是让模型得到充分的训练;折扣因子γ的取值为1,其目的是不论数据的久远程度,平等地看待每一次学习带来的经验.

5.1 实验结果对比与分析

经过训练期4 a共计931个交易日的训练,国债与金枫酒业的组合、国债与中信证券的组合在测试期分别选用四种不同投资方法得到的执行结果见图1.四种投资方法分别为: 资金全部投资于国债、资金全部投资于股市、HSS方法、本研究(Ours)方法.

观察图1(a)可以看出即便金枫酒业股价在测试期间整体呈下行趋势,采用Ours方法仍然可以获得高于单买国债或是采用HSS方法获得的收益;观察图1(b)可以看出中信证券股价在测试期间波动剧烈,采用Ours方法显著降低了资产总值的波动性,并且可以带来较为稳定的收益.

四种不同投资方法在测试期间的平均年回报、年波动率以及夏普比率见表1.

表1 四种不同投资方法之间的指标比较

为了说明模型的普适性,对上海证券A股市场600代码段全部8只白酒类股票进行实验,训练期与测试期样本选取与上述实验相同,实验结果如表2所示.

表2 上证A股8只白酒股票的各相关指标

5.2 模型有效性说明

本研究将开盘信息加入到状态中,为了说明这一改进优于HSS方法,以中信证券股票为例进行实验.实验中分别选取中信证券开盘价相对变化剧烈与稳定的两段时期进行对照实验,并加入计数器进行统计.计数器计数规则如下: Agent开盘时做出购入股票的决策后当日股价上涨计数加1(增加收益);Agent开盘时做出不购入股票的决策后当日股价下跌计数加1(避免损失).计数器的计数结果表示正确决策的次数(天数).

根据中信证券2006年至2015年间的每日开盘涨跌幅信息,设定2006年11月20日至2009年6月9日合计600个交易日为波动期(平均开盘涨跌幅为1.39%),2009年6月10日至2011年12月27日合计600个交易日为平稳期(平均开盘涨跌幅为0.69%).分别在两个时期内选取前300个交易日数据作为训练期数据,后300个交易日数据作为测试期数据进行对照实验.实验结果表明,不论波动期还是平稳期,采用本研究方法进行投资组合均能取得优于HSS方法的投资收益,此外平稳期两种投资方法的决策正确率相差无几,但波动期该方法的决策正确率明显优于HSS方法的决策正确率.

6 结论

本实验研究最简单的传统资本配置问题,利用强化学习中的Q-learning算法框架,借鉴蒙特卡罗算法的思想更新值函数,得到了明显优于HSS方法的结果,即使在股价下行或是反复波动期间也能获得较为稳定的收益.本研究方法获得成功的关键在于通过对历史数据的学习,智能体习得经验性的预测能力: 在预计股价下行期间减少持股比重,在预计股价上行期间增加持股比重,进而从中获利.

猜你喜欢

交易日时刻股票
冬“傲”时刻
捕猎时刻
本周创出今年以来新高的股票
本周创出今年以来新高的股票
本周连续上涨3天以上的股票
近期连续涨、跌3天以上的股票
继续看涨
一天的时刻