![見出し画像](https://assets.st-note.com/production/uploads/images/116531543/rectangle_large_type_2_72f0633b6b0244779ccf165108d43db4.jpeg?width=1200)
FXのヒストリカルデータ(CSV)をpythonでダウンロードする
自分メモ
■ヒストリカルデータの仕様
ヒストリカルデータ提供サイトに複数の通過ペアの2000年以降のデータが揃っている。時間足は1分足。
データのタイムゾーンはローカルタイムのままのようで、冬季はEST、夏季はEDT。
■準備
pythonのhistdataというモジュールを利用するのでインストールし、2022年のXAUUSDペアのデータをCSVでダウンロードする。
pip install histdata
from histdata import download_hist_data as dl
from histdata.api import Platform as P, TimeFrame as TF
dl(year='2022', month=none, pair='xauusd', platform=P.GENERIC_ASCII, time_frame=TF.ONE_MINUTE)
2023年分は1年分が保存されていないようで、月単位で指定。
dl(year='2023', month='8', pair='xauusd', platform=P.GENERIC_ASCII, time_frame=TF.ONE_MINUTE)
今回はCSVで入手。MT4/MT5用であればplatformの指定は異なる。
platform=P.META_TRADER
zipを解凍すると、日時/始値/高値/安値/終値/出来高(0)のCSV形式データが確認できる。
![](https://assets.st-note.com/img/1695022398843-2QPXdO8nqb.png?width=1200)
2023年度分は前述の通り月度単位なのでついでにマージ。
import pandas as pd
# CSVを取り込む
df1 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202301.csv")
df2 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202302.csv")
df3 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202303.csv")
df4 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202304.csv")
df5 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202305.csv")
df6 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202306.csv")
df7 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202307.csv")
df8 = pd.read_csv("XAUUSD/DAT_ASCII_XAUUSD_M1_202308.csv")
# カラムあわせる
df8.columns = df7.columns = df6.columns = df5.columns = df4.columns = df3.columns = df2.columns = df1.columns
# データフレームを縦方向に結合
result = pd.concat([df1, df2, df3, df4, df5, df6, df7, df8], axis=0)
result = result.reset_index(drop=True)
# 結果を表示
print(result)
# 結果を別のCSVファイルに保存
result.to_csv("combined.csv", index=False)
一通り用意できたところで、試したいことが幾つかストックしてるので土日はしばらく関連作業に没頭しそう。
この記事が気に入ったらサポートをしてみませんか?