こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- FXのテクニカル分析に興味がある
- Pythonで過去の外国為替相場データを大量取得する方法が知りたい
【FX×Python】外国為替相場のヒストリカル価格データの取得
本記事ではFXのテクニカル分析に応用に向けて、外国為替相場のヒストリカルデータを大量取得する方法について解説します。下記のPythonライブラリを使用した方法の解説が主です。
- forex-pythonのパッケージを用いたデータ取得方法
【参考】FX取引におすすめの取引所
Python環境設定・事前準備
forex-python
というPythonライブラリを利用できるようにする必要があります。
ターミナルまたはコマンドプロンプトを開き、以下を実行しましょう。
pip install forex-python
【FX×Python実践】過去の外為データ取得
Pythonを用いて外国為替相場の過去データを取得する方法について解説します。
最新の外国為替レートを取得
最新の外国為替レートを取得するには、引数に基準となる通貨を指定し、次のように実行します。
from forex_python.converter import CurrencyRates
# 通貨(日本円の場合: JPYと指定)
currency = 'USD'
# 実行
obj = CurrencyRates()
obj.get_rates(currency)
# 出力イメージ
# {'EUR': 0.9334453467749464,
# 'JPY': 128.21805283300665,
# 'BGN': 1.82563240922244,
# 'CZK': 23.069168300196026,
# 'DKK': 6.944273312797536,
# 'GBP': 0.7947166993372539,
# 'HUF': 369.83104639223376,
# 'PLN': 4.275646410902642,
# 'RON': 4.611966769345655,
# 'SEK': 9.806123401474844,
# 'CHF': 0.9596751610193224,
# 'ISK': 127.2286007654252,
# 'NOK': 9.426211145337442,
# 'HRK': 7.039111360029871,
# 'TRY': 16.411556053393078,
# 'AUD': 1.3939139363390276,
# 'BRL': 4.757304209838514,
# 'CAD': 1.2669653691776348,
# 'CNY': 6.664986465042472,
# 'HKD': 7.846821618594232,
# 'IDR': 14543.218519555681,
# 'INR': 77.69158965742555,
# 'KRW': 1240.8475683748718,
# 'MXN': 19.5902174927658,
# 'MYR': 4.37851208811724,
# 'NZD': 1.5363576962568841,
# 'PHP': 52.574442266405306,
# 'SGD': 1.3709511808083636,
# 'THB': 34.305049939326054,
# 'ZAR': 15.630542331746478}
過去特定断面の外国為替レートを取得
過去の特定日付における為替レートを取得するには、引数に「日付」と「基準となる通貨」を指定し、次のように実行します。
from datetime import datetime
from forex_python.converter import CurrencyRates
# 通貨
currency = 'JPY'
# 日付を指定(年, 月, 日, 時, 分)
date_obj = datetime(2021, 5, 23, 18, 0)
# 実行
obj = CurrencyRates()
obj.get_rates(currency, date_obj)
# 出力イメージ
# {'EUR': 0.007540909433677701,
# 'USD': 0.009190860417766383,
# 'JPY': 1,
# 'BGN': 0.014748510670386848,
# 'CZK': 0.19193122690596484,
# 'DKK': 0.05607571073071412,
# 'GBP': 0.006475378930699042,
# 'HUF': 2.6326068923912223,
# 'PLN': 0.033852650629665935,
# 'RON': 0.037152552597843294,
# 'SEK': 0.07632908528768569,
# 'CHF': 0.00825804992082045,
# 'ISK': 1.115300505240932,
# 'NOK': 0.07647990347635923,
# 'HRK': 0.05663373802880627,
# 'RUB': 0.674716084759822,
# 'TRY': 0.07703114395596108,
# 'AUD': 0.011837719628987255,
# 'BRL': 0.04873538948797224,
# 'CAD': 0.011070055048638864,
# 'CNY': 0.059115451323429595,
# 'HKD': 0.0713664127893824,
# 'IDR': 131.93477113339867,
# 'ILS': 0.029905738632079026,
# 'INR': 0.6696478395294473,
# 'KRW': 10.354045697911166,
# 'MXN': 0.18304878968403587,
# 'MYR': 0.03805972400271473,
# 'NZD': 0.012754694216122462,
# 'PHP': 0.4403212427418746,
# 'SGD': 0.012229846919538495,
# 'THB': 0.28831913128723324,
# 'ZAR': 0.12810496945931676}
指定した期間の相場情報を大量取得
指定した日付期間の外国為替レートを大量取得するには、「開始日」「終了日」「通貨ペア」を指定し、次のように実行します。
import pandas as pd
from datetime import datetime
from forex_python.converter import CurrencyRates
"""
********************************
引数情報(要チェック)
********************************
"""
# 開始日
start_date = datetime(2022, 5, 15, 0, 0)
# 終了日
end_date = datetime.today()
# 通貨ペア|基準通貨
currency_1 = 'USD'
# 通貨ペア|比較通貨
currency_2 = 'JPY'
"""
********************************
実行(以下修正不要)
********************************
"""
# FX Object
obj = CurrencyRates()
# 為替レート計算
def historical_rate(datetime,currency1, currency2):
try:
return obj.get_rate(currency1, currency2, datetime)
except Exception as re:
print(re)
return None
# データフレーム
df = pd.DataFrame(pd.date_range(start = start_date, # 開始日
end = end_date, # 終日
freq = 'B' # 営業日のデータのみ取得(Only Business Day)
),
columns=['DateTime']
)
# 結果加工
currency_pair = currency_1 + "/" + currency_2
df[currency_pair] = df['DateTime'].apply(historical_rate, args=(currency_1,currency_2))
# 出力
print(df)
# 出力イメージ
# DateTime USD/JPY
# 0 2022-05-20 127.956888
# 1 2022-05-23 127.638615
# 2 2022-05-24 127.322761
# 3 2022-05-25 127.008258
# 4 2022-05-26 127.091708
# 5 2022-05-27 126.888640
# 6 2022-05-30 127.508361
# 7 2022-05-31 128.218053
# 8 2022-06-01 128.218053
【FX×Python実践】為替レート計算
指定した通貨ペアの為替レートを計算する方法について以下解説します。
指定した通貨ペアの最新レートを取得
指定した通貨ペアの最新レートを取得するには次のように実行します。
from forex_python.converter import CurrencyRates
# 通貨ペア|基準通貨
currency_1 = 'USD'
# 通貨ペア|比較通貨
currency_2 = 'JPY'
obj = CurrencyRates()
rate = obj.get_rate(currency_1, currency_2)
# 出力
print(currency_1+"/"+currency_2+": "+str(rate))
# 出力イメージ
# USD/JPY: 128.21805283300665
為替レートをもとに特定通貨の価格変換
例えば、USD100ドルを日本円(JPY)に変換した際の「日本円価格」を算出したい場合、次のように記載します。基準通貨に変換元の通貨、比較通貨に変換後の通貨を指定しましょう。
# 通貨ペア|基準通貨
currency_1 = 'USD'
# 基準通貨の価格
price = 100
# 通貨ペア|比較通貨
currency_2 = 'JPY'
result = obj.convert(currency_1 ,currency_2, price)
# 出力
print(currency_1+"("+str(price)+")を"+currency_2+"に変換後の価格: "+str(result))
# 出力イメージ
# USD(100)をJPYに変換後の価格: 12821.80
【FX】シストレ実践法・その他優良情報
最後までご覧いただきありがとうございました。当サイトではFXにおける多様なシステムトレード手法の解説記事を取り扱っております。
FX・シストレ記事一覧
FXの自動売買やシステムトレードに興味がある方向けに様々な取引実践法を解説しています。
システムトレードによるFX取引解説記事
対応言語 | 記事名 |
---|---|
Python | 【FX】過去データ(ヒストリカルデータ)を大量取得する方法 |
Python | 【FX】テクニカル分析|移動平均線 |
Python | 【FX】テクニカル分析|ボリンジャーバンド |
Python | 【FX】テクニカル分析|MACD |
Python | 【FX】テクニカル分析|RSI |
【参考】仮想通貨・ビットコイン|金融投資情報
当サイトでは仮想通貨・ビットコインにおける多様な分析および自動売買手法を配信しています。ビットコイン投資にも興味がある方は是非こちらもご覧下さい。
仮想通貨・ビットコイン|情報一覧
自動売買ツールとは|超具体的実装方法
【仮想通貨】自動売買ツールの自作方法とおすすめ暗号資産取引所|無料で実践できるビットコイン自動取引の仕組みも徹底解説
「仮想通貨(暗号資産)の自動売買ツール作成に興味がある」「自動売買の仕組み・作り方を知りたい」「どこの仮想通貨取引所がおすすめなのか知りたい」本記事ではこのような要望にお応えします。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら