python迭代法求极值_Python与量化多因子——因子权重优化

f7f207ab5b69fba9e8af69cb7151986c.png

1. 前言

前面我们介绍了使用机器学习的方法进行因子合成,但是这种方法的适用性仍需斟酌使用。例如机器可能会给某个因子过高的权重,为组合带来风险暴露。本文从因子权重优化出发,基于Python Cvxpy库提供了因子权重优化的一个工具。

2. 常见因子合成方法

  • 静态权重:固定的权重加权,例如常见的等权。这种方法非常直观,领导拍脑袋。
  • 动态权重:IC加权,IC_IR加权,最大化IC IR加权。

动态权重的方法在很多卖方的研报都有介绍,像天风,华泰等等,甚至还讨论到IC的计算方式,例如根号市值加权的IC。

假设我们现在有n个因子,其IC的均值向量为

, 因子IC协方差矩阵
(但其实不一定是IC的协方差矩阵),最优权重为
, 我们现在考虑使用最大化IC IR方法进行加权,这是一个优化问题:

这个问题有解析解:

其中
为任意正数,可以用来调整最后的权重之和为1。

3 动态权重的扩展

3.1 最大化IC IR的缺点

  • 上一节,我们讨论了最大化IC IR加权方法,这种方法是考虑了因子之间的相关性后最大化合成因子的预测能力的方法。这涉及了因子之间的相关性,一般来说使用IC协方差矩阵
    来估计。
  • 使用IC协方差矩阵
    来估计存在两个问题,需要一定长度的因子IC序列,假如有n个因子,那么因子的IC序列至少要n+1期。即便如此,计算得到的还不一定是因子IC协方差矩阵的无偏估计。当然这不是本文讨论的重点。
  • 第二节的优化问题,我们实际上使用了因子权重之和为1的约束。本文提供了一个Python编写的工具,使得我们可以灵活添加各种约束来优化因子的权重,更好的辅助领导拍脑袋。相关的Code已经上传至我的github主页,可以私信我领取。

3.2. FWOptimizer介绍

  • 模型设定: 考虑到最大化夏普比率这个问题并不满足Cvxpy内置规定的DCP规则,我们转而使用均值方差模型:

  • 简单列了三种约束,包括因子权重之和约束,因子权重上下限约束。例如对于第一个约束,当k=n,且
    时,即为因子权重之和为1的约束,通过该约束,我们可以约束某一类因子的权重之和
  • 这个模型存在的问题在于需要给一个先验的
    ,可以参考的一种方法通过将最大化IC IR方法得到的最优权重代入
    使用
    作为
    的一个近似估计

3.3 举例

3.3.1 与最大化IC IR的比较

import sys
sys.path.append(r'E:Heat')
import pandas as pd
import numpy as np
from pisces.optimize import FWOptimizer

cov = np.array([[1.60008194e-01,  9.37627712e-02
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值