gpt4 book ai didi

Python:使用 CVXOPT 进行二次规划

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:35 24 4
gpt4 key购买 nike

我正在使用 CVXOPT 进行二次规划,以使用均值方差优化计算投资组合的最佳权重。 http://abel.ee.ucla.edu/cvxopt/userguide/coneprog.html#quadratic-programming 有一个很好的例子.但是,参数是正规化的形式(根据作者的说法)。该示例是基本版本。我希望解决一些更复杂的问题:

min:

x'Sx

s.t.:

x'a >= g
x'1 = 0
x >= -Wb
x <= c1 - Wb

where:
x: active weights of assets (active weight = portfolio weight - benchmark weight)
S: covariance matrix of asset returns
a: expected stock excess returns
g: target gain
Wb: weights of assets in the benchmark
c: upper limit (weight) of any asset in the portfolio

假设所有变量都已计算或已知。

文档中提供的基本示例:

min:  

x'Sx

s.t.

p'x >= g
1'x = 1

其中 p 是 Assets yield 。

不知道的地方(引用http://abel.ee.ucla.edu/cvxopt/examples/book/portfolio.html处的代码和上面的优化问题):

1.我认为这些参数设置了约束,但我不完全确定:

G = matrix(0.0, (n,n))
G[::n+1] = -1.0
h = matrix(0.0, (n,1))
A = matrix(1.0, (1,n))
b = matrix(1.0)

2.我相信这是“规范形式”中最小化问题的一部分,我不确定这是什么意思:

mus = [ 10**(5.0*t/N-1.0) for t in xrange(N) ]

3.qp 的参数是什么(solver.qp 是二次优化器):

xs = [ qp(mu*S, -pbar, G, h, A, b)['x'] for mu in mus ]

查看文档,我很确定 mu*S(第一个参数)是要最小化的目标函数,-pbar 是返回值。然而,这看起来像是一个最大化问题(最大化负返回)。

我不知道,但是如何使用其他参数。

鉴于我的最小化问题和上述约束,我正在寻求使用优化器的帮助。

最佳答案

我阅读了文档,我认为您必须使用具有以下参数的函数。我假设 x 的大小为 n:

P = S
q = (0,....0)

A = (1, ...... 1)
b = (0)

G 垂直堆叠自

 -a
+I_n
-I_n

其中 I_n 是大小为 n x n 的单位矩阵。对应的右边h

  -g
Wb
...
Wb
C1-Wb
...
C1-Wb

即:一次-gnWbnC1-Wb

HTH.

关于Python:使用 CVXOPT 进行二次规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com