2011-09-27 6 views
2

私は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.Iは、これは私が何を意味するのかわからないんだけど、「規制の形」での最小化問題の一部であると信じて:

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

引数3.What QPにされている(solver.qp二次オプティマイザ)は次のとおりです。

のドキュメントを見て
xs = [ qp(mu*S, -pbar, G, h, A, b)['x'] for mu in mus ] 

、私はムーは* S(最初の引数)がminimzedする目的関数であるとリターンが-pbarであることを確信しています。しかし、これは最大化問題のように見えます(負のリターンを最大にする)。

他の引数がどのように使用されているかはわかりませんが、

私は上記の最小化問題と制約を与えられたオプティマイザを使用してヘルプを探しています。

答えて

1

私はドキュメントを読んで、私はあなたが次のパラメータで関数を使用しなければならないと思う。

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

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

Gが垂直I_nサイズn x nの単位行列である

-a 
+I_n 
-I_n 

から順に積層されています。私はxサイズnを持っていることを前提としています。 1 -gnWbnC1-Wb:そして、対応する右側hがある

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

です。

HTH。

+0

私は 'G'と' h'の回答に感謝しています... 'G'のために' -a、... -a'をどういう意味ですか? '+ I_n'? 'h'のために、私は全く明確ではない。また、あなたの考えに対するあなたの論理は何ですか? –

+0

私はちょうどcvxoptへのあなたのリンクによって与えられた仕様と一致するようにあなたの問題を策定しました。 – rocksportrocker

+0

-a .... -aが間違っていました。I_nはサイズnの単位行列であり、行列は対角線の外側でゼロである。対角線には1つしか含まれていません。 – rocksportrocker

関連する問題