機械学習用の為替の価格データはどこから取得するのがベスト?
みなさん、こんばんは。アルゴンです。今日もしっかり7.8km走ってきました。
昨日の祝日は一日データを触り続けて、ある程度の成果が得られたのでほっこりしています。データをひたすら長時間触り続けて、何も成果が得られないことも頻繁にあるので…何か成果が上がると嬉しいですよね(データサイエンティスト新米あるある)
さて、今日は機械学習で使うFXのデータってどうやって用意すれば良いの?って話をしてきたいと思います。
ひとまず個人的に色々と調べたので、そのまとめです。まだ確実にこれっと言った方法が無いので試行錯誤をしていく予定です。
機械学習で使う為替のデータの条件
条件というと轟々しく聞こえますが、ひとまず今後やりたいことに対して、考えておくべき条件をまずはまとめておきたいと思います。
- 構築したモデルを頻繁に更新したい
- モデルのバックテストを直近を含む任意の期間で行いたい
- 最低限米ドル/円、米ドル/ユーロ、ユーロ/円の3通貨はカバー
- 可能であれば実際に注文を流す取引所の価格がベスト
まぁ、軽く考えて上記の条件が満たせるのであれば、ひとまずは問題ないと思われます。上の2つの条件は必須かと。
つまり、どこぞのサイトなどでスクレイピングされた為替価格の静的なCSVファルなどは極力避けたいと考えています。データが静的な場合、その期間のデータを使っての訓練は行えますが、それ以降の期間のデータ更新がめんどそうなため。
静的な為替データは結構見つかります
上記で考えた条件には反しますが、パッと、為替の価格データが欲しいっていう場合は、Kaggleでデータ公開されてます。
HistData.comで過去の為替価格データを簡単に入手することも可能のようです。無料でデータを取得するのは可能ですが、当然データの正確性については保証など一切ありません。
*今度、他の為替のデータを引っ張ってきて、実際にどのくらいのデータの際があるのか比較してみたいですね。(後日TODOメモ)
ただ、このHistDataの良いところとして、まず取得可能な通貨数が膨大にあります。下記ですが取り扱い通貨ペアの一部ですが、かなり充実しているのが解りますね。
EUR/USD, EUR/CHF, EUR/GBP, EUR/JPY, EUR/AUD, USD/CAD, USD/CHF, USD/JPY, USD/MXN, GBP/CHF, GBP/JPY, GBP/USD, AUD/JPY..その他多数あり
参考までにですが、こちらはAPIなどはありませんが、通常のダウロードに加えてFTP/SFTPも対応しています。また為替データも複数ソースがあり、MT4の1分足やNinjaTraderのティックデータなどが用意されています。見た所、期間は直近の1ヶ月単位で落とせるようです。
APIで為替データを常に引っ張りたい
上記の静的データは、すでにCSVデータで面倒な設定や登録など必要なく使えるのですが、ただ実際に機械学習のモデルを構築、さらに重要なのがメンテナンスを行うと考えれば、使い勝手は悪そうです。
ということで、常に最新のデータが取得するには…やはりAPI経由が最適かと。
海外のスレッドなどで調べてみたところ、どうやらOANDAがAPIでは使い勝手が良さそうとのレビューを発見しました。さすがOANDA!実は過去にOANDAの日本オフィスへ出入りしていたこともありますが、まさかOANDAを自分が使うことになるとは思いませんでした(笑)
さらに、何が素晴らしいって、なんと無料のデモアカウントでも利用が可能なことです。いちいち本人確認や入金などをしなくても、すぐにキーが発行された利用することが可能でした。
OANDAですが、為替用のAPIがかなり充実しており、プライスの取得などは非常に簡単に行えました。またPythonの簡単なコードを作って、オーダーを出したり、決済をしたりなど、こちらも30分程度の作業で簡単に行えます。
また、後日より詳しいOANDA APIの使い方についてはまとめますが、ひとまず、これからの機械学習モデルの構築のデータ取得先はOANDAで決定かと思います!
まとめ
とりあえず為替のデータを触って、線形回帰やらニューラルネットやらのモデルを訓練して、試してみたいという方は静的データが向いているかと。
バックテストやらモデルの更新などを小まめにやって、ちゃんと利益が出るようなモデルを組んでみたいと考えている方は、現状はOANDAのAPI以上に良い策はなさそうです。
また後日、OANDA APIの初歩的な使い方をまとめて記事にします。Twitterもやっているので、よければ繋がってください 🙂
ディスカッション
コメント一覧
まだ、コメントがありません