Win11 WSL2 Ubuntu Python yfinance

為替情報取得ファイル

ここまで yfinance の基本的なことを説明してきました。
引き続き、豪ドル/日本円為替情報取得ファイル
yfin_audjp_test.py
を作成していきます。

  1. 作法通り始める

    python3 のインストール場所を示して、文字コードも明らかにしておきます。
    yfinance も import しておきます。
    #!/home/yamada/miniconda3/bin/python3
    #coding: utf-8
    import yfinance as yf
    import pandas as pd
    データ表示、保存のため pandas も import しました。

  2. オプション設定

    オプション設定をします。 豪ドル/日本円為替情報を取得します。
    pair = "AUDJPY=X"
    取得期間は1か月とします。
    period = "1mo"
    取得期間中の足の長さは日足とします。
    interval = "1d"

  3. download モジュール

    オプション条件を( )内に記述して download モジュールを実行します。
    df = yf.download(pair, period='1mo', interval='1d', auto_adjust=True)
    auto_adjust=True
    は本来いらないのですが、ないとエラーがでますので書きます。
    auto_adjust=bool
    でも結果は同じです。
    auto_adjust は株価の取得の時には有用なようです。
    そもそも、調整後終値(Adj Close)は、株式分割が行われた時に、 その影響を考慮した株価なので為替データでは不要です。

  4. データ確認

    ダウンロードしたデータを確認します。
    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 に表示される日時はどんなものか調査します。

  1. 日本標準時(JST)現在時刻

    ダウンロードした時の日本標準時(JST)現在時刻を取得します。
    import datetime
    print(datetime.datetime.now())

  2. 15分足取得

    period='1d', interval='15m',
    として15分足を1日分取得します。
    df15 = yf.download(pair, period='1d', interval='15m', auto_adjust=True)

  3. 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時間足為替情報取得ファイルを作成していきます。


  • 4時間足為替情報取得ファイル作成 に進む
  • yfinance 概要 に戻る
  • 70VPS に戻る