我有一堆从不同来源收集的股票符号,我想使用python 3.7中的ib insync与交互式经纪人进行交易。 我编写了以下代码来测试,哪些符号在交互式代理中有效,哪些符号无效
from ib_insync import *
ib = IB()
ib.connect('127.0.0.1', 4001, clientId=2)
symbol = 'nonsense'
try:
contract = Stock(symbol, 'SMART')
except Exception as e:
print(f"{symbol} causes exception {e}")
else:
cds = ib.reqContractDetails(contract)
contracts = [cd.contract for cd in cds]
tmp_df = util.df(contracts)
res = tmp_df[["localSymbol","primaryExchange","currency"]]
print(res)
如果给出了有效的符号,例如symbol='TSLA',则执行else:子句,结果看起来正常
对于上面代码中的无效符号,异常不会被捕获,else子句仍会执行,我会收到消息“Error 200,reqId 1:未找到请求的安全定义,contract:”
谢谢你的提示
目前没有回答
相关问题 更多 >
编程相关推荐