学習用データの集め方
ディープラーニングで学習モデルを生成するためには、多くの学習データが必要になります。
為替レートを予測するための学習データは、為替レートを含む市場情報の時系列データ(ヒストリカルデータ)です。
個人と大口投資家で最も差が出るところです。
個人の学習データの集め方は大きくわけて3つあります。
- Web APIを用いてダウンロードする
- Webサイトからダウンロードする
- MT4/MT5でダウンロードする
私はMT4/MT5を用いて自動売買システムを構築しており、
トレードと同じデータで学習させるため、
データ収集も「3. MT4/MT5でダウンロードする」の方法を用いています
1. Web API を用いてダウンロードする
証券会社やFX会社等が提供するWeb APIを用いることで、為替レートを取得することができます。
【メリット】
- Web APIを自動実行するシステムを構築すれば、データ収集を自動化できる
- トレード用のWeb APIが公開されていればトレードも自動化できる
- リアルタイムの情報を取得できる可能性が高い
【デメリット】
- 利用料が発生する場合がある
- 利用制限がある場合がある
- Web APIの仕様が変更される場合がある
詳細については、Web APIサービスを提供している会社HPをご参照ください。
OANDA証券やGMOコインが有名なようです。
2. Webサイトからダウンロードする
証券会社やFX会社等のWebサイトからCSVファイル形式等でヒストリカルデータを取得することができます。
FX会社以外のヒストリカルデータだと、出来高(Volume)が含まれていない場合があります。
【メリット】
- 長期期間のヒストリカルデータを提供している会社が多い(10年以上)
- 為替レート以外のヒストリカルデータを入手できる(それこそなんでも)
【デメリット】
- リアルタイムではない可能性が高い
- 実際の価格とあっていない可能性がある
- 欠損データが含まれている可能性がある(経験上)
私がデータを集め始めた10年ほど前は、まだWebにヒストリカルデータを公開している会社は少なく、海外の統計情報を公開している会社からダウンロードしました。しかしデータの欠損が多く、データクレンジングに苦戦した記憶があります。
Webサイトからダウンロードする場合は、信頼のできる会社からダウンロードすることをオススメします。
ちなみに、ヒストリカルデータを提供しているFX会社は何社かありますが、
FXTF(ゴールデンウェイ・ジャパン株式会社)の場合は、マイページから多種類の通貨ペアデータをCSVファイルでダウンロードすることができます。
3. MT4/MT5でダウンロードする
MT4やMT5の機能を用いてヒストリカルデータを取得し、CSVファイル形式へエクスポートすることができます。
【メリット】
- トレードで使うデータを学習データとして使用することができる
- トレードも自動化できる
- リアルタイムの情報を取得できる
- 為替レート以外の情報(日経平均株価や金の値段等)も取得できる場合がある
【デメリット】
- ヒストリカルデータの期間が短い会社もある(長い会社もあります)
- MT4/MT5をサポートしているFX会社に限定される
正確には、ヒストリカルデータは会社毎異なるため、実際にトレードで口座を開設するFX会社が決まっている場合は、同一のFX会社のMT4/MT5を用いて、ヒストリカルデータを取得した方が良いです。
MT5では、下記図のように「情報呼出」機能でダウンロードし、「バーをエクスポートする」でCSVファイルに出力することができます。
詳細はFX会社の手順サイトやマニュアルをご参照ください。
集める時系列データ(ヒストリカルデータ)について
冒頭で述べた通り、ディープラーニングで学習モデルを生成するためには、多くの学習データが必要になります。
集めるデータは、一定の時間における値動きを表した指標(時間足)で、
一定期間内の始値(Open)、終値(Close)、高値(High)、安値(Low)や出来高(Volume)の値を含んでいます。
この同一時刻における複数の要素の時間的変化を学習モデルに学習させるのです。
経験上、使用する時間足にもよりますが、5千~1万レコードは欲しいところです。
- 5千~1万レコードを集めるのに必要な期間
1日足を用いる場合:15~30年分
4時間足を用いる場合:3~6年分
1時間足を用いる場合:0.75~1.5年分
個人でデータを集める場合、日足以上の時間足データを集めるのは現実的ではありません。4時間足以下を集めることになります。
テクニカルチャート分析を経験した人ならわかると思いますが、
この制約により、今後構築していく学習モデルは長期予測には向いておらず、
短期予測(数分後、数時間後、トレンドに乗っていれば数日後)を行うモデルとなります。
まとめ
学習用データの3つの集め方について説明しました。
実際に集める際は、1つの方法に絞る必要はなく、
「2. Webサイトからダウンロードする」で集めたCSVファイルを、MT4/MT5へインポートし、
「3. MT4/MT5でダウンロードする」で統合する方法も有効かと思います。
個人で大量の学習用データを集めるのは難しいため(昨今はだいぶ楽になりましたが)
少しでも参考にして頂けますと幸いです。
次回は、「2.データの前処理方法」について、投稿する予定です。
よろしくお願いいたします。