pyfolioで米国株ETFの分析をWebアプリでできるようにしてみた!月ごとのリターンの分布やドローダウンの時期・深さなど可視化できます!

スポンサーリンク
投資

pyfolioはQuantopian Inc.によって開発された、金融ポートフォリオのパフォーマンスとリスクを分析するためのPythonライブラリになります。

高値更新からのドローダウンを出してみてたり、月ごと、年毎の成績を出したり、期間中のブレを箱ひげ図で表示できたりできます。グラフィカルにも綺麗ですし、分析している気持になります。

分析できる銘柄群

今回分析できる銘柄群は以下の通りです。

米国株
SPY:S&P500連動ETF
QQQ : NASDAQ100指数連動ETF
DIA : ダウ指数連動ETF
IWM : 米国の小型株で構成される指数(ラッセル2000)連動ETF
ARKK : キャシー・ウッド氏率いるアーク・インベストメント・マネジメントのイノベーションに焦点を当てたETF

債券
SHY : 米国国債 1-3年 ETF
IEF : 米国国債 7-10年 ETF
TLT : 米国国債 20年超 ETF

コモディティ
DBC : インベスコ DB コモディティ インデックス トラッキング ファンド
USO : WTI原油連動ETF
GLD : 金地金との連動ETF
SLV : 銀ETF

新興国
BKF : BRIC ETF

通貨
BTC-USD : ビットコイン(BTC/USD)
ETH-USD : イーサリアム(ETH/USD)
JPY=X : 円ドル

指数
^SOX : SOX指数(フィラデルフィア半導体株指数)
^N225 : 日経225

です。

実際の情報については画像を見てもらうのが早いと思います。

実際のアプリ

以下のようになります。縦に長いです。

以前pyfolioについて書いた記事は以下の物になります。

Google Colabo,Windowsの最新の環境での動作

pip install pyfolio-reloaded

などで最新の修正版をインストールしてあげると動くと思います。

エラーについて

AttributeError: 'numpy.int64' object has no attribute 'to_pydatetime'

ドローダウンを計測する部分で、時間の取り扱いなどでエラーが起こる場合があります。その場合は

site-packages/pyfolio/timeseries.py

の893行目を以下のように修正すると動く場合があります。

valley = underwater.index[np.argmin(underwater)] # end of the period

参考にさせていただいたサイト

GitHub - quantopian/pyfolio: Portfolio and risk analytics in Python
Portfolio and risk analytics in Python. Contribute to quantopian/pyfolio development by creating an account on GitHub.
AttributeError: 'numpy.int64' object has no attribute 'to_pydatetime'
I am new to Python. I have started to use pyfolio library and when I typed the following code pf.create_returns_tear_sheet(data,benchmark_rets=None) An error n...

ディスクレーマー・投資に関する免責事項

情報の提供・作業代行を目的としており、投資勧誘を目的とするものではありません。

---

関連記事を紹介します。

Pytho,投資関係に関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
米国債のゼロクーポン債STRIPSについてのメモ
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
米国株のティッカー(Symbol)のスクレイピングによる取得、APIによるヒストリカルデータやファンダメンタルズデータ取得について【コピペで動く!】Python,Quandl,無料枠あり
Google ColabでYouTube動画を開始・終了の時間を指定してPythonでダウンロード(音声・動画両方対応)【コピペで動く!】
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック

コメント