0

私は現在、Interactive Broker の API を使用して取引するための Java アプリケーションを開発しています。問題が発生しましたが、何が間違っているのか、API のバグなのかわかりません。

この時点で、現在、次の呼び出しを使用して注文を送信できます。

m_controller.placeOrModifyOrder( m_contract, m_order, new IOrderHandler() {

        @Override
        public void orderStatus(OrderStatus status, int filled, int remaining, double avgFillPrice, long permId, int parentId, double lastFillPrice, int clientId, String whyHeld) {
            /*dbgMsg(String.format("Status: %s - Filled: %d - Remaining: %d - Avg F px: %f - Permid: %d - Parentid: %d - Last Fill Px: %f - Client id: %d - WhyHeld: %d", 
                    status.toString(), 
                    filled, 
                    remaining,
                    avgFillPrice,
                    permId,
                    parentId,
                    lastFillPrice,
                    clientId,
                    whyHeld));*/

            System.out.println("Order Status");

        }

        @Override
        public void orderState(NewOrderState orderState) {
            m_controller.removeOrderHandler( this);
            System.out.println("Order state "+orderState.toString());

            // TODO Auto-generated method stub
            //dbgMsg(orderState.toString());
        }

        @Override
        public void handle(int errorCode, String errorMsg) {
            //dbgMsg(String.format("ORDER ERROR [%d]: %s", errorCode, errorMsg));
            System.out.println("Order Error: "+errorMsg);
        }
    });

私が直面している問題は、API を介して Trader Workstation で注文が送信および約定されている間、作成された注文の更新を受信しないことです。

また、基本的にすべての注文のステータス更新を提供する ILiveOrdersHandler を介して、実際に注文の更新を受信して​​いることも確認しました。

これが私の側のプログラミングの問題なのか、基盤となる API の問題なのかはわかりません。また、IB から提供されたサンプル コードで、System.out.println() 呼び出しをプログラムの対応するハンドラーに追加することで、この動作を確認しました。

どんな助けでも大歓迎です。

4

2 に答える 2