投資プログラマー’S WEB
最終更新日:2008/8/18
◆ 完全自動売買ツール考察 ◆
プログラム開発について
プログラム構築検証
完全自動売買ツールを構成する機能は、大きく次の3つに分けられます。

情報収集機能
株価情報、余力情報、保有銘柄情報、約定情報など、自動売買に必要な入力情報を取得する機能です。
これら情報を取得するタイミングは、トレード期間(リアルタイム、スイング、長期)、 情報の種類、システム構成によって変わりますが、以下のパターンに分類できます。
・一定時間毎
 タイマーなどで時間を監視、定期的に情報の取得を行います。
 情報にリアルタイム性が不要で、1分毎、1時間毎など一定時間ごとに情報を取得すればよい場合
・指定時間
 タイマーなどで時間を監視し、指定時刻になれば情報を取得します。
・リアルタイム
 証券会社のサーバから送られてくるタイミングで取得します。
 楽天RSSのようにリアルタイムで情報が報告されてくる場合
・イベント毎
 特定のイベントが発生したタイミングで取得します。
 ツールの起動時、発注が終わったタイミング、メールで指示があった場合など

売買分析機能
情報収集機能から得た情報を元に、売買する銘柄、値段、数量、注文タイミング、清算条件などの条件を決定します。
ここがシステムの一番重要な部分であり、損益を左右します。
プログラムの知識だけでなく、システムトレードの知識が求められます。

発注機能
銘柄選定で抽出した条件を元に、証券会社へ発注を行います。
発注の方法としては、IEを操作する、WebAPIサービスを利用する、トレードツールを操作する、などがあります。
新規に作成しようとすると大変ですが、売買分析機能と違って誰が作っても同じような動作となるため、 既存で公開されているものがあれば、それを使えばよいでしょう。

この機能で重要な項目として、速度、安定性、異常リカバリー処理、が挙げられます。

その他の機能
上記以外であったほうがよいという機能です。

株価データ保存機能
情報収集機能で株価情報を取得した際に、テキストファイルやDBに保存する機能です。
過去データを使った分析に使用したり、後日テストで使用したりします。

履歴保存機能
一定期間毎の利益、利益分析、約定履歴などを保存する機能です。
売買結果を管理する手間が省けます。

報告機能
ツールの動作状況をメールで通知する機能です。
・動作状況報告
 正常に動作しているかを通知する。ツールの起動時、終了時、一定時間毎など。
・約定通知
 約定した場合
・異常通知
 プログラムに異常が発生した場合
・損益通知
 その日の取引損益の結果

異常時処理
約定ができない場合、プログラム異常が発生した場合など、ツールに異常が発生した場合の機能です。
・メール通知
 メールで異常の発生を知らせる
・ログ機能
 異常の原因を後日調べられるように、障害内容をログに残す
・リカバリ機能
 動作の再試行やツールの再起動を行う
・全精算機能
 現在のポジションをすべて清算する

遠隔操作
外部からのパソコンによる自宅パソコンの遠隔操作とは違って、メールにより動作指示を行う機能です。
・動作状況確認
 ツールが正常に動作しているか確認メールの送信を指示する
・緊急停止
 テロによる暴落など、異常事態が発生した場合にツールを緊急停止させる
・情報の要求
 現在まで約定状況、余力情報、損益情報などの報告メールの送信を指示する

動作検証機能
プログラム中のいたる所でログを取得しておき、動作検証やバグ解析で使用します。
・売買分析機能でどういったパラメータで分析を行い、結果どう判断したか
・プログラム異常の内容を参考にしてデバッグする

自動起動/終了機能
PCの電源の自動ON/OFFと、ソフト自動起動・終了をする機能です。

テスト機能
売買分析機能のテスト(売買ロジックのバックテスト、フォワードテスト)を目的とし、 情報取得機能や発注機能にテストを考慮した疑似動作機能を盛り込んだものです。
保存してある過去の株価データを疑似再生したり、証券会社への発注を疑似的に受け付けたりします。