Win11 WSL2 Ubuntu Python yfinance
4時間足為替情報取得ファイル作成
ここまでで、yFinance 日時調査が終わりました。
引き続き、豪ドル/円 4時間足取得ファイルを作成していきます。
- 作法通り始める
python3 のインストール場所を示して、文字コードも明らかにしておきます。
yfinance も import しておきます。
#!/home/yamada/miniconda3/bin/python3
#coding: utf-8
import yfinance as yf
import pandas as pd
import datetime
from pandas.tseries.offsets import Hour
データ表示、保存のため pandas 及び、時刻シフトのため Hour も import しました。
print("日本標準時(JST)現在時刻")
print(datetime.datetime.now())
- オプション設定
オプション設定をします。 豪ドル/日本円為替情報を取得します。
pair = "AUDJPY=X"
取得期間は最大とします。
period = "max"
とすると730日までしかできないとエラーが出ます。
period='730d'
とします。
取得期間中の足の長さは4時間足とします。
interval = "4h" - download モジュール
オプション条件を( )内に記述して download モジュールを実行します。
df = yf.download(pair, period='730d', interval='4h', auto_adjust=True)
auto_adjust=True
は本来いらないのですが、ないとエラーがでますので書きます。
- Volume 列削除
Volume は必要ないので pandas で削除します。
df.drop(labels=['Volume'], axis=1, inplace=True)
axis=1 で列削除
inplace=True で直接データフレームを処理してくれます。 - 列 Close と 列 Open 入替
FX データは
Open High Low Close
の順に並んでいるのが一般的ですので
列 Close と 列 Open を入替えます。
df = df[['Open', 'High', 'Low', 'Close']]
次にカラムラベルをの小文字に変更します。
これは、4時間足から日足に変換するときに大文字が混在すると上手く変換できないためです。
df.columns = ['open', 'high', 'low', 'close']
- 4時間足一旦保存
この先で日時調整を行って行くのですが作成した4時間足を一旦保存しておきます。
df0 = df.copy()
print(df0.tail(20))
- 世界時(UTC)から日本時間へ変更
取得した日時データは世界時(UTC)となっていますのでこれを日本時間(JST)に変更します。
UTC と JST との時差は
(+9時間)[JST は UTC より9時間進んでいます]
df.index = df.index + Hour(9) - 必要に応じて4時間足データ保存
必要に応じて4時間足データ dfd を csv ファイルとして保存します。
ファイル置場、ファイル名は適当です。 df.to_csv('/home/yamsda/public_html/manep/yfin_audjp_4h.csv')
4時間足為替情報取得ファイル作成まとめ
以上をまとめるとファイル内容は以下のようになります。
#!/home/yamada/miniconda3/bin/python3 #coding: utf-8 import yfinance as yf import pandas as pd import datetime from pandas.tseries.offsets import Hour print("日本標準時(JST)現在時刻") print(datetime.datetime.now()) pair='AUDJPY=X' df = yf.download(pair, period='730d', interval='4h', auto_adjust=bool) # 4時間足の時 max 730d まで print('4時間足データ表示') print(df.tail()) print('Volume 削除') df.drop(labels=['Volume'], axis=1, inplace=True) print(df.tail()) print("列 Close と 列 Open を入替") df = df[['Open', 'High', 'Low', 'Close']] print(df.tail()) print("カラムラベルの変更") df.columns = ['open', 'high', 'low', 'close'] print(df.tail()) df0 = df.copy() print("df0 元の4h足 一旦保存") print(df0.tail()) # df.to_csv('/home/yasuhiro/public_html/manep/yfin_audjp_4h.csv') # 世界時(UTC)からの日本時間時差(+9時間)調整 df.index = df.index + Hour(9) print('9H shift') print(df.tail()) # df.to_csv('/home/yamada/public_html/manep/yfin_audjp_4h.csv')
上記のファイル内容の
#!/home/yamada/miniconda3/bin/python3
~・・・~
最後までをすべてをコピ-し、Python ファイルを作成します。
自分の PC Windows で TeraPad 等を使用して作成できたら
\\wsl.localhost\Ubuntu-22.04\home\yamada\public_html
に保存します。
ファイル名は
yfin_audjp_test2.py
とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
4時間足為替情報取得ファイル実行確認
yfin_audjp_test.py ファイルを実行確認します。
WSL2 Ubuntu のターミナルを立ち上げます。
立ち上げ方がわからない方は
Ubuntu の起動
を見てください。
yamada@yama:~$ conda activate
として conda 環境を有効にします。
public_html/yfin_audjp_test2.py ファイルを実行します。
(base) yamada@yama:~$ python3 public_html/yfin_audjp_test2.py
[結果]
yasuhiro@ysenba:~$ conda activate (base) yasuhiro@ysenba:~$ python3 public_html/yfin_audjp_test2.py 日本標準時(JST)現在時刻 2025-07-24 15:08:05.472748 [*********************100%***********************] 1 of 1 completed 4時間足データ表示 Price Close High Low Open Volume Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Datetime 2025-07-23 11:00:00+00:00 96.446999 96.636002 96.372002 96.487000 0 2025-07-23 15:00:00+00:00 96.635002 96.648003 96.334999 96.445000 0 2025-07-23 19:00:00+00:00 96.672997 96.742996 96.521004 96.635002 0 2025-07-23 23:00:00+00:00 96.540001 96.684998 96.390999 96.670998 0 2025-07-24 03:00:00+00:00 96.697998 96.753998 96.482002 96.541000 0 Volume 削除 Price Close High Low Open Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Datetime 2025-07-23 11:00:00+00:00 96.446999 96.636002 96.372002 96.487000 2025-07-23 15:00:00+00:00 96.635002 96.648003 96.334999 96.445000 2025-07-23 19:00:00+00:00 96.672997 96.742996 96.521004 96.635002 2025-07-23 23:00:00+00:00 96.540001 96.684998 96.390999 96.670998 2025-07-24 03:00:00+00:00 96.697998 96.753998 96.482002 96.541000 列 Close と 列 Open を入替 Price Open High Low Close Ticker AUDJPY=X AUDJPY=X AUDJPY=X AUDJPY=X Datetime 2025-07-23 11:00:00+00:00 96.487000 96.636002 96.372002 96.446999 2025-07-23 15:00:00+00:00 96.445000 96.648003 96.334999 96.635002 2025-07-23 19:00:00+00:00 96.635002 96.742996 96.521004 96.672997 2025-07-23 23:00:00+00:00 96.670998 96.684998 96.390999 96.540001 2025-07-24 03:00:00+00:00 96.541000 96.753998 96.482002 96.697998 カラムラベルの変更 open high low close Datetime 2025-07-23 11:00:00+00:00 96.487000 96.636002 96.372002 96.446999 2025-07-23 15:00:00+00:00 96.445000 96.648003 96.334999 96.635002 2025-07-23 19:00:00+00:00 96.635002 96.742996 96.521004 96.672997 2025-07-23 23:00:00+00:00 96.670998 96.684998 96.390999 96.540001 2025-07-24 03:00:00+00:00 96.541000 96.753998 96.482002 96.697998 df0 元の4h足 一旦保存 open high low close Datetime 2025-07-23 11:00:00+00:00 96.487000 96.636002 96.372002 96.446999 2025-07-23 15:00:00+00:00 96.445000 96.648003 96.334999 96.635002 2025-07-23 19:00:00+00:00 96.635002 96.742996 96.521004 96.672997 2025-07-23 23:00:00+00:00 96.670998 96.684998 96.390999 96.540001 2025-07-24 03:00:00+00:00 96.541000 96.753998 96.482002 96.697998 9H shift open high low close Datetime 2025-07-23 20:00:00+00:00 96.487000 96.636002 96.372002 96.446999 2025-07-24 00:00:00+00:00 96.445000 96.648003 96.334999 96.635002 2025-07-24 04:00:00+00:00 96.635002 96.742996 96.521004 96.672997 2025-07-24 08:00:00+00:00 96.670998 96.684998 96.390999 96.540001 2025-07-24 12:00:00+00:00 96.541000 96.753998 96.482002 96.697998
うまく実行できました。
特に赤字部分に注目してください。
日本標準時(JST)現在時刻
2025-07-24 15:08:05.472748
の時の4時間足は
2025-07-24 12:00:00+00:00
となっており、日時調整が正常に動作したことが確認できます。
ここまでで、4時間足為替情報取得ファイルが作成できました。
引き続き日足為替情報取得ファイルを作成して行きます。