自動売買

状態遷移のしかたをクラス設計して、だいたいアーキテクチャーは固まった。今のところ、ドライバーとしての Excel シート上のボタンを押すと、内部でコマンドを生成し、そのコマンドを複数のリクエスト・レスポンスの組み合わせとしてサーバーとやりとりし、そのコマンドの結果を得ることができる。現在、コマンドは、売買注文の発注コマンドと注文照会コマンドの2つが可能。
訂正・取消コマンドがまだできていない。
このシステムのアーキテクチャーとしては、クラスは2つのレイヤーに分けることがミソだ。パーサークラス(インターフェース)とコマンドクラス(インターフェース)だ。パーサークラスは、画面の種類ごとにサブクラスを作っておき、HTTP レスポンスがあったら、その中のリンクやボタンを解析して、MSHTML のリンクオブジェクトやボタンオブジェクトとして、(後で押せるように)フィールドに格納しておく。パーサークラスは、HTTP レスポンスの解析と、解析したリンクやボタンを使って HTTP リクエストする、という対応する入力と出力の2つをセットで管理するクラスだ。(だから名称としては、本来は、パーサー&メソッドクラス、みたいな感じである。)
なお、実際は HTTP レベルのことは一切見ず、WebBrowser Control と MSHTML の制御だけでやる。
コマンドクラスはパーサークラスのドライバーとなり、画面遷移のコントロールをおこなう。たとえば、発注コマンドを実行する際、銘柄入力画面から単価・株数画面に遷移し、さらに暗証番号入力画面へ遷移し、最後に発注完了画面へ遷移する。これらの画面ごとにパーサークラスがあり、これらのパーサークラスを渡り歩くことをコマンドクラスが管理する。
...って字だけで書いてもぜんぜん分からんなあ。