superi

働かないために全力で働くスタイル

システムトレードのデータ基盤- その1


スポンサーリンク

f:id:ukichang:20190904234241p:plain
システムトレード環境を構築していくよ- イントロダクション - 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のデータを取得して、ロジック作成をしていきたいと思います。