2

Linux サーバー マシンで IBpy を実行しようとしています。IBgateway を使用して API コードを IB に接続しています。
指値注文を注文しています。問題は、IBgateway がクライアント接続を終了していることです。
注文するとすぐに接続が閉じられ、注文ステータスを取得できなくなります。
(この同じコードを Windows マシンで実行すると、完全に機能します。)

注文に使用しているコード:

def place_single_order(self,order_type,action,lmtprice,expiry_date,quantity,conn) :
    conn=Connection.create(host='localhost', port=7496, clientId=1,receiver=ib, sender=None, dispatcher=None)
    conn.connect()  
    conn.register(self.error_handler, 'Error')
    conn.register(self.executed_order, message.execDetails)
    conn.register(self.validids,message.nextValidId)
    conn.register(self.my_order_status,message.orderStatus)
    newContract = Contract()
    newContract.m_symbol = 'ES'
    newContract.m_secType = 'FUT'
    newContract.m_exchange = 'GLOBEX'
    newContract.m_currency = 'USD'
    newContract.m_expiry = expiry_date
    order = Order()
    order.m_action = action
    order.m_totalQuantity = quantity
    order.m_transmit=True
    order.m_orderType = order_type

if lmtprice != 0 and order_type=='LMT' :
        order.m_lmtPrice=lmtprice

    elif lmtprice != 0 and order_type=='STP' :
        order.m_auxPrice=lmtprice
    else :
        pass

    oid=self.new_orderID(conn)     #this is to get the new orderid from IB by #
    conn.placeOrder(oid,newContract,order)
4

1 に答える 1

0

追加するだけでいいと思います

time.sleep(10)

注文後、注文状況を確認します。もちろん、これらの応答メッセージのハンドラーを登録する必要があります。

于 2016-06-08T04:23:53.543 に答える