プログラミングと投資

テクノロジーを使って、投資の分析をしています。

Python

yfinance タイムゾーン情報とサマータイムについて

yfinanceのデータをダウンロードして、日付と日付の間の日数を求めると、誤差が出ることがありました。 これから、その詳細を記載していきます。 事象・原因 yfinanceでダウンロードしたデータの日時は、タイムゾーン情報が付与されていて、通常時とサマータ…

PyCharm ターミナルでcmd.exeを使う方法(Windows)

PyCharmのターミナルで、Windowsのコマンドプロンプト(cmd.exe)を使う方法を書いていきます。 設定方法 PyCharmの設定から「ツール > ターミナル」を開いて、シェルパスで「cmd.exe」を選択します。 この設定を保存すると、コマンドプロンプトが起動される…

Python yfinance ティッカーの一覧(指数, ETF等)

Python の yfinance で指定できるティッカーをまとめてみました。Yahoo Finance でも参照できます。 ※ 通貨は基本的にUSドルで、為替だけ日本円です。 株価指数 Ticker 概要 ^DJI ダウ平均(ダウ30) ^SPX S&P500 ^NDX NASDAQ100 ^SOX SOX ^NYFANG FANG+ ※ …

PyCharm 最新版のPowerShellを起動する方法

PyCharmのターミナルで、最新版のPowerShell(pwsh)を起動する方法を書いていきます。 起動する方法 PyCharmの設定から「ツール > ターミナル」を開いて、シェルパスで「pwsh.exe」を選択します。 この設定を保存すると、最新版のPowerShellが起動されるよ…

yfinance エラー対応方法「Too Many Requests. Rate limited.」

yfinanceを使っていたら、エラー「YFRateLimitError: Too Many Requests. Rate limited.」が出力されました。 この記事では、エラーの対応方法と詳細を記載していきます。 対応方法 yfinanceを最新版にアップデートすると、エラーが出力されなくなりました。…

Python yfinance 日次の収益率を計算する方法(株式, インデックス)

Python の yfinance を使って、日次の収益率を計算する方法を書いていきます。 注意事項 配当は考慮していません。 終値で収益率を計算しています。 浮動小数点演算の誤差があります。 コード例 以下のコードは、S&P500(^SPX)の収益率を計算して、CSVに出…

Python 複数の戻り値を返却する方法(タプルを使用)

Pythonで、複数の戻り値(タプル)を返却する方法を書いていきます。 方法 タプルを使うと、複数の値を返却することができます。 def get_xy() -> tuple[int, int]: return 1, 2 戻り値を受け取る方法 変数をカンマ区切りで定義して受け取ることができます。…

PyCharm 開発環境の復元(.venv, requirements.txt)

PyCharm でプロジェクトを開いて、開発環境を復元する方法を書いていきます。 バージョン管理システムからソースを取得して、開発を始める前に行う作業のイメージです。 作業の流れ 大まかな手順は以下の通りです。 仮想環境の作成(.venv) パッケージのイ…

PyCharm パッケージを再インストールする方法(requirements.txt)

PyCharm で、パッケージを再インストールする方法を記載していきます。 前提 今回の記事では、パッケージ管理用のファイル「requirements.txt」を使います。パッケージをインストールしたら、定期的に以下のコマンドで出力したほうが良さそうです。 pip free…

PyCharm ローカルインタープリターを追加する方法

PyCharmで、Pythonインタプリタ―(ローカルインタープリター)を追加する方法を書いていきます。 前提 .venv が存在しないプロジェクトを対象としています。 追加用のダイアログを開く PyCharmの設定を開いて、左袖の「プロジェクト > Python インタープリタ…

PyCharm ターミナルのPYTHONPATHを設定する方法

PyCharmで、ターミナルのPYTHONPATHを設定する方法を書いていきます。 環境変数の編集を開く PyCharmの設定を開いて、左袖の「ツール > ターミナル」を選択します。 それから、プロジェクト設定の「環境変数の編集アイコン」をクリックします。上の画像だと…

PyCharm 起動時にプロジェクトを選択する方法(ようこそ画面)

PyCharmの起動時に、どのプロジェクトを開くか選択する方法を書いていきます。 選択する方法 起動時に「ようこそ画面(Welcome画面)」を表示すると、どのプロジェクトを開くか選択することができます。 以下に、ようこそ画面を有効にする方法を書いていきま…

PyCharm 複数のテストを実行する方法(複数のスクリプト)

PyCharm で、複数のテストスクリプトを実行するする方法を書いていきます。 実行方法 スクリプトが保存されているディレクトリを右クリックして、テストを実行します。 これで、ディレクトリ内のテストが全て実行されます。 サブディレクトリについて 上の方…

PyCharm pytestを実行する方法(パッケージのインストール)

PyCharm のプロジェクトで、pytestを実行する方法を書いていきます。 目次 補足 Pythonパッケージの表示 pytestのインストール 動作確認 インストール前 補足 プロジェクトに pytestのパッケージをインストールすると、テストを実行することができました。 …

Python 日付でデータを抽出する方法(DataFrame)

