![](/img/trans.png)
[英]Can't connect to Interactive broker API with python show error 502, 504
[英]Getting Error in Interactive Broker while connectiong through API 'error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:hfarm
在测试以下代码时,我不断收到以下错误。 我在IB有一个模拟交易帐户。
不知道这些错误到底是什么。 尝试过在线搜索,但没有任何提示。
from ib.opt import Connection, message
from ib.ext.Contract import Contract as C
from ib.ext.Order import Order
import time
def make_contract(symbol,sec_type,exch,prim_exch,curr):
C.m_symbol=symbol
C.m_secType=sec_type
C.m_exch=exch
C.m_primaryExch=prim_exch
C.m_currency=curr
return C
def make_order(action,quantity,price=None):
if price is not None:
order=Order()
order.m_orderType = 'LMT'
order.m_totalQuantity = quantity
order.m_action = action
order.m_lmtprice = price
print(price)
else:
order=Order()
order.m_orderType = 'MKT'
order.m_totalQuantity = quantity
order.m_action = action
print('hi')
return order
def handleAll(msg):
print(msg)
cid = 103
conn = Connection.create(port=7497) #clietnID=888)
conn.connect()
conn.registerAll(handleAll)
oid = cid
cont = make_contract('AAPL','STK', 'SMART','SMART', 'USD')
offer = make_order('BUY', 1, 157)
conn.placeOrder(oid,cont,offer)
while 1:
time.sleep(1)
这并不是真正的错误,只是信息表明您已连接到市场数据。 但是,conn.disconnect()会在执行任何操作之前断开连接。
同样,AAPL的主要交换不是SMART。 您不需要放一个,除非在极少数情况下该符号是含糊不清的,并且永远不是SMART。
if __name__ == "__main__":
请添加if __name__ == "__main__":
为了顺利进行订单下达。 顺便说一句,对于AAPL主交换机不聪明,你可以把它作为空''
为最美股。
from ib.opt import Connection, message
from ib.ext.Contract import Contract
from ib.ext.Order import Order
import time
def make_contract(symbol, sec_type, exch, prim_exch, curr):
Contract.m_symbol = symbol
Contract.m_secType = sec_type
Contract.m_exchange = exch
Contract.m_primaryExch = prim_exch
Contract.m_currency = curr
return Contract
def make_order(action,quantity, price = None):
if price is not None:
order = Order()
order.m_orderType = 'LMT'
order.m_totalQuantity = quantity
order.m_action = action
order.m_lmtPrice = price
else:
order = Order()
order.m_orderType = 'MKT'
order.m_totalQuantity = quantity
order.m_action = action
return order
cid = 103
def handleAll(msg):
print(msg)
if __name__ == "__main__":
conn = Connection.create(port=4002, clientId=103)
conn.connect()
conn.registerAll(handleAll)
oid = cid
cont = make_contract('AAPL', 'STK', 'SMART', 'ISLAND', 'USD')
offer = make_order('BUY', 1, 200)
conn.placeOrder(oid, cont, offer)
time.sleep(1)
conn.disconnect()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.