Win11 WSL2 Ubuntu Python yfinance
為替情報取得ファイル
ここまで yfinance の基本的なことを説明してきました。
引き続き、豪ドル/日本円為替情報取得ファイル
yfin_audjp_test.py
を作成していきます。
- 作法通り始める
python3 のインストール場所を示して、文字コードも明らかにしておきます。
yfinance も import しておきます。
#!/home/yamada/miniconda3/bin/python3
#coding: utf-8
import yfinance as yf
import pandas as pd
データ表示、保存のため pandas も import しました。 - オプション設定
オプション設定をします。 豪ドル/日本円為替情報を取得します。
pair = "AUDJPY=X"
取得期間は1か月とします。
period = "1mo"
取得期間中の足の長さは日足とします。
interval = "1d" - download モジュール
オプション条件を( )内に記述して download モジュールを実行します。
df = yf.download(pair, period='1mo', interval='1d', auto_adjust=True)
auto_adjust=True
は本来いらないのですが、ないとエラーがでますので書きます。
auto_adjust=bool
でも結果は同じです。
auto_adjust は株価の取得の時には有用なようです。
そもそも、調整後終値(Adj Close)は、株式分割が行われた時に、 その影響を考慮した株価なので為替データでは不要です。 - データ確認
ダウンロードしたデータを確認します。
print(df.tail(10))
pandas の .tail()メソッドを使用します。
デフォルト引数に5が設定されているので、引数を設定しなくてもそのまま動き 最後から5行分のデータを見ることができます。
pandas のインストールが必要です。
まだの方は
$ conda install pandas
でインストールしてください。
為替情報取得ファイルまとめ
以上をまとめるとファイル内容は以下のようになります。
#!/home/yamada/miniconda3/bin/python3 #coding: utf-8 import yfinance as yf import pandas as pd pair = "AUDJPY=X" df = yf.download(pair, period='1mo', interval='1d', auto_adjust=True) print(df.tail(10))
上記のファイル内容の
#!/home/yamada/miniconda3/bin/python3
~・・・~
print(df.head())
までをすべてをコピ-し、Python ファイルを作成します。
自分の PC Windows で TeraPad 等を使用して作成できたら
\\wsl.localhost\Ubuntu-22.04\home\yamada\public_html
に保存します。
ファイル名は
yfin_audjp_test.py
とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
為替情報取得ファイル実行確認
yfin_audjp_test.py ファイルを実行確認します。
WSL2 Ubuntu のターミナルを立ち上げます。
立ち上げ方がわからない方は
Ubuntu の起動
を見てください。
yamada@yama:~$ conda activate
として conda 環境を有効にします。
public_html/yfin_audjp_test.py ファイルを実行します。
(base) yamada@yama:~$ python3 public_html/yfin_audjp_test.py
[結果]
(base) yasuhiro@ysenba:~$ python3 public_html/yfin_audjp_test.py [*********************100%***********************] 1 of 1 completed Price Close High Low Open Volume Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Date 2025-07-16 96.949997 97.307999 96.209000 96.949997 0 2025-07-17 96.543999 96.758003 95.998001 96.543999 0 2025-07-18 96.449997 96.962997 96.397003 96.449997 0 2025-07-21 96.653000 96.667999 96.129997 96.653000 0 2025-07-22 96.110001 96.379997 96.023003 96.057999 0
なんと Close と Open の値が最後の日を除いて皆同じ値です。
調べてみるとどうもこれは 2024年5月には指摘されているようで、未だに改善されていません。
hachisue 氏が 焼けのつぶやき の中でもつぶやいています。
yFinance で 為替データの "Open"と"Close" が同一の値で問題の件
yFinance で 為替データの "Open"と"Close" が同一な問題[続き]
yFinance 調査
豪ドル/円為替情報日足の取得は上手くいきませんでした。
仕方がないので yFinance がどう動いているのか調査してみました。
まずは Date に表示される日時はどんなものか調査します。
- 日本標準時(JST)現在時刻
ダウンロードした時の日本標準時(JST)現在時刻を取得します。
import datetime
print(datetime.datetime.now())
- 15分足取得
period='1d', interval='15m',
として15分足を1日分取得します。
df15 = yf.download(pair, period='1d', interval='15m', auto_adjust=True) - 4時間足取得
period='10d', interval='4h',
として4時間足を10日分取得します。
df = yf.download(pair, period='10d', interval='4h', auto_adjust=True)
以上をまとめると
#!/home/yasuhiro/miniconda3/bin/python3 #coding: utf-8 import yfinance as yf import pandas as pd import datetime pair='AUDJPY=X' print("日本標準時(JST)現在時刻") print(datetime.datetime.now()) print("15分足") df15 = yf.download(pair, period='1d', interval='15m', auto_adjust=True) print(df15.tail()) print("4時間足") df = yf.download(pair, period='10d', interval='4h', auto_adjust=True) print(df.tail())
これを
yfin_audjp_test1.py
とし実行すると以下のようになります。
(base) yasuhiro@ysenba:~$ python3 public_html/yfin_audjp_test1.py 日本標準時(JST)現在時刻 2025-07-23 10:48:01.329285 15分足 [*********************100%***********************] 1 of 1 completed Price Close High Low Open Volume Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Datetime 2025-07-23 00:45:00+00:00 96.023003 96.067001 95.889000 96.044998 0 2025-07-23 01:00:00+00:00 96.127998 96.197998 95.985001 96.021004 0 2025-07-23 01:15:00+00:00 96.084000 96.174004 96.056000 96.125000 0 2025-07-23 01:30:00+00:00 96.163002 96.186996 96.045998 96.084000 0 2025-07-23 01:45:00+00:00 96.129997 96.175003 96.110001 96.168999 0 4時間足 [*********************100%***********************] 1 of 1 completed Price Close High Low Open Volume Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Datetime 2025-07-22 07:00:00+00:00 96.053001 96.379997 96.028999 96.238998 0 2025-07-22 11:00:00+00:00 95.858002 96.088997 95.624001 96.055000 0 2025-07-22 15:00:00+00:00 96.005997 96.018997 95.830002 95.862999 0 2025-07-22 19:00:00+00:00 96.103996 96.154999 95.903000 96.000000 0 2025-07-22 23:00:00+00:00 96.129997 96.277000 95.837997 96.094002 0
yFinance 日時調査結果
日本とニューヨーク(夏時間)との時差は 13時間です。
日本の方が 13時間進んでいます。
でも15分足の取得結果をみると9時間しか進んでいません。
一方、世界時間(UTC)と日本時間の時差は9時間です。
日本の方が9時間進んでいます。
よって yfinance で取得した日時データには世界時間が入っていると考えました。
世界時間とニューヨーク(夏時間)との時差は4時間です。
ニューヨーク(夏)の方が4時間進んでいます。
世界時間とニューヨーク(冬時間)との時差は4時間です。
わかったことをまとめると、
● 取得した日時データに9時間をプラスすると日本時間になる
① 夏時間
取得した日時データに4時間をプラスするとニューヨーク時間になる
② 冬時間
取得した日時データに5時間をプラスするとニューヨーク時間になる
[補足]2025年サマータイム情報
サマータイム開始:2025年3月9日(日)2時0分
サマータイム終了:2025年11月2日(日)2時0分
次回サマータイム開始:2026年3月8日(日)2時0分
ここまでで、yFinance 日時調査が終わりました。
引き続き、4時間足為替情報取得ファイルを作成していきます。