2016-11-28 4 views
0

リスクフリー資産とリスク資産を組み合わせたポートフォリオを計算する場合は、最初に という2つのリスク資産のポートフォリオを計算する必要があります。最小分散ポートフォリオと効率的ポートフォリオ。私はすでにExcelでこの問題を解決しましたが、私はJuliaとJuMP(またはJuliaソルバーと一緒に)と一緒にそれを行う方法を知りたいと思います。
分分散ポートフォリオに関する問題はありません。しかし、私は効率的なポートフォリオを解決することはできません。目的関数は以下の通りです。Julia 0.4 - 平均分散効率ポートフォリオ(シャープ率を最大にする)

@objective(m, Max, (sum{matrix[i-5,6]*x[i], i in 6:10} - rfrate)/' 
    (sum{m2[i-5,j-5]*x[i]*x[j], i in 6:10, j in 6:10}^0.5))' 

ここで、xは変数(証券の重み)です。
私のソリューションの現在の状態はhereです。 ジュリアでこれを解決する方法はありますか?最適化が不可能な場合の近似でしょうか?

+0

これはかなり大きな質問です。答えは、あなたのポートフォリオの重みに置きたい制約(もしあれば)に依存します。問題が拘束されていない場合、解析的な解法があるので、数値最適化を使用すべきではありません。この[SSRN論文](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2536799)は、数学であまりにもうんざりすることなくそれをうまく説明しています。重みの一般的な制約のために、非線形ソルバーが必要になることがあります。私自身の仕事では、個人的にはジュリアのためにNLoptのパッケージを使用していますが、これはおそらく過大ですが、それは素晴らしいツールです。 –

答えて

1

JuMPモジュールの特殊性についてはわかりませんが、通常ブラケット付きの関数を呼び出すsum{}は無効です。かっこのある関数を呼び出すべきではありませんsum()? JuMPのドキュメントを簡単に見て、sum{}という名前のものは見つからず、通常のsum()という名前しか見つかりませんでした。

+0

彼らはMITx 15.053xコースで制約、変数、目的関数を目立つように使用していましたので、書式ではなくドキュメンテーションの問題になるでしょう。 – user7220010

+1

答えは実際にここにあります。中括弧は0.4で大丈夫ですが、0.5では非推奨です。 http://jump.readthedocs.io/ja/latest/quickstart.html – user7220010

関連する問題