楽天証券のトレーディングツール「MarketSpeed II」では、RSS機能を活用することで注文状況や板情報などをリアルタイムに取得できます。特に自動売買やIF-DONE注文の自作ツールでは、注文番号(OrderNo)の取得が極めて重要になります。しかし、同一銘柄に複数の注文を出している場合、どの注文番号に対応するかを特定するのは容易ではありません。この記事ではその課題を解決するための具体的な手法を解説します。
RSSでの注文情報取得の基本:RssMarginOpenOrder
「RssMarginOpenOrder」関数を使用することで、現時点で未約定の信用注文情報を取得することができます。取得できる項目には、銘柄コード、売買区分、価格、数量、注文種別、そして注文番号(OrderNo)などが含まれます。
ただし、複数の同一銘柄に対して注文を出していると、これらの情報が並列的に表示されるため、どの注文がどれなのかを判別しにくくなるという課題があります。
ユニークな識別情報を組み合わせて特定精度を向上
このような場面で有効なのが、注文時に投入した情報の中から「ユニークな組み合わせ」を抽出することです。具体的には以下のような項目を組み合わせて対象注文を絞り込む方法です。
- 銘柄コード
- 注文価格
- 売買区分(買/売)
- 注文数量
- 執行条件(指値/成行)
- 注文時刻(可能であれば)
たとえば、「銘柄コード:7203、売買:買、価格:2000円、数量:100株、指値」のように複数条件を掛け合わせて、一致する注文だけを対象にすることで、該当するOrderNoをほぼ一意に抽出できます。
注文送信時のログ管理が有効な補完手段
自動化システムを構築している場合は、注文送信時のログ(注文内容と送信時刻)をCSVやテキストで記録しておくと、後からそれを参照して、RSSで取得したリストと照合しやすくなります。
たとえば、午前10:30:15に発注した注文と近い時刻のものをRssMarginOpenOrderから抽出すれば、該当のOrderNoを正確に紐付け可能です。ログファイルに注文条件と共に時刻を残しておくことが有効です。
API連携ではなくMarketSpeed IIならではの制約
MarketSpeed IIは公式APIを提供しているわけではないため、RSSを駆使した情報取得が限界です。そのため、上述のように条件を掛け合わせて対象注文を特定することが実質的なベストプラクティスです。
注文番号はRSSで取得可能な数少ない固有IDであるため、特定の条件で抽出できれば、そこから「RssOrderCancel」などでキャンセル処理も自動化可能です。
まとめ:識別条件の工夫とログ活用が鍵
楽天MarketSpeed IIでの複数注文の中から正確に注文番号を特定するには、単一の条件だけでなく、複数の識別項目を組み合わせて対象を絞る工夫が必要です。また、注文時の情報を記録するログ管理を併用することで、特定精度が格段に高まります。自動化処理やキャンセル操作を精度高く行うためにも、実装時にはこれらの工夫を取り入れることをおすすめします。

こんにちは!利益の管理人です。このブログは投資する人を増やしたいという思いから開設し運営しています。株式投資をメインに分散投資をしています。
コメント