Pythonによるポートフォリオ理論④ 株式投資の資産管理をレクチャー!



実際に銘柄情報を取得してポートフォリオを組みたいけど、どうすればいいかな。

この記事では、Pythonや投資初心者でもできるように、株式投資の資産管理のひとつである「ポートフォリオ理論」をレクチャーしていきます!

記事にでてくるコードはLINE@にて配布をしております。
メッセージ欄に「python」とお送りいただければダウンロードできます。

LINE@はコチラをクリック

本記事は、全4回に渡って掲載される「Pythonによるポートフォリオ理論 株式投資の資産管理をレクチャー! 」シリーズの第4回になります!

この記事を読むとわかること
  • Pythonで現実の株価を取得し分析をする準備をおこなう
  • Pythonでの実際の銘柄のポートフォリオの最適化をする

今回は、実際に現実の株価から銘柄を抽出し、ポートフォリオの最適化をおこないます。

実際の銘柄からポートフォリオの最適化をおこなうことで、実践的な投資戦略をおこなうことができるようになります。

今回の学習は、今まで学んできたポートフォリオ理論のまとめです!

是非マスターして資産管理を学んでいきましょう!!

Pythonによるポートフォリオ理論① 株式投資の資産管理をレクチャー!

Pythonで現実の株価を取得し、分析をする準備をおこなおう!

モニター チャート

まずは、現実の株価を取得し、複数の銘柄でポートフォリオを組み、分析をする準備をしていきます!

現実の株価から銘柄を組むことで、ポートフォリオ理論を実践することができます!

コードファイルの雛形をダウンロードされたい方は、下記のLINE@にて「python」とキーワードをお送りください。

LINE@はコチラをクリック

why
ダウンロードリンクにある、第4回.ipynbというファイルをダウンロードしてね
ファイル python

Yahoo Finance US からデータを取得する

まずはじめに、以下のライブラリをインポートします。

あまりよく見られないpandas_datareaderライブラリだけ説明します。

pandas_datareaderとは

Web上の様々なソースに簡単にアクセスして、株価や為替レート、人口などのデータをDataFrame型として取得できるライブラリ。

公式ドキュメントはこちら→   pandas_datareader

python コード

インポートができたところで、Yahoo Finance USから株価を取得していきます!

東京証券取引所の銘柄コードを入れることで、その企業の株価を取得するプログラムを作成しました。

今回は、「サイバーエージェント」「LINE」「楽天」「ソフトバンク」の4社の銘柄の株価を取得していきます!

python コード

matplotlibで株価を描画する

続いて、株価を取得したか確認するために、matplotlibライブラリを利用し株価を描画します。

下記のような描画を書き、株価を描画します。

python コード

株価を描画させることができました!

分散共分散行列の表を求める

続いて、第3回と同様に、分散共分散行列の表を求めます。

Pythonによるポートフォリオ理論③ 株式投資の資産管理をレクチャー!

分散共分散行列の表は、最適化をする際の計算に用いられます。

まず、下記のようなコードを書き、リターンを求めます。

python コード

その後、下記のようなコードを書き、分散共分散行列の表(リスクの相互関係の表)を求めます。

python コード

ポートフォリオを最適化する準備ができました!



Pythonを用いて、実際の銘柄のポートフォリオの最適化を求めよう!

準備ができたところで、実際の銘柄のポートフォリオの最適化を求めていきます!

第3回と同様に「リスク最小化」「効率最大化(最適ポートフォリオ)」の投資比率を求めていきます!

リスク最小化の投資比率を求める

pyportfoliooptライブラリをインポートし、ポートフォリオのリスク最小化を求めていきます!

python コード

第3回と同様に、下記のようなコードを書き、リスク最小化を求めます!

python コード

画像でも分かるようにリスク最小化の投資比率は以下のようになりました!

[('4751.T', 0.12611), ('3938.T', 0.36924), ('9984.T', 0.12179), ('4755.T', 0.38286)]

この場合、もし100万円を投資するとしたら、

  • 4751(サイバーエージェント)に12.6万円
  • 3938(LINE)に36.9万円
  • 9984(ソフトバンクグループ)に12.6万円
  • 4755(楽天)に38.2万円

を投資するイメージです。

もちろん、株式は 最低の取引数量が決められているのでイメージのような金額の投資は厳しいですが、

その場合は投資金額を調整したりと自分なりにポートフォリオ理論を活用していきましょう!

効率最大化(最適ポートフォリオ)の投資比率を求める

続いて、効率最大化(最適ポートフォリオ)の投資比率を求めていきます!

第3回と同様に、下記のようなコードを書き、効率最大化を求めます!

python コード

画像でも分かるようにリスク最小化の投資比率は以下のようになりました!

[('4751.T', 0.41345), ('3938.T', 0.33875), ('9984.T', 0.2478), ('4755.T', 0.0)]

この場合、もし100万円を投資するとしたら、

  • 4751(サイバーエージェント)に41.3万円
  • 3938(LINE)に33.9万円
  • 9984(ソフトバンクグループ)に24.8万円
  • 4755(楽天)に0.0万円(投資をしない)

を投資するイメージです。

もちろん、株式は 最低の取引数量が決められているのでイメージのような金額の投資は厳しいですが、

その場合は投資金額を調整したりと自分なりにポートフォリオ理論を活用していきましょう!



おまけ-CAPM(資本資産価格モデル)について

最後に、ポートフォリオ理論の中でメジャーとされている考え方であるCAPMについて説明します。

CAPMは、フィナンシャルプランナーの試験問題にも出たりと、かなりお金に関する教養の一つとして覚えて損はないので、是非ともここで抑えましょう!

CAPMとは

CAPMの説明は以下の通りです。
CAPMとは

資産のリターンは市場リスクファクターのみで説明されるというモデル

市場リスクファクターとは、株式や為替の売買が行われている証券市場に投資する際、分散投資によって消去できないリスク要因のことを指します。

例えば、ある企業の経営者の解雇や、あるメーカーの商品の爆発人気、といった企業内ごとのリスクは、ポートフォリオを組むことでリスクを分散することができます。

しかし、コロナの流行、トランプ大統領のツイートのような、災害・政治・経済といった影響によるリスクは、全ての企業の株価に変動するため避けることが不可能です。

このようなことを踏まえ、個別銘柄が企業全体が負う市場リスクにどれだけ影響されやすいか、数式で表現したのがCAPMです。

why
分散投資をしても減らすことができないリスクをCAPMでは考えるんだね!

CAPMの課題

市場リスクを加味した上で個別リターンを求めようとしたCAPMですが、現実の世界ではあまり当てはまりがよくないのが現状です。

例えば、「なんとなく上がりそうだから」といった人間の主観の判断であったり、業種ごとでの独特な値動きの特性など、市場リスク以外の要因が多く存在しCAPMでは不十分ということなのです。

これを踏まえ、「CAPM」といった伝統的なファイナンスの考え方に対し、最近では行動ファイナンスといった今までのファイナンスの考え方を変えていく取り組みなどがされています。

why
今までのファイナンスの考え方が時代とともに変化していっているんだね!



まとめ

4回では、

  • Pythonで現実の株価を取得し分析をする準備をおこなう
  • Pythonでの実際の銘柄のポートフォリオの最適化をする

といったことをレクチャーしました!

自分なりのポートフォリオを組み、投資戦略に活かせればと思います!

今まで読んでくださりありがとうございました!

記事にでてくるコードはLINE@にて配布をしております!
ラインのメッセージ欄に「python」とお送りいただければ、ダウンロードリンクを送付いたします!

 

コード配布はLINE@にて!!
  友だち追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA