この記事では、Pythonや投資初心者でもできるように、株式投資の資産管理のひとつである「ポートフォリオ理論」をレクチャーしていきます!
記事にでてくるコードはLINE@にて配布をしております。
メッセージ欄に「python」とお送りいただければダウンロードできます。
本記事は、全4回に渡って掲載される「Pythonによるポートフォリオ理論 株式投資の資産管理をレクチャー! 」シリーズの第3回になります!
- Pythonでリスク最小化の組み合わせを求める
- Pythonで効率最大化の組み合わせを求める
今回は、銘柄数関係なくポートフォリオの最適化をおこないます。
ポートフォリオの最適化をおこなうことで、しっかりとしたロジックを持って投資をおこなうことができるようになります。
ポートフォリオ最適化は主に2種類あり、
- 「リスク最小化」
- 「効率最大化」
があります。
①「リスク最小化」は、リターンが一番予想通りにいくための投資比率を求めていきます。
これを求めることで、リスクを分散し安定した収益を得る投資投資戦略を立てることができます!
②「効率最大化」は、リターン÷リスクの値が最も大きい投資比率を求めていきます。
これを求めることで、投資対効果が最も高い投資投資戦略を立てることができます!
今回の学習は、金融機関でも頻繫に行われる分析ばかりですので是非マスターしましょう!
それでは一緒に学んでいきましょう!!
目次
Pythonでリスク最小化の組み合わせを求めよう

前回の記事で、複数銘柄でポートフォリオを組むことがリスクを減らすことになる、ということを学びました。
それを踏まえ今回は、自分で銘柄数を設定しポートフォリオ戦略を立てる、といったことをしていきます。
この章では、ポートフォリオのリスク最小化の組み合わせを求めていきます。
ポートフォリオのリスク最小化を求めることで、一番予想通りにリターンを得る可能性が高くなります。
これにより、資産を守りつつ安定した収益を得る投資戦略を考えることができるようになります!
コードファイルの雛形をダウンロードされたい方は、下記のLINE@にて「python」とキーワードをお送りください。

求めたい証券の数や数値を設定する
まずはじめに、求めたい証券の数や数値を適当に決めます。
今回は、銘柄数を5つに設定し、ポートフォリオを組んでいきます。

分散共分散行列の表を作成する
続いて、分散共分散行列の表を作成していきます。
この表は、リスクの最小化を求める計算のときに用いられます。


分散共分散行列の表が作成されました。
リスク最小化を求める
リスク最小化を求める準備ができたところで、いよいよ分析していきます!
今回は以下のライブラリをインポートし、分析に入ります。

あまりよく見られないpyportfoliooptライブラリだけ説明します。
ポートフォリオの最適化を行うことに特化したファイナンス系のライブラリ。
公式ドキュメントはこちら→ pyportfolioopt
インポートができたところで、リスク最小化を求めていきます!
下記のようなコードを書き、pyportfoliooptライブラリのリスク最小化の計算が使えるようにします!

そして、リスク最小化の組み合わせを求めます!

結果より、証券1は約24%、証券2は約3%…とリスク最小化をするための投資比率が求められたことがわかります。
加えて、確認としてリターンがプラスである前提でリスク最小化の組み合わせも求めます。
理由としては、第1回でも説明しましたが、リスクは損失を表すものではないので、リターンがマイナスでもリスク最小化になることがあり得るからです。
下記のようなコードを書き、リターンが0.1%以上のリスク最小化の組み合わせを求めます。

結果をみると、確認前後のリスク最小化の比率が同じなので、リターンがプラスでリスク最小化を実現していることがわかります!
(adsbygoogle = window.adsbygoogle || []).push({});
Pythonで効率最大化の組み合わせを求めよう
先ほど、リスク最小化のポートフォリオを求めることが出来ましたが、実は他にも、効率の面で最適化を図ることができます。
この効率面での最適化は、実は投資の世界では「最適ポートフォリオ」と呼ばれています。
それでは、効率面での最適化をする最適ポートフォリオとはなにか、どういったことをすれば求まるのかみていきましょう!
最適ポートフォリオとは
最適ポートフォリオの説明は以下になります。
今まで、リスク最小化をするためのポートフォリオの最適化をしていきましたが、投資の世界の最適ポートフォリオは「効率性」というわけです!
補足として、文章だけでなく図も用いて最適ポートフォリオを説明します。

基本的に投資家は、同じリターンならリターンがより小さいもの、同じリスクならよりリターンが大きいものを選ぶと考えられます。
その中で、同じリスクの中で図のようにリターンが大きい部分を「効率的フロンティア」といいます。
同じリターンの中で最もリスクが小さいもの、同じリスクの中で最もリターンが大きいもの組み合わせの集合。 この効率的フロンティアの中で、もっともリターン÷リスクの値が最大なモノがもっとも効率が良い最適ポートフォリオとされています。 ここでは、最適ポートフォリオを求める上で重要な値であるシャープレシオについて説明します。 先ほど話した、リターン÷リスクの値がまさにシャープレシオになります。 シャープレシオの計算式は以下の通りです。 =(ポートフォリオのリターン – リスクフリーレート)/リスクの標準偏差 上の式で、リスクフリーレートと呼ばれる、無リスク資産(現金預金などの安全資産)の収益率が引かれています。 理由としては、無リスク資産をポートフォリオに組み入れるとリスクが減少しますが、その分収益率の計算でも無リスク資産の収益率を引く必要があるからです。 現実世界の投資は、預金や国債などの無リスク資産の投資が存在するのでこういった計算方法になっています。 しかし今回は、株式といったリスク資産のみでポートフォリオを組んでいるので、リスクフリーレートを考慮せず計算します。 下記のようなコードを書き、効率最大化の組み合わせ(最適ポートフォリオ)を求めます。 結果より、証券1は約38%、証券2は約12%…と効率最大化をするための投資比率が求められたことがわかります。 第3回では、 といったことをレクチャーしました! 次回は、現実の株価を使いポートフォリオを組んでいきます! 今まで学んだことを活かし、ポートフォリオ理論を実践していきます! 今回のシリーズを通し、最終的に自分なりの株式投資のポートフォリオを組んでいきましょう! 記事にでてくるコードはLINE@にて配布をしております! シャープレシオとは
効率最大化の組み合わせを求める
まとめ
ラインのメッセージ欄に「python」とお送りいただければ、ダウンロードリンクを送付いたします!