先日過去記事を読んで頂いたブログ読者から、Twitter経由で下記のような質問を頂きました。
@25_500com ブログ参考になりました。日本の全ての上場会社の共分散マトリクスを作り、既存ポートフォリオに銘柄レコメンドするシステムを作りたいのですが、共分散マトリクスを作るのは難しいでしょうか?
— 熊沢 拓 (@kumataku1) 2016, 1月 20
銘柄レコメンドシステムを作るなど、面白そうなことをやられている方にもブログ読んで頂いていて、嬉しいかぎりです。
さて今回は、自分が銘柄レコメンドシステムを作るであれば、ざっとこんな手順で作ろう!というのを整理してみましたので、紹介します。
銘柄レコメンドシステム仕様
まず始めに、どのような形で、銘柄レコメンドを行っていくかを考えます。
大きく下記3つのフェーズに分け、仕様を考えてみます。
インプット:対象者が既に保有している銘柄、リスク選好度orリスク許容度
プロセス:ソルバーによるシャープ・レシオの最大化
アウトプット:オススメ銘柄(1社〜複数社)の提案
インプットフェーズ
システム作成にあたりまず必要なのは、銘柄レコメンドを受けたい対象者が持つ基本情報です。
対象者がどのような銘柄を保有しているかを入力してもらい、現時点での見込みリターンとリスクを把握します。
またその人がどの程度のリスクまで取れるかを把握するため、アンケートを使いリスク選好度を知るか、一定期間における最大損失額(VaR:バリュー・アット・リスク)からリスク許容度を把握し、ポートフォリオにおける最適なリスク範囲を求めます。
プロセスフェーズ
条件の整理
次に、得られた基本情報から、銘柄レコメンドするプロセスを考えます。
制約条件としてリスク許容度などから求めたポートフォリオの標準偏差を使い、目的関数としてシャープレシオを最大化するポートフォリオとなるよう、どの銘柄を追加すればいいかを提案するプロセスとなります。
シャープレシオレシオとは、(ポートフォリオの収益率-無リスク資産の収益率)÷ポートフォリオのリスクです。
先日の記事でも紹介しましたが、分散投資の効果として共分散が発生し、シャープレシオの分母であるリスクを押し下げることができます。
例えば3銘柄分散時のポートフォリオのリスクは下記となり、
そのときの共分散は下記となります。
ソルバーの設定
レコメンド方法ですが、ソルバーを使い、目的関数と制約条件を設定して最適解を計算することになります。
目的関数:
- 最大値=シャープ・レシオ
制約条件:
- 銘柄追加後のポートフォリオ標準偏差<=リスク許容度
- 追加銘柄数=1,2,3など、任意の数
システムの自動化
マーケットが日々動いていることを考えると、上場企業4000社のリターン・リスクを日々アップデートする必要があります。
これらを毎日自動計算するには、岡三RSSなどツールを使い前日比情報を収集するのが良いと思います。
問題点・課題
ざっくりと銘柄レコメンドシステムの内容を考えてみましたが、出てきたアウトプットについてはやや問題ありと思います。
まず一つは、ヒストリカルデータという過去の実績をベースに銘柄レコメンドすることになるので、将来も最適なポートフォリオになっているとは言えない点です。
またその瞬間はポートフォリオ最適化したとしても、最適なポートフォリオを維持するためには細かく銘柄入れ替えが必要であり、売買手数料がかさみリターンを押し下げることに陥りそうです。
ここはアクティブ運用とインデックス運用における、永遠の論争とも言えますが、是非@kumataku1さんには、こういった課題を解決できる、銘柄レコメンドシステムを作って頂きたいです!
コメント頂き、ありがとうございました。
最後までご覧頂きありがとうございました
このブログを書いているのはこんな人です。良かったらプロフィールをご覧くださいね。
会社員投資ブログは【こちら】
最新情報もSNSで配信中!
ブログ以外でも、
やっています。フォロー頂けると、最新情報やブログ非公開の話、オフ会情報などを受け取れます。ありがとうございました。
最新情報をお届けします
Twitter でkazuをフォローしよう!
Follow @25_500com