システムトレードには強固なインフラが必要不可欠なのだが、個人の自宅サーバーで365日安定稼動させるのは不可能に近い。
これが一番のボトルネックとなっていた。マシンのフリーズ、停電、インターネットサービスが利用できないなど運用中に想定しないような事態が発生し利益率を下げる要因だった。
現在はGoogle App Engineを利用することにより、ロジックをリアルタイムでGoogleのインフラストラクチャーで運用できる。
すばらしい出来事だ。
現在開発中のアーキテクチャーを書いておく。
言語:Java
既にアルゴリズムはJavaで概ね構築済みなので、それをそのまま移植する。
ただし、Click証券接続部分とデータロード部分は全面的に書き換えないとだめだ。
というか、ここが一番複雑で時間がかかる。
DB:H2
H2はエンべデッドのJavaのrdbだ。実はGoogle App Engineではrdbを利用することができない。
トレードアルゴリズムでは莫大なデータと集計関数を多用するため、rdbを利用しないと複雑なプログラムを開発するのは困難だ。
H2はインメモリーでの動作モードがあり、アプリ起動時にテーブルを作成させ、オンラインで必要なデータをロードすることにより、Google App Engineでrdbを利用することができる。
バックアップの必要があれば、CSVにエクスポートしJDOで保存、必要なときにインポートすることにより達成できる。
作成しているアプリは毎回データの洗い変えが必要なので、バックアップは作成しない想定。とりあえずはまったく問題ない。
ジョブスケジューラー:Cron(Google App Engine)
Google App EngineはスケジューラーとしてCronを提供してくれる。
通知:JavaMail(Google App Engine)
Google App EngineはメールサービスとしてJavaMailを提供してくれる。
エラー、成功時の通知や、定期的に指数や利益率、残高情報などはJavaMailで携帯に通知したい。
ロギング:java.util.logging
Google App Engineはロギングサービスとしてjava.util.loggingを提供してくれる。
オンラインのコンソールでログを閲覧することが可能だ。
また、自宅でマシンを起動しておく必要もなくなるので電気代もかからなくなる。便利な世の中だ。
クラウドコンピューティングはrdbが利用できないのがネックなのだが、工夫次第で何とかできる。
ある程度稼動実績を積んだら、フレームワークとして公開したい。
これが一番のボトルネックとなっていた。マシンのフリーズ、停電、インターネットサービスが利用できないなど運用中に想定しないような事態が発生し利益率を下げる要因だった。
現在はGoogle App Engineを利用することにより、ロジックをリアルタイムでGoogleのインフラストラクチャーで運用できる。
すばらしい出来事だ。
現在開発中のアーキテクチャーを書いておく。
言語:Java
既にアルゴリズムはJavaで概ね構築済みなので、それをそのまま移植する。
ただし、Click証券接続部分とデータロード部分は全面的に書き換えないとだめだ。
というか、ここが一番複雑で時間がかかる。
DB:H2
H2はエンべデッドのJavaのrdbだ。実はGoogle App Engineではrdbを利用することができない。
トレードアルゴリズムでは莫大なデータと集計関数を多用するため、rdbを利用しないと複雑なプログラムを開発するのは困難だ。
H2はインメモリーでの動作モードがあり、アプリ起動時にテーブルを作成させ、オンラインで必要なデータをロードすることにより、Google App Engineでrdbを利用することができる。
バックアップの必要があれば、CSVにエクスポートしJDOで保存、必要なときにインポートすることにより達成できる。
作成しているアプリは毎回データの洗い変えが必要なので、バックアップは作成しない想定。とりあえずはまったく問題ない。
ジョブスケジューラー:Cron(Google App Engine)
Google App EngineはスケジューラーとしてCronを提供してくれる。
通知:JavaMail(Google App Engine)
Google App EngineはメールサービスとしてJavaMailを提供してくれる。
エラー、成功時の通知や、定期的に指数や利益率、残高情報などはJavaMailで携帯に通知したい。
ロギング:java.util.logging
Google App Engineはロギングサービスとしてjava.util.loggingを提供してくれる。
オンラインのコンソールでログを閲覧することが可能だ。
また、自宅でマシンを起動しておく必要もなくなるので電気代もかからなくなる。便利な世の中だ。
クラウドコンピューティングはrdbが利用できないのがネックなのだが、工夫次第で何とかできる。
ある程度稼動実績を積んだら、フレームワークとして公開したい。
PR
この記事にコメントする