放置订单而不通过IBpy传递订单?

Jor*_*elf 3 interactive-brokers ibpy

我是新手IBpy,我想知道是否有任何方法可以下达订单而不传输订单,而无需等待人工输入来实际传输订单?

我习惯于placeOrder下订单,但是找不到不发送订单的方法。

任何帮助将不胜感激。

bri*_*ian 5

按您的顺序将m_transmit设置为False。

from ib.ext.Contract import Contract
from ib.ext.Order import Order
from ib.opt import ibConnection, message
from time import sleep

def watchAll(msg):
    print(msg)

con = ibConnection(clientId=1)
con.registerAll(watchAll)
con.connect()
sleep(1)

fx = Contract()
fx.m_secType = "CASH" 
fx.m_symbol = "USD"
fx.m_currency = "CAD"
fx.m_exchange = "IDEALPRO"
con.reqMktData(1,fx,"",False)

ord = Order()
ord.m_orderType = 'MKT'
ord.m_totalQuantity = 100000
ord.m_action = 'BUY'
ord.m_transmit = False
con.placeOrder(1234,fx,ord)
Run Code Online (Sandbox Code Playgroud)

您的交易平台会像这样 在此处输入图片说明 如果要从TWS进行传输,请注意传输按钮。

然后,您可以使用相同的orderId重新发送相同的订单,但将m_transmit设置为True。

ord.m_transmit = True
con.placeOrder(1234,fx,ord)
Run Code Online (Sandbox Code Playgroud)

然后它被发送,交易平台将显示填充,订单消息回调也将以简单的方式打印 def watchAll(msg) 在此处输入图片说明