ポートフォリオ最適化の手法と計算条件

本ページでは、CloudOzのポートフォリオ最適化サービスで採用している計算手法、使用するデータ、最適化の目的関数および制約条件について説明します。

本サイトのポートフォリオ最適化サービスでは、リスク(標準偏差)1%あたりの超過リターン(期待リターンから無リスク金利を差し引いた値)が最大となる、すなわちシャープレシオが最大となる資産配分を初期設定として表示します。

ポートフォリオ最適化の概念図。資産配分を調整しながら目的に合った解を探索するイメージ
上図は、資産の保有割合を調整しながら、目的関数と制約条件に基づいて最適な配分を求める「最適化」の概念図です。山や谷の形状、探索経路は説明のためのイメージであり、本サービスの実際の計算過程や結果を表すものではありません。

本サービスの最適化手法は、Simon Benninga著『Financial Modeling』のポートフォリオ・モデルに関する章を参考に、現代ポートフォリオ理論に基づいて実装しています。

最適化には、Pythonのオープンソースライブラリ「CVXPY」と、凸二次計画問題を解くソルバー「OSQP」(Operator Splitting Quadratic Program)を使用しています。

各資産の保有割合の上限・下限などの制約条件(例:金の保有割合は10%以下)を設定し、その条件に合った配分を求めます。

OSQPの詳細については、以下のドキュメントをご参照ください:OSQP Documentation (Version 0.6.3)

最適化を行う際の計算条件は以下の通りです。

  • 対象銘柄:ユーザーが銘柄を選択・変更可能。
  • 配当・利息:配当やクーポンの再投資を考慮した複利計算を使用。
  • 無リスク金利:個人向け国債等の利率を使用。
  • 収益率:単純収益率ではなく、対数収益率を使用。
  • データの重み付け:直近の価格データを重視する特別な重み付けは行わない。
  • 共分散行列:Ledoit-Wolf法による縮小推定は行わない。
  • 最適化の目的:シャープレシオ最大化がデフォルトです。リスクを指定する場合は、その値をリスク(標準偏差)の上限として、各資産の保有割合などの制約条件のもとで期待リターンを最大化します。
    ※本サービスでは、リスクに代えて「積立期間」を指定できるようにしています。1年から30年までの積立期間を、リスクが0から最大値までの範囲に対応付け、期間が短いほど低いリスクとしています。

以下の画像をタップしてポートフォリオ最適化をお試しください。

本サービスの最適化結果は、過去の市場データに基づいて算出したものであり、将来の運用成果を保証するものではありません。