知识

阿尔法因子挖掘

一、传统与基础方法

1. 人工设计与金融理论

这是最经典的方法,依赖于研究员对市场的理解和金融学知识。

2. 遗传编程

这是一种受生物进化论启发的自动化方法,也是早期自动化因子挖掘的主流技术。


二、现代机器学习方法

这类方法不生成可解释的公式,而是直接将数据输入复杂模型来预测收益,形成“非公式化阿尔法”。

1. 监督学习模型


三、强化学习方法

这是目前最前沿的方向,将因子挖掘过程建模为一个序列决策问题,正如您阅读的论文《AlphaQCM》所做的那样。


四、自动化机器学习

滚动窗口-最优投资组合

指数平滑法vs滚动窗口法

时间序列模型和滚动窗口

场景一:金融预测(例如预测股价波动率)

场景二:投资组合优化(您上一个问题中的主题)

场景三:模型验证与回测

这是滚动窗口最核心的用途之一。无论你的时间序列模型多复杂,要评估它的真实性能,必须使用滚动窗口(或扩展窗口)进行回测,以防止“前视偏差”。这体现了滚动窗口作为评估框架的角色。

基于价值和基于策略

特征 基于价值 基于策略
它学习什么? 价值函数 - 一个状态或状态-动作对有多好。 策略本身 - 一个从状态到动作的映射。
它输出什么? 一个价值表或价值函数 Q(s, a) 或 V(s) 一个策略 π(a|s),通常是一个概率分布。
如何做决策? 间接的。比较所有动作的价值,然后选择价值最高的那个(例如,贪婪策略)。 直接的。根据学习到的策略 π 直接采样一个动作。
动作空间 适用于离散的、低维的动作空间。当动作空间连续或很大时,比较所有 Q(s, a) 会非常困难。 适用于连续的、高维的动作空间(如机器人控制)。可以直接输出一个连续的动作值。
策略的类型 通常学习的是确定性策略(总是选择最好的动作)。 可以轻松学习随机性策略,这对于探索和环境本身具有随机性的情况非常有用。
收敛性 通常更容易收敛和分析。 可能收敛到局部最优,训练过程可能不太稳定。
典型算法 Q-Learning, DQN, SARSA REINFORCE, PPO, TRPO

投资组合优化VS交易策略优化

维度 投资组合优化 交易策略优化
1. 核心问题 “买什么?” 以及 “买多少?” “何时买?” 以及 “何时卖?”
2. 优化目标 特定风险水平下最大化收益,或为特定收益目标最小化风险。关注静态的资产配置 最大化单次或多次交易的盈利性(如夏普比率、累计回报)。关注动态的择时
3. 时间尺度 中长期(周、月、季度、年)。调整频率较低。 中短期(秒、分钟、小时、日)。交易频率较高。
4. 主要输入 • 资产的预期收益率
• 资产的波动率(风险)
• 资产间的相关性/协方差矩阵
• 投资约束(如预算、行业限制)
• 价格/量 技术指标(均线、RSI等)
• 基本面 数据(财报、新闻)
• 市场微观结构 数据(订单簿)
• 交易成本(佣金、滑价)
5. 输出结果 一组资产权重(例如:60%股票,30%债券,10%黄金)。这是一个比例 具体的交易信号(买入/卖出/持有)和头寸大小。这是一个动作指令
情况一:分层强化学习架构
你可以使用相同的算法(如PPO),但在不同层级:

情况二:端到端的统一框架
如果你的动作空间设计得足够巧妙,一个RL智能体可以同时学习两者:

动作 = [配置权重, 择时信号, 风险控制参数]

但这需要极其复杂的状态空间和奖励函数设计。

收缩协方差矩阵

核心思想:在“过拟合”和“无用”之间找到最佳平衡

收缩协方差矩阵的根本目的,是为了得到一个更稳定、更准确的真实协方差矩阵估计值

要理解它,我们首先需要明白传统方法的问题。


1. 传统样本协方差矩阵的问题

当我们有N个资产(比如1000只股票),通常用历史收益率数据来计算样本协方差矩阵。


2. 收缩的解决方案:妥协的智慧

“收缩”是一种妥协策略,它承认样本协方差矩阵有缺点,但并非一无是处。它的核心思想是:

将“不稳定的但可能包含细节的样本协方差矩阵”与“一个非常稳定的但过于简化的目标矩阵”进行加权平均。

这个过程的公式非常简单:
收缩后的协方差矩阵 = λ * 目标矩阵 + (1 - λ) * 样本协方差矩阵

这里的 λ (Lambda) 是一个介于0和1之间的数,被称为收缩强度

现在我们来分解这个公式的关键部分:

a) 样本协方差矩阵

b) 目标矩阵

c) 收缩强度 (λ)


一个生动的比喻

想象你要预测明天的天气:

通过这种“收缩”,你得到了一个既比简单预测更准确,又比复杂模型更稳定的、鲁棒性极强的最终结果。

在投资组合优化中的意义

