システムトレードのデータ基盤- その1
システムトレード環境を構築していくよ- イントロダクション - superi
前回システムトレードの全体構成をまとめましたが、今回はデータ収集まわりについて整理しておきたいと思います。といってもやはりシステムトレードのコアはロジックにあるため、一気にデータ基盤を仕上げるつもりもなく、 一旦は必要最小限の要件だけ検討、実装しておこうと思います。
検討事項
検討すべき事項は、 データをどこから取得するか、どのように取得するか、どこにプールするかの3点かと思います。個別にそれぞれ見ていきましょう。
データソース
どの金融商品とっても日足までだと容易に見つかるのですが、無料で時間足以下のデータだと見つけるのに苦労しました。下表に自分的にベストプラクティスなデータ取得先と取得データの形式をまとめておきます。期間が短いなどのデメリットもありますが、定期的に更新データを貯めていく運用を構築できれば解決できるかなと考えています。
金融商品 | データソース | 取得可能期間 | ローソク足最小粒度 | 提供形式 | |
---|---|---|---|---|---|
① | 商品先物 | D-station(北辰物産) | ローソク足400本 | 1分 | webよりcsvでDL |
② | 指数先物(N225, TOPIX etc.) | 225labo | 2006~ | 1分 | csv |
③ | 国内株式 | 岡三RSS | 分足-5営業日、日足-36ヶ月 | 1分 | webよりcsvでDL |
④ | FX | LIONFX | 分足-1000本 | 1分 | アプリログイン後csvでダウンロード |
データフロー
今のところアドホックなロジック開発に供するヒストリカルデータを取得できればよく、リアルタイム性は求められません。ですのでAPIを叩いてストリーミング処理するとかは不要で、ヒストリカルデータを時折手動でファイル出力して凌ぎます。ゆくゆくはRPAでこの作業を代替するというアプローチでもよいかもしれません。API探すほうが大変なので^^;
データベース
いったんファイルベースでの取り扱いで十分そうです。データベース構築するにしても(株価を取得しはじめれば別ですが)、4本値のデータであればデータサイズもそれほど大きくはないため、ローカルにポスグレ でも立てておけば十分と考えています。
とまあ、直近やるべきことはデータソースからの取得ということが明確になったところで、次回からは日経225miniのデータを取得して、ロジック作成をしていきたいと思います。