Python での ポートフォリオの計算

Python
スポンサーリンク

Python でのポートフォリオの計算

ポートフォリオの計算について色々調べてみた。とりあえず使いたいって人はportfoliooptがおすすめ。色々自前で工夫したい人はscipyでちゃんとやったほうがいい。

cvxoptを使った方法

scipy を使った方法

portfolioopt

気になった論文とその実現

L1, L2正則化をポートフォリオに組みこんでみたいと思ったら、日本後の論文が見つかった。cvxoptでは、今回の正則化の概念を入れた計算関数が見当たらなかったので、scipyのminimizeで対応。

L2正則化のコード主要部

def constraint1(x):
    return (0.2 - (math.sqrt(np.sum([_x**2 for _x in x]))))

cons = ({'type': 'eq', 'fun': lambda x:  np.sum(x)-1.0}, {'type': 'ineq', 'fun': constraint1})

res= optimize.minimize(variance, x0, args=np.asarray(cov),method='SLSQP',constraints=cons, tol=1e-10)

コメント

タイトルとURLをコピーしました