一 本文概要
Alpha因子挖掘是指在金融领域中,通过对市场数据进行分析和建模,寻找能够预测资产收益的因子或信号。这些因子或信号被称为Alpha因子,因为它们可以为投资者提供超过市场平均水平的收益,即Alpha。传统的Alpha因子挖掘方法只使用神经网络代理,并未充分利用解决方案空间的结构信息,也未考虑Alpha因子之间的相关性。
本文提出了一种基于奖励丰富的马尔可夫决策过程(MDP)和风险导向的蒙特卡洛树搜索(MCTS)的Alpha因子挖掘框架。该框架利用MDP将Alpha挖掘问题形式化,并通过MCTS解决MDP,从而充分利用离散解决空间的结构信息。与传统方法不同的是,该框架还采用风险导向的策略,明确优化最佳情况下的性能,而不仅仅是平均结果。实验结果表明,该框架在两个真实世界的股票数据集上优于所有最先进的基准方法,具有更好的建模准确性和盈利能力。
二 背景知识
Alpha因子
Alpha因子是一种用于量化投资的统计指标,用于描述证券或投资组合相对于市场表现的能力。它是基于历史数据和统计分析的指标,用于识别证券或投资组合的超额收益潜力。
Alpha因子可以是单个指标或多个指标的组合,用于衡量证券或投资组合的相对强度或弱点。这些因子可以基于财务数据、市场指标、技术指标、宏观经济数据等各种因素。
常见的Alpha因子包括但不限于以下几种:
-
市值因子:衡量证券的市值大小对其超额收益的影响。通常,较小市值的证券在相对收益方面表现更好。 -
价值因子:衡量证券的估值水平对其超额收益的影响。通常,较低估值的证券在相对收益方面表现更好。 -
动量因子:衡量证券价格的趋势对其超额收益的影响。通常,具有较强价格上升趋势的证券在相对收益方面表现更好。 -
盈利因子:衡量公司盈利能力对其超额收益的影响。通常,具有较高盈利能力的公司在相对收益方面表现更好。 -
财务健康因子:衡量公司财务状况对其超额收益的影响。通常,财务状况良好的公司在相对收益方面表现更好。
通过使用这些Alpha因子,投资者可以进行因子选股和组合构建,以寻找具有较高预期超额收益的证券或投资组合。然而,Alpha因子的有效性和适用性可能会受到市场环境和数据样本的限制,需要进行仔细的研究和验证。
股票趋势预测
股票趋势预测是一种利用各种方法和技术来尝试预测股票价格的未来趋势的实践。研究人员致力于利用机器学习模型来预测股票价格的趋势。使用机器学习模型进行预测的基本方法是使用时间序列模型,它可以分析历史股票价格数据,识别出未来的趋势。除了时间序列模型,还有其他一些方法被应用于股票趋势预测。其中之一是Transformer模型,它使用多头注意力机制来提取股票数据中的层次信息。另一种方法受到信号处理理论的启发,类似于离散傅里叶变换,用于捕捉股票价格波动背后的潜在交易模式。还有一些研究将扩散模型和变分自动编码器结合起来,以预测股票回报。
机器学习方法通常具有较强的预测能力,但为了使用这些方法,需要构建高质量的特征。这些特征可以基于公式型Alpha因子,即基于财务数据、市场指标、技术指标等构建的指标。高质量的特征对于机器学习模型的性能和预测准确性至关重要。
马尔可夫决策过程(MDP)
马尔可夫决策过程(Markov Decision Process,MDP)是一种数学框架,用于建模具有马尔可夫性质的序列决策问题。它是强化学习领域中的重要概念,并被广泛用于描述和解决许多与决策相关的问题。在马尔可夫决策过程中,决策问题被建模为一个离散时间的过程,由一系列连续的决策步骤组成。在每个步骤中,系统处于一个特定的状态,并且决策者可以选择一个动作来影响系统的状态转移和奖励获得。每个状态转移和奖励都是基于系统的当前状态和采取的动作,同时也受到随机性的影响。
MDP的核心组成部分包括以下几个要素:
-
状态(State):描述系统或环境的特定状态。 -
动作(Action):决策者可以选择的可行动作。 -
状态转移概率(Transition Probability):定义在给定状态和动作下,系统从一个状态转移到另一个状态的概率分布。 -
奖励函数(Reward Function):在每个状态和动作组合下,系统获得的即时奖励。 -
值函数(Value Function):衡量在给定策略下,从某个状态开始,对未来奖励的期望累积。
通过定义状态、动作、状态转移概率和奖励函数,可以使用各种算法和方法来解决MDP问题。其中最常见的是价值迭代算法(Value Iteration)和策略迭代算法(Policy Iteration),用于找到最优策略,即使得累积奖励最大化的策略。
马尔可夫决策过程在许多领域都有广泛的应用,包括人工智能、控制理论、运筹学等。它提供了一种形式化的方法来处理决策问题,并通过强化学习算法来找到最优决策策略,从而在不确定性环境中做出明智的决策。
蒙特卡洛树搜索(MCTS)
蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)是一种用于决策制定和搜索的算法,特别适用于那些具有大量可能性和不完全信息的问题。它在人工智能领域和博弈论中得到广泛应用,特别是在棋类游戏和其他类似的决策问题中。
MCTS的主要目标是通过模拟和评估可能的动作序列来选择最佳的动作。它通过建立一棵搜索树来表示游戏或决策问题的状态空间,并根据先前的搜索结果和统计信息来引导搜索过程。MCTS算法通常包括以下几个关键步骤:
-
选择(Selection):从根节点开始,根据一定策略选择一个子节点进行扩展。选择的策略通常是基于已有的统计信息,如访问次数或奖励值。 -
扩展(Expansion):对选择的叶子节点进行扩展,生成一个或多个可能的动作。 -
模拟(Simulation):对扩展的节点进行模拟,通过随机或启发式的方式模拟游戏的进行,直至达到终止状态。 -
反向传播(Backpropagation):根据模拟的结果,将奖励值更新传播回已经访问过的节点,更新节点的统计信息,如访问次数和奖励值。
通过重复执行以上步骤,MCTS算法会不断扩展搜索树,并根据统计信息和模拟结果来指导搜索方向。随着搜索的进行,更准确的估计值会被累积到根节点,从而帮助选择最佳的动作。
蒙特卡洛树搜索的优点在于其适用性广泛,不依赖于游戏规则的特定知识,并且可以处理复杂的决策问题。然而,它也有一些局限性,如对搜索空间的探索需要大量的模拟和计算资源,并且在搜索过程中可能存在一定的随机性。总的来说,蒙特卡洛树搜索是一种强大的算法,通过搜索和模拟来进行决策制定,可应用于许多领域,特别是博弈和决策问题的求解。
三 问题定义
3.1 如何评价Alpha因子的有效性
在金融领域,我们使用一个数学公式来表征alpha因子的计算过程。这个公式将股票的价格数据和其他金融市场相关数据进行处理,得出一个数值,用来预测股票的未来收益。我们希望这个alpha值与股票的未来收益之间有很强的关联性,也就是说,alpha值能够很好地预测股票的表现。
为了评估alpha值的有效性,我们使用一个叫做信息系数(IC)的衡量标准。IC是用来衡量alpha值和未来股票收益之间的关联程度的指标。它的取值范围在-1到1之间,数值越接近1或-1表示alpha值的预测能力越强。为了更好地比较不同alpha值之间的预测能力,我们还使用了一种叫做RankIC(Ranked Information Coefficient)的指标。RankIC对IC进行了排名处理,目的是减少极端值的影响,并强调预测股票相对顺序的能力。首先,我们对原始的alpha值序列进行排序,然后计算排序后的alpha值与未来股票收益之间的相关系数。这样可以更好地比较不同alpha值之间的预测能力,而不受极端值的干扰。
另外,我们还可以计算mutIC(Mutual Information Coefficient)来衡量两个alpha值之间的相似性,以评估它们的预测能力。mutIC用于衡量预测同一个目标的两个alpha之间的相似程度。较高的mutIC表示这两个alpha之间存在较高的重叠信息,可能存在冗余,对于提高alpha的预测能力有限。因此,我们希望找到相互之间相似性较低的alpha来构建一个理想的alpha组合,以获得更好的预测效果。
3.2 Alpha因子组合挖掘
在金融领域,常见的做法是使用一个alpha综合模型来生成一个组合alpha值,以指导投资组合的构建。假设我们有一个包含多个alpha的集合F={𝑓1, 𝑓2, . . ., 𝑓𝑘}。组合alpha综合模型𝑐(·|F,𝜔)会综合每个alpha的信息。通过给定模型参数𝜔,我们可以计算出组合alpha值𝑧𝑡 = 𝑐(𝑋𝑡 |F,𝜔)。组合alpha综合了多个alpha的信息,提供了对市场的全面视角,并且通常具有强大的预测能力。
在进行alpha挖掘的过程中,我们的目标不仅是识别具有高信息系数(IC)的单个alpha,还包括那些与其他alpha组合后可以进一步增强组合alpha的IC,实现协同效应。找到一组理想的alpha组合是一项具有挑战性的任务。理想的alpha组合应该满足以下标准:集合中的每个alpha都应具有较高的单个IC,同时与其他alpha的相似性(mutual IC)尽可能低。高相似性表示alpha之间存在市场信息的重叠。如果alpha池中存在冗余,那么组合alpha的性能改进将会有限。因此,在进行alpha挖掘时,找到一组既优秀又独特的alpha组合非常重要。
3.3 逆波兰表示法(RPN)
逆波兰表示法(RPN)是一种用于表示alpha值的方法,它在设计工作中非常方便。它将表达式转换成一系列令牌的序列,并通过后序遍历表达式二叉树来实现。在逆波兰表示法中,操作数表示为叶节点,操作符表示为非叶节点。通过将表达式转换成逆波兰表示法,我们可以清晰地表示一个alpha的表达式。这种表示法对于后续的模型设计和计算非常有帮助。简单来说,逆波兰表示法就是一种将数学表达式以特定顺序表示的方式,使得我们能够更方便地处理和计算这些表达式。
四 本文工作
为了挖掘出优秀且不同的alpha集合,我们首先设计了一个奖励丰富的马尔可夫决策过程(MDP),以帮助搜索算法高效地学习表达空间的特征。然后,我们提出了一种新颖的风险导向的蒙特卡洛树搜索(MCTS)方法来探索表达空间。具体而言,我们交替执行MCTS和风险导向的策略优化,用于挖掘alpha因子。
4.1 alpha组挖掘
在alpha挖掘过程中,我们通常使用一个alpha池来综合一组alpha。理想的alpha池应该是一个结构简单且高效的机器学习模型,可以是线性模型或树模型。在给定alpha池模型𝑐(·|F,𝜔)的情况下,我们通过加权综合的方法计算组合alpha的值𝑧𝑡 =𝑐(𝑋𝑡 |F,𝜔)。假设池中有𝑘个alpha,模型参数𝜔 =(𝜔1,𝜔2, . . .,𝜔𝑘)表示每个alpha的权重系数。权重向量中元素的绝对值反映了相应alpha的重要性。𝑓 (𝑋𝑡 ) = (𝑓1(𝑋𝑡 ), 𝑓2(𝑋𝑡 ), . . ., 𝑓𝑘 (𝑋𝑡 ))表示𝑘个alpha的当前值,𝑧𝑡 =𝜔 ·𝑓 (𝑋𝑡 )表示组合alpha的值。
在模型训练过程中,我们使用均方误差(MSE)作为损失函数,衡量综合alpha和未来股票收益之间的差距。通过使用梯度下降来最小化损失,我们得到了当前alpha集合F的最优权重𝜔。池的大小𝐾是预先设定的。新的alpha将逐步添加到池中。当新的alpha被添加到池中时,执行梯度下降来更新𝑘 +1个alpha的权重。如果alpha因子的数量达到了阈值𝐾,则从池中移除权重绝对值最小的主要alpha。算法的伪代码如算法1所示。
4.2 构建马尔可夫决策过程
我们构建了一个奖励丰富的马尔可夫决策过程(MDP)来解决alpha挖掘问题。通过解决这个MDP,算法可以识别出IC表现优秀的alpha。在这个MDP中,关键概念是”Token”,它是MDP的基本构建块,表示操作数和运算符的抽象。在这个框架中,MDP的状态𝑠_𝑡定义为当前选择的Token序列,而动作𝑎_𝑡是选择下一个Token。转移是确定性的。每个决策序列(episode)从特定的起始Token(BEG)开始,并在选择结束Token(END)后结束。
中间状态奖励的设计:对于尚未达到结束状态(即尚未选择END Token)的状态,设置中间奖励。如果当前的Token序列形成一个有效的逆波兰表达式,我们可以计算出由该Token序列形成的alpha的IC值。此外,如果alpha池不为空,我们计算该Token序列与alpha池中每个alpha之间的mutIC。中间奖励信号是基于这些计算得出的:
其中𝑘是池中现有的alpha数量,mutIC𝑖表示当前alpha与池中第𝑖个alpha之间的互信息IC值,𝜆是MDP中的超参数,在本研究中设定为0.1。
Episode的终止和奖励分配:选择END Token表示一个episode的结束。此时,对应的alpha被添加到alpha池中,并执行特定的算法(算法1)来获得当前组合alpha的值。最终,alpha组合的IC值作为该episode的整体奖励Reward。episode的最大长度为30
图3展示了奖励丰富的MDP。中间奖励是为了合法但不完整的表达式设计的。当episode终止时,分配一个episode奖励。
4.3 执行基于风险的蒙特卡洛树搜索
基于风险的蒙特卡洛树搜索(Risk-based Monte Carlo Tree Search)是一种用于搜索问题解空间的方法。它通过模拟和评估不同动作的风险来指导搜索过程。下面是该方法的主要步骤:
-
选择阶段:从起始状态开始,选择一个最有潜力的动作进行扩展。这个选择是基于两个因素:动作的历史价值和动作的先验概率。先验概率是由一个特殊的策略网络生成的,它通过训练学习来预测每个动作的可能性。 -
扩展阶段:选择阶段结束后,扩展选定的动作,得到一个新的状态。这个新状态会成为搜索树的一个节点,并与选择的动作相关联。 -
模拟阶段:从扩展的节点开始,使用一个模拟策略进行模拟,不断选择动作并生成新的状态,直到达到终止条件。这个过程可以帮助评估当前节点的价值。 -
回溯阶段:在模拟阶段结束后,将获得的模拟奖励与选择路径上的节点值进行累积,并回溯更新选择路径上的节点值和访问次数。
通过反复执行上述步骤,蒙特卡洛树搜索可以逐渐提高对问题解空间的探索效率,并找到最优或接近最优的解。
在Risk-based Monte Carlo Tree Search中,引入了一个风险策略网络,用于指导选择和模拟过程。这个网络通过训练学习来生成动作的先验概率,并帮助评估节点的价值。网络的训练是通过使用已生成的搜索轨迹数据进行的。
蒙特卡洛树的每条边(𝑠,𝑎)包含以下信息:{𝑁(𝑠,𝑎), 𝑃(𝑠,𝑎), 𝑄(𝑠,𝑎), 𝑅(𝑠,𝑎)},其中𝑁(𝑠,𝑎)表示边的访问次数,𝑃(𝑠,𝑎)表示由风险策略网络给出的边的先验概率,𝑄(𝑠,𝑎)表示边的值。选择和扩展阶段:在蒙特卡洛树中,节点表示表达式的标记,边表示从当前标记序列中选择下一个标记的动作。树的根节点是BEG标记,搜索从此处开始。在选择过程中,我们采用以下公式来确定下一个非叶节点的选择:当到达一个非终止叶节点(即不是END标记)时,我们调用风险策略网络进行评价,并为新扩展的边赋予初始值{𝑁(𝑠,𝑎) = 0, 𝑃(𝑠,𝑎) = 𝑝𝑙, 𝑄(𝑠,𝑎) = 0, 𝑅(𝑠,𝑎) = 0}。每当选择一个中间节点时,如果当前标记序列是有效的,则更新边(𝑠,𝑎)的奖励值。
完成选择并到达一个非终止叶节点后,进行模拟。在模拟过程中,根据策略网络给出的概率随机选择下一个动作,直到遇到END标记。模拟过程中生成的中间奖励和最终奖励相加,得到节点值估计𝑣_𝑙。对于非叶节点𝑘 = 𝑙,…,0,我们进行了𝑙−𝑘步的引导(bootstrap)并得到累积奖励如下:为了鼓励对长表达式进行探索,𝛾被设置为1,。对于𝑘 = 𝑙,…,1,我们更新边(𝑠𝑘−1,𝑎𝑘)上的数据:
在MCTS的一个搜索循环中,从BEG标记到END标记的过程构成了一个完整的轨迹𝜏 = {𝑠0,𝑎1,𝑟1,𝑠1,…,𝑠𝑇−1,𝑎𝑇,𝑟𝑇,𝑠𝑇}。在搜索过程中生成的轨迹被存储在回放缓冲区中。当缓冲区中的轨迹数量达到预定阈值时,搜索停止,并使用这些数据来训练用于后续搜索循环的风险策略网络。
4.4 完整训练过程
主流的强化学习算法通常旨在通过最大化累积奖励的期望来训练策略,但这种方法在优化策略的最佳情况性能方面可能不够有效。为了解决这个问题,研究人员设计了一种新的基于策略的强化学习算法,它训练一个风险追求的策略网络,专注于识别最佳情况下的最优策略。在进行alpha搜索时,我们的重点是追求最佳情况性能。
在训练过程中,每个回合生成一个轨迹,轨迹的选择由一个神经网络表示的动作选择策略决定。累积奖励由轨迹中的奖励累加而成。传统的基于策略的强化学习算法旨在优化奖励的期望值。然而,我们对累积奖励的分位数感兴趣,即在累积奖励的分布中具有一定比例的值,通过迭代逼近累积奖励的分位数,使用梯度上升法来更新网络参数,从而逐步优化策略网络。
整个训练流程中,MCTS和策略优化相互交替进行,以挖掘最优的alpha值。从MCTS中采样的轨迹作为训练数据用于训练风险追求策略网络。训练得到的策略网络将在MCTS的选择和展开过程中使用。简而言之,MCTS充当了与环境交互的采样器,而策略优化则作为一个优化器,通过使用采样轨迹来训练MCTS采样器的风险追求策略。整个算法的伪代码如下:
五 实验分析
5.1 实验设置
本文实验使用中国A股市场的数据来评估我们的alpha挖掘流程,使用股票价格和成交量的六个特征进行实验:开盘价、最高价、最低价、收盘价、成交量和成交量加权平均价格。使用原始的股票特征作为输入,并挖掘与未来收益有良好相关性的alpha因子。收益率是基于收盘价计算的,设置有两个目标收益率:5天收益率和10天收益率。数据集包含了13年的日度数据,并被分为训练集(2010年01月01日至2019年12月31日)、验证集(2020年01月01日至2020年12月31日)和测试集(2021年01月01日至2022年12月31日)。在实验中使用了两个流行的股票指数的成分股:CSI300指数和CSI500指数。
5.2 对比基准
-
Alpha101是一个由工业从业者广泛知晓的101个公式型alpha因子的列表。为了确保实验的公平性,这101个因子在实验中被线性组合成一个超级alpha因子。 -
遗传编程是一种通过操作表达式树的结构来生成alpha因子的流行方法。大多数先前的alpha生成方法都基于遗传编程,它以信息系数(IC)作为适应度度量,一次生成一个alpha因子。我们在实验中使用了gplearn的实现。由gplearn生成的alpha因子也被线性组合成一个超级alpha因子。 -
Alphagen是一种通过强化学习生成协同作用alpha因子的新框架。它是目前生成公式型alpha因子的最先进方法。我们在实验中使用了作者官方的实现。
为了更好地评估我们方法的有效性,本文还与在qlib上实现的直接预测机器学习模型进行比较。对于每只股票,这些模型使用过去60天的6个价格/成交量特征来构建360维的输入数据。模型通过对未来收益进行回归训练,然后给出预测分数。这些端到端模型的超参数根据qlib上的基准进行设置。
5.3 实验结果
表1中展示了实验结果。本文提出的方法在所有基准算法中取得了最好的结果。RiskMiner发现的协同作用alpha不仅具有强大的预测能力,而且表现非常稳定。图5展示模型在不同风险追求水平下的表现。初始阶段,随着风险追求水平的增加,IC分数也增加,表明风险追求策略能够有效地发现高质量的alpha因子。然而,当风险追求水平超过一定阈值时,性能开始下降,过于激进的搜索策略并不能显著改善结果,反而可能导致性能下降。因此,选择适当的风险追求水平对实验结果至关重要。这种现象的一个合理解释是,虽然风险追求策略更有可能发现更好的alpha因子,但过于激进的策略可能会陷入某个局部最优解。挖掘alpha因子与其他传统的强化学习任务不同,我们希望尽可能多地搜索局部最优解,而不是找到一个全局最优解。随着风险追求水平的增加,模型可能过度集中在当前最佳的局部最优解上,而忽视了表达空间中其他可能的最优解。因此,在实验中选择适当的风险追求水平对于获得良好的结果非常重要。
图6展示了模拟回测的结果,实验结果表明,在使用5日alpha作为交易信号并采用简单多头策略的情况下,RiskMiner在熊市中表现出色,取得了最佳的累计收益。表2的消融实验研究了MCTS和风险追求策略两个模块的个别性能以及它们一起工作时的综合性能。结果表明,个别模块的性能在一定程度上有所下降,但MCTS略优于风险追求策略。
六 总结展望
本文提出了RiskMiner框架,该框架用于生成协同公式alpha因子。通过设计奖励密集的MDP来稳定搜索过程,并将MCTS与风险追求策略相结合,使RiskMiner能够高效地在庞大的解空间中进行alpha挖掘。实验证明了RiskMiner发现具有强预测能力和稳定表现的协同alpha方面表现优越,超过了现有的最先进方法。
展望未来,一个可能的研究方向是利用LLM(大型语言模型)的强大文本处理能力构建情感alpha指标。这将进一步提高RiskMiner利用文本数据进行预测和挖掘方面的能力,并扩展其适用范围。通过结合自然语言处理和金融领域的知识,我们可以更好地捕捉市场情绪和情感因素对股票价格的影响,从而提高alpha指标的质量和可靠性。这一领域的深入研究将为金融市场预测和交易提供更多的机会和挑战。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/111050
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!