使用收缩后的协方差矩阵,可以:

  1. 极大地提升优化结果的稳定性:投资组合权重不会因为历史数据窗口的微小滚动而发生剧烈变化。
  2. 产生更合理的资产配置:避免出现极端权重(巨量做多或做空),使组合权重更分散,更符合常识。
  3. 提高样本外表现:由于减少了过拟合(拟合了历史数据中的噪音),基于收缩矩阵构建的投资组合在未来(样本外)的表现通常会更好、更可靠。

总结来说,收缩协方差矩阵是一种通过引入一点有偏但稳定的信息,来大幅降低估计误差的统计技术,是量化投资中处理高维数据、提升模型稳健性的核心手段之一。

强化学习算法

【用游戏揭秘人工智能原理(4)— 时序差分算法TD】 https://www.bilibili.com/video/BV1La411i7zy/?share_source=copy_web&vd_source=7e6ea0697121b5af3f41d4244e06fb27
Pasted image 20251116112411.png

1.马尔科夫链

Pasted image 20251116113359.png

2.强化学习中Q和V的概念

Pasted image 20251116113459.png
Pasted image 20251116113529.png
Pasted image 20251116113611.png

3.蒙特卡罗法

每一局奖励累加来更新状态
游戏结束后逐步向前累加来计算各个节点的价值
Pasted image 20251116113821.png
Pasted image 20251116113655.png
Pasted image 20251116113709.png

4.时序差分算法TD

每一步都更新
Pasted image 20251116114218.png
Pasted image 20251116114039.png
Pasted image 20251116114055.png
Pasted image 20251116114125.png

5.Qlearning(上),Qlearning的想法

Pasted image 20251116114331.png
Pasted image 20251116114429.png

6.Q-Learning 值函数

目的:找到最大价值的动作
算法:选择动作最大的价值,作为V的更新目标
用计算出来的价值推算出动作的价值
Pasted image 20251116114615.png
Pasted image 20251116114814.png
St1状态下选择动作A2后来到St,根据t时刻最大动作价值和A2动作的奖励,计算A2在t-1时刻的价值

7.策略梯度

让神经网络大脑不断的寻找对的动作
Pasted image 20251116115721.png
AI看到:每一帧动作画面
要做:每一帧的动作分布
Pasted image 20251116115815.png
起初:AI只能随机选择动作
Pasted image 20251116115844.png

蒙特卡洛法:计算每一状态帧下的累计奖励Pasted image 20251116115913.png

如果奖励是正数,朝着正确动作更新,累计奖励越多,更新的幅度越大
Pasted image 20251116120110.png
Pasted image 20251116120259.png

8.演员评论家算法

演员大脑:根据当前各个状态,输出主角各个动作的概率
评论家大脑:给演员的动作打分,高分——演员提高此动作输出概率
Pasted image 20251116120623.png
演员在t时刻通过其神经网络,输出动作概率,并选择一个动作后来到t+1时刻
评论家分别计算这两个状态的价值
把t+1看作是动作的终止,奖励累加方式,计算t时刻最新的状态价值,再相减,如果差值是正数,评论家就将当前状态价值,朝着价值高的方向更新
演员:得分高,提高这个动作的输出概率
Pasted image 20251116120914.png
Pasted image 20251116121147.png

9.DQN(deep-Q-learning)

将原来的表格换成神经网络
Pasted image 20251116121339.png
函数能连续表达连续的状态价值和动作价值的关系
神经网络拟合函数
Pasted image 20251116121500.png

10.AI玩功夫(上)-强化学习案例

11.AI玩功夫(下)-强化学习案例

生成订单簿数据

LOB 就是“限价订单簿”。

您可以把它想象成一个电子化的、实时的、不断变化的“愿望清单”,上面记录了市场上所有买家和小卖家对于某一只股票(或任何金融资产)在当前时刻的所有买卖意向

想象一下您要买一套房子:

如果把所有这些买家和卖家的出价都收集起来,按价格从高到低(买家)和从低到高(卖家)排列,就形成了一个“房产订单簿”。

金融市场上的LOB就是这个原理,只不过它完全电子化、自动化,并且每秒变化成千上万次。


LOB的核心结构

一个典型的限价订单簿有两边:

  1. 买方(Bid)想买的人。他们报出自己愿意支付的最高价格

    • 特点:价格越低越好(对他们而言)。所以买方的报价从高到低排列。最高的买价叫做 “最佳买价”
  2. 卖方(Ask 或 Offer)想卖的人。他们报出自己愿意接受的最低价格

    • 特点:价格越高越好(对他们而言)。所以卖方的报价从低到高排列。最低的卖价叫做 “最佳卖价”

关键概念:

LOB里会发生什么“事件”?

订单簿不是静态的,它会随着以下事件动态变化:

  1. 提交新限价单:一个新的买卖意向加入队列排队。

  2. 撤单:排队中的订单被取消。

  3. 市价单:不指定价格,直接按照当前最好的价格成交。这会立刻消耗掉队列一方的订单。

限价订单(图2)指定了一个价格,对于买单(买价)不得超过该价格,对于卖单(卖价)不得低于该价格。限价订单在LOB的相应侧以挂单形式排队。
市价订单则表示交易者愿意立即接受当前可得到的最佳价格。
在实时交易中,向市场注入订单会引发其他市场参与者的活动,这通常会将价格推离该交易者的方向。这种活动被称为市场影响