MT4やMT5といえばインジケーターで為替データを取得する方法が一般的ですが、なんともそれではツマらないので、Pythonを使って同じ機能を実装してみます。
今回は、MT5を使ってドル円(USD/JPY)のデータを取得し、それをCSVファイルに保存する簡単な方法をご紹介します。為替データを取得することはトレードの基本なので、深層学習も実装できるPythonで実現することで今後の開発が大きく展開できるようになると思います。
MT5に接続する準備
まず、PythonからMT5に接続します。これは、MetaTrader5ライブラリを使うことで実現できます。接続が成功すれば、PythonでMT5を操作できるようになります。
コード
import MetaTrader5 as mt5
if not mt5.initialize():
print("MT5の接続に失敗しました")
quit()
はい、これだけです。簡単です。エラー文を書くだけですね。ここで接続に失敗するときはMT5が起動していない可能性があるので確認してみてください。
為替データを取得する
次に、ドル円のデータを取得します。この例では、1時間足(H1)の直近100本分のデータを取得しています。
symbol = "USDJPY"
timeframe = mt5.TIMEFRAME_H1
num_bars = 100
rates = mt5.copy_rates_from_pos(symbol, timeframe, 0, num_bars)
この部分で得られるデータには、時間、始値、高値、安値、終値、出来高など、トレードに必要な情報がすべて含まれています。
時間軸をH4にすれば4時間足、Dにすれば日足が取得できます。
データをCSVファイルに保存する
取得したデータをCSV形式に変換して保存します。これはpandasというライブラリを使えば簡単です。
import pandas as pd
from datetime import datetime
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
df.to_csv("usd_jpy_data.csv", index=False)
print("データを保存しました")
これで、usd_jpy_data.csvというファイルが作成され、中にドル円のデータが保存されます。
まとめ
以上で、Pythonを使ってMT5からドル円のデータを取得し、CSVファイルに保存する手順が完了です。この方法を使えば、取得したデータを使った分析やバックテストなど、さまざまな応用が可能になります。
ということで、MT4やMT5より全然単純なコードじゃない?と思った方は正解です。とても短く直感的な文章でコードを書けるのがPythonの特徴ですので、少し書き慣れれば複雑なプログラムも実装させることができます。
ゴゴジャンでは、保存先フォルダの指定をフォルダダイアログで使いやすくした実行ファイルも販売しています。さらに、通常だと3,000円のところ、XM口座を開設したいただいた方には無料でご提供しています。
ご興味がありましたら、そちらの案内もご覧ください。