作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有很多例子展示了如何从盈透证券获得特定 Assets 的价格。但是,当我想获得一项 Assets 的整个期权链时,我不知道列出了哪些特定的罢工。 future 也是一样,我不知道目前有哪些到期。所以,即对于期权,我只是遍历所有可能的罢工和 reqMktData
对于每个人,还制作了 sleep(1)
每 100 条消息,以避免达到每秒请求数的限制。显然,这些消息中的许多返回错误“未找到该请求的安全定义”。
这看起来是错误的方法,因为它在不存在的 Assets 上浪费了大量时间。有没有更干净的方法来做到这一点,或者为此目的提供特殊功能?
最佳答案
按照 Donn Lee 的建议实现 contractDetailsEnd 的处理程序。感谢 shashkello 和 Donn Lee。
from ib.ext.Contract import Contract
from ib.ext.ContractDetails import ContractDetails
from ib.opt import ibConnection, message
import time
def watcher(msg):
print msg
def contractDetailsHandler(msg):
contracts.append(msg.contractDetails.m_summary)
def contractDetailsEndHandler(msg):
global DataWait
DataWait = False
con = ibConnection()
con.registerAll(watcher)
con.register(contractDetailsHandler, 'ContractDetails')
con.register(contractDetailsEndHandler, 'ContractDetailsEnd')
con.connect()
contract = Contract()
contract.m_exchange = "SMART"
contract.m_secType = "OPT"
contract.m_symbol = "VTR"
#contract.m_multiplier = "100"
contract.m_currency = "USD"
con.reqContractDetails(1, contract)
contracts = [] # to store all the contracts
DataWait = True ; i = 0
while DataWait and i < 90:
i += 1 ; print i,
time.sleep(1)
con.disconnect()
con.close()
print contracts
关于interactive-brokers - 在盈透证券 API 中获取上市期权和 future 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25299539/
我是一名优秀的程序员,十分优秀!