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)
コメント