EClient.reqSecDefOptParams() 方法在指定交换时不返回数据 - 为什么?

问题描述 投票:0回答:1

使用C# IB TWS API,API_Version=10.19.04

根据 IB TWS API 文档,EClient.reqSecDefOptParams() 方法返回到期日和执行价格的列表。

如果我将 futFopExchange 参数设置为空字符串(根据文档),我可以获得

ALL 交易所的到期和罢工列表。 但是,每当我指定交换名称(例如“BATS”)或任何其他有效的交换名称时,该方法都不会返回任何数据 - 为什么?

例如 - 此调用将起作用:

client.reqSecDefOptParams( request_id, underlying_symbol, "", underlying_security_type, underlying_contract_id );
..并将返回以下交易所的到期日和罢工:

SMART,AMEX,CBOE,PHLX,PSE,ISE,BOX,BATS,NASDAQOM,CBOE2,NASDAQBX,MIAX,GEMINI,EDGX,MERCURY,PEARL,EMERALD,MEMX,IBUSOPT,SAPPHIRE
但是,这个调用不会返回任何数据:

client.reqSecDefOptParams( request_id, underlying_symbol, "BATS", underlying_security_type, underlying_contract_id );
...这两个调用的唯一区别是上面显示的调用中使用了显式交换名称(所有其他参数都相同)。

此外,当该方法确实返回所有交易所的到期和行权时,所有交易所的到期和行权数量都相同 - 这是正常的,还是每个交易所的到期和行权数量可能不同?

任何见解将不胜感激。

提前致谢。

c# interactive-brokers
1个回答
0
投票
抱歉,如果这不是答案,但我想寻求帮助。我正在尝试这样做:

option_chain = ib.reqSecDefOptParams( 1, underlying_symbol, '', underlying_security_type, conId)
但我收到错误

TypeError: IB.reqSecDefOptParams() takes 5 positional arguments but 6 were given

。为什么它能识别 6 个参数?

© www.soinside.com 2019 - 2024. All rights reserved.