gpt4 book ai didi

interactive-brokers - 在盈透证券 API 中获取上市期权和 future 的参数

转载 作者:行者123 更新时间:2023-12-04 10:04:04 27 4
gpt4 key购买 nike

有很多例子展示了如何从盈透证券获得特定 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com