Python の DataFrame で、日付を使ってデータを抽出する方法を書いていきます。 抽出方法 インデックスがタイムスタンプ(DatetimeIndex)の場合、以下の方法で抽出できます。 df = df.loc['2025-03-01':'2025-03-31'] 上のコードだと、3/1 と 3/31 を含む期…

Python ダウ平均の構成銘柄を取得する方法

Python を使って、ダウ平均株価の構成銘柄(ティッカーなどの情報)を取得する方法を書いていきます。 ※ ダウ平均株価は、ダウ・ジョーンズ工業株価平均、Dow 30、NYダウと呼ばれることもあります。 データについて 今回は、英語版 Wikipedia のデータを使用…

Python 投資の収益率を計算する方法(株価指数, 投資信託など)

Pythonを使って、投資の収益率を算出する方法を書いていきます。株式インデックス、投資信託などに対応しています。 計算式 配当や分配を考慮しない場合、以下の計算式で収益率を求めることができます。 終了時の価格 ÷ 開始時の価格 - 1 株式インデックスの…

Python yfinance 月間収益率を計算する方法(株式, インデックス)

Python の yfinance を使って、月間収益率(月末の月初来)を計算する方法を書いていきます。 注意事項 配当は考慮していません。 月末終値で収益率を計算しています。 浮動小数点演算の誤差があります。 コード例 以下のコードは、S&P500(^SPX)の月間収益…

Python yfinance 年間収益率を計算する方法(株式, インデックス)

Python の yfinance を使って、年間収益率(年末の年初来)を計算する方法を書いていきます。 注意事項 配当は考慮していません。 年末終値で収益率を計算しています。 浮動小数点演算の誤差があります。 コード例 以下のコードは、S&P500(^SPX)の年間収益…

Python 月末のデータを抽出する方法(営業日も考慮)

Python の DataFrame で、各月末の行を抽出する方法を書いていきます。 目次 データについて インデックスで抽出する方法 列名を指定して抽出する方法 インデックスで抽出する例 列名を指定して抽出する例 データについて yfinance のデータで動作確認をして…

Python グラフのフォントを指定する方法(日本語文字化け対応)

Python の matplotlib でグラフを描画する際に、フォントを指定する方法を書いていきます。 目次 指定方法 指定しなかった場合 指定した場合 コード例 指定方法 rcParams を使って、フォントを指定することができます。Windows だと、下のコードで「游ゴシッ…

Python S&P500の構成銘柄を取得する方法

Python を使って、S&P500の構成銘柄(ティッカーなどの情報)を取得する方法を書いていきます。 データについて 今回は、英語版 Wikipedia のデータを使用しています。 List of S&P 500 companies - Wikipedia 上のテーブルを取得して、CSVに出力するイメー…

Python NASDAQ100の構成銘柄を取得する方法

Python を使って、NASDAQ100の構成銘柄(ティッカーなどの情報)を取得する方法を書いていきます。 データについて 今回は、英語版 Wikipedia のデータを使用しています。 NASDAQ100 - Wikipedia Components のテーブルを取得して、CSVに出力するイメージで…

Python yfinanceをインストールする方法

yfinanceをインストールする方法を書いていきます。 補足 事前に Anaconda などをインストールしておくと良い気がしています。 Anaconda Windowsにインストールする方法 yfinance を使う場合、pandas なども使うことになると思います。Anaconda をインストー…

Pandas.DataFrame データをCSVに出力する方法

pandas.DataFrame.to_csv を使って、データをCSVに出力する方法を書いていきます。 コード例 以下のコードは、DataFrameの内容をCSVに出力する例です。 import pandas as pd # 出力するデータを用意(HTMLのテーブル) url = 'https://en.wikipedia.org/wiki…

Pandas HTMLのテーブルを読み込む方法(DataFrame取得)

pandas.read_html を使って、HTMLのテーブルを読み込み、DataFrameを取得する方法を書いていきます。 コード例 以下のコードは、Wikipediaのテーブルを読み込んで、DataFrameを取得する例です。 import pandas as pd # Webページのテーブルを読み込む url = …

Python ファイルを1行ずつ読み込む方法

Pythonで、ファイルを1行ずつ読み込む方法を書いていきます。 コード例 import os # ファイル読み込み with open('tmp.txt', encoding='utf-8') as f: for line in f: # 改行コードを削除して出力 l = line.rstrip(os.linesep) print(l) printで出力するため…

Python DataFrame作成時にカラム指定

pandas.DataFrame を作成する時に、カラムを指定する方法を書いていきます。また、データを追加する方法も記載しています。 コード例 import pandas as pd # カラム指定でDF作成 cols = ['col1', 'col2'] df = pd.DataFrame(columns=cols) # 行を追加 df.loc…

Python 相関係数を算出する方法

Python で相関係数を計算する方法を書いていきます。 目次 コード例 動作確認 補足 1. コード例 Pandas の DataFrame を使って、相関係数を算出する方法は以下の通りです。 test_corr.py import pandas as pd # ETFの収益率を用意 df = pd.DataFrame() df["Q…

Anaconda Windowsにインストールする方法

Python の Anaconda を、Windows にインストールする手順を書いていきます。 目次 ダウンロード インストール 確認 1. ダウンロード 公式のダウンロードページ で、メールアドレスを入力して「Submit」をクリックします。 画面が遷移したら、インストーラー…