我使用CVXOPT進行二次編程,以使用均值 - 方差優化來計算Potfolio的最優權重。 http://abel.ee.ucla.edu/cvxopt/userguide/coneprog.html#quadratic-programming有一個很好的例子。然而,這些論據是以正式形式出現的(根據作者)。這個例子是一個基本版本。我期望做一些更復雜的問題,其中:Python:使用CVXOPT進行二次編程
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是資產回報。
什麼我不知道(在http://abel.ee.ucla.edu/cvxopt/examples/book/portfolio.html指的是代碼和上面的優化問題):
1.I認爲這些參數設置的限制,但我不能完全肯定:
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 ]
望着文檔,我敢肯定,畝* S(第一個參數)是要minimzed目標函數和-pbar是回報。這看起來像是一個最大化問題(最大化負面回報)。
我不知道,但是如何使用其他參數。
我正在尋找使用優化器的幫助,因爲我的最小化問題和上面的約束條件。
感謝您的回覆,但我沒有關注'G'和'h' ...對於'G',你是什麼意思'-a,... -a'?和'+ I_n'?對於'h',我一點也不清楚。此外,你的想法是什麼邏輯? –
我剛剛制定了您的問題,以便它符合您鏈接到cvxopt的規範。 – rocksportrocker
-a .... -a是錯誤的。I_n是大小爲n的單位矩陣,即矩陣在diagonl外部爲零。對角線只包含一個。 – rocksportrocker