かぶだいくん C# 化

最良気配値陣取りタスクの状態遷移のロジックを直してみた。明日、ザラバでテストしてみよう。工夫点はつぎのとおり。

  • 値段訂正をするか決定する処理は、つぎのイベントのタイミングでおこなう。注文照会画面取得時、RSSからのイベント取得時、値段訂正コマンドの完了時。
  • 値段訂正をすることを決定しても、すぐには値段訂正コマンドを投げない。数秒待ってから投げる。待っている間に、別のイベントが動いて同じように判断しても、コマンドは複数投げずにひとつに集約して投げる。
  • 値段訂正コマンドの開始から完了までは数秒かかるので、その間にイベントが起こっても無視する。その代わりに、コマンドの完了時に再度、値段訂正をするか決定する。
  • 注文照会の後、値段訂正のコマンドを投げたら、内部的には自分で投げた指値の値段を覚えておく。つぎに注文照会して最新の値段を取得するまでの間は、その自分で覚えているキャッシュの値段を使うことで、値の矛盾を避ける。

オマケとして、クロス売買防止機能を付けた。自分の売りを自分で買うような値段訂正コマンドを投げそうになったら落ちるようにした。

ザラバでのテストは、誤動作が怖いので、まだ、プログラムからは新規の注文は出さないようにしている。あらかじめ手動で、少ない株数を、ストップ安の買い注文やストップ高の売り注文で出しておいて、それをプログラムから注文訂正するようにしている。こうすれば、間違えても、あらかじめ指定した株数だけの被害で済むはず。