Open flamingo4096 opened 3 months ago
カブステーションは日次で再起動されておりますでしょうか
カブステーションは日次で再起動されておりますでしょうか
はい。当日起動しております。
@yasuyuki-nakazawa 本日また再現しましたので、追加ログを添付いたします。
Kabuステーション起動からのログ(アカウント等をマスクしたのみでそれ以外は編集なし)です。 20230723_kabslog.txt 09:14:44 に起動して、4回目の買い 09:29:32.4839 で再現しております。 今回もKabuステーション側のGUI表示は、買いの「依頼中」状態で止まっています。ただし、フル板の気配は随時更新されています。
口座のWeb板で注文を確認すると、 09:28 に注文受付・発注・全約定(分単位しか表示されない)、発注所要時間 21ミリ秒 とのことです。
今回は、Wiresharkで自作アプリ→Kabuステーションへのリクエストのログも併せて取得したところ、 20240723_localhostpcap.txt 買い発注後、orders のGETリクエストを定期的に実行し発注送信中状態のレスポンスが返ってきているため、自作アプリ側でリクエストが止まっていることはないと言えます。
ご確認よろしくお願い致します。
同時刻のPC⇔インターネット側のログから、関係ありそうな20000ポートのログを抜粋しました。 データの内容はわかりませんが、文字列で見えているものを右側に記載しました。
なんとなく、状態が更新されるとEXECUTIONのpushが来るように感じますが、 ORDERRECVの直後に来たパケットが1件だけで、その後のpushが無いようです。
パケットLength=63は実際のデータ部は9byteです。
@flamingo4096 添付いただいたログを確認いたしましたが、kabuステーション側で注文データの状態が変わったことを示すログが出力されていない場合があることを確認しております。 一方で、別途調査したサーバ側のログには同じデータを送信したログが残っておりましたので、これが未達となっている可能性がございます。
ネットワーク的な要因も一因として考えられるのですが、kabuステーションのメニューバーにある接続状態や受信状態を示すアイコンが赤くなったりすることはございますでしょうか?
また、詳細な調査のため、可能でしたらログのご提供をお願いしたいと思っております。 kabuステーションのメニューバーのAPIアイコンの右クリックメニューから、ログのアップロードをお願いいたします。 アップロードが完了いたしましたら、アップロードした日時をお知らせいただけますでしょうか。
@satosato125 サーバ側もご確認いただきありがとうございます。 ログを先ほどアップロードしました。 この↓情報があればよろしいでしょうか 11:43:19.1636,I,7872,0001 ログファイルアップロード開始 : d5319f3240c62c72ed130866f8f40f06_20240724_OPE.zip / 83,918 bytes.
再現時のメニューバーの表示状態は見ていなかったので、次回再現時は確認するようにいたします。
@flamingo4096 ログのアップロードありがとうございます。 申し訳ございませんが、調査に少しお時間いただきますこと、ご容赦ください。
@satosato125
状況いかがでしょうか? 相場がよろしくなく、久しぶりに実行しましたが、再現しました。
前回発生時は、発注後に即約定したケースでしたが、今日は指値発注後、しばらくして約定したケースでも発生しました。
>ネットワーク的な要因も一因として考えられるのですが、kabuステーションのメニューバーにある接続状態や受信状態を示すアイコンが赤くなったりすることはございますでしょうか? 赤くなっていませんでした。
前回同様ネットワークログを取っていましたが、約定したと思われるタイミングで、EXECUTIONのpushが来ています。 よって、 >一方で、別途調査したサーバ側のログには同じデータを送信したログが残っておりましたので、 これは正しくて、kabustationアプリ側での取りこぼしがあるように思います。
>これが未達となっている可能性がございます。 TCPなので未達パケットがあれば続きのパケット受信時にRetransmissionが出るはずなので、無いと考えます。
注文番号:20240813A02N44865464 d5319f3240c62c72ed130866f8f40f06_20240813_OPE.zip / 66,902 bytes
必要であればパケットの内容解析等できますので、ご連絡いただければと思います。
注文約定照会API(/orders?id=XXX)をリクエストしても、情報が更新されない場合があり困っています。 おそらくですが、kabuステーション自体も約定できたことを認識できてないように見えるため、情報を更新する何かトリガがあれば教えていただきたいです。
概要
環境
Windows10、Python 3.10.11からurllib.requestを使用してAPIリクエストを実行。 注文発注後は、/ordersを使い約定したかをチェックしています。
状況
信用デイトレ新規成行買い発注後、即約定したにも関わらず、注文約定照会APIを実行しても State:2 処理中(発注送信中) OrderState:2 処理中(発注送信中) detail:[0]RecType:1 受付, State:3 処理済、[1]RecType:4 発注, State:2 処理中(発注送信中・訂正送信中・取消送信中) が返ってくる場合がある。 この状況が3分間継続しました。
全約定した場合、 OrderState:5 終了(発注エラー・取消済・全約定・失効・期限切れ) となることを期待しています。
買えなかった場合、3分後にキャンセルするコードのため、3分以上放置した場合の状況は不明です。
考慮点
同じ情報が返ってくる状況のため、以下の点について考慮しています。 ・流量制限 秒間10件までのため、1回リクエストするたびに0.1秒インターバルを空けています。 ・リクエストのキャッシュ① 同一リクエストによるライブラリ内でのキャッシュ回避のため、実際のリクエストは /orders?id=XXX&dummy=1721265272474848600 のように、毎回変化するダミーデータ(エポックナノ秒)を付加しています。 ・リクエストのキャッシュ② Pythonライブラリでのキャッシュクリア(urllib.request.urlcleanup())をリクエスト毎に呼び出しています。
想定される発生条件?
起動後、しばらくは問題なく、今日は30分ぐらいしたら発生しました。 前日も起動直後は問題なく、しばらくしたら発生しました。 再現性はありそうです。
ログなど
ordersの結果
状況発生時のKabuステーション上の表示
買い発注が注文中のステータスで、フル板に「消」ボタンが有効でした。 押してみたら、注文取り消しの遷移はしましたが、約定済みのためエラーになりました。
Kabuステーションのログ
新規買い発注したところからのログになります。 3分後に買えていないと判断してキャンセル発注するがエラー。 10:23:43にKabuステGUIから手動キャンセル発注するがエラー。
気になる点
①情報取得が正常なときは、Kabuステーションログに OrderDetail.ID=~~~ のログが出ているようなので、Python側でリクエストが返されている可能性はある。
②①であったとしても、正常なときは、Kabuステーションログに 「UpdatePosition=ID=~~~」 で残高が更新されているはずだが、異常時はそのログがない。 そのため、kabuステーション上の表示においても更新されていないのかもしれない。