首页 > 解决方案 > IBKR contractdetails.contract 变量不可访问

问题描述

我目前正在使用 IBKR api 来请求有关合同的详细信息,我对 conid 特别感兴趣,根据文档(IBKR Api Class Contract) ,它是对象合同的一个属性

作为测试,我实现了一个简单的请求合同细节来打印出合同的全部细节

def contractDetails(self, reqId, ctx):
    super().contractDetails(reqId, ctx)
    print(ctx.contract)

上面的代码段打印出以下内容:

432280833,SOS,STK,,0.0,,,SMART,NYSE,USD,SOS,SOS,False,,combo:

def contractDetails(self, reqId, ctx):
    super().contractDetails(reqId, ctx)
    print(ctx.contract.symbol)

如预期的那样,上面的代码打印出搜索到的合约的符号。

求救

def contractDetails(self, reqId, ctx):
    super().contractDetails(reqId, ctx)
    print(ctx.contract.conid)

但是上面的代码返回了一个attributeError:

AttributeError:“合同”对象没有属性“conid”

根据我对文档的理解,该属性应该存在,并且根据初始打印输出,它的值为 432280833。

我的问题是,有人试图获取这些信息并成功了吗?

标签: pythonattributeerrorinteractive-brokers

解决方案


您可以查看源代码以查看有哪些字段和方法。

class Contract(Object):
    def __init__(self):
        self.conId = 0
        self.symbol = ""
.....

注意拼写。


推荐阅读