Python 如何从交互式代理获取证券的ISIN?

Python 如何从交互式代理获取证券的ISIN?,python,interactive-brokers,Python,Interactive Brokers,我正在尝试获取交互式经纪人投资组合中证券的国际证券识别号(ISIN) 在文档中,我发现两个地方提到了ISIN: secId和secIdType合同内的字段: secIdList合同详细信息中的字段 但我无法让API填充这些字段中的任何一个。示例代码: from ib_insync import * ib = IB() ib.connect("127.0.0.1", 4002, 0) for pfi in ib.portfolio(): for detail in ib.reqContra

我正在尝试获取交互式经纪人投资组合中证券的国际证券识别号(ISIN)

在文档中,我发现两个地方提到了ISIN:

  • secId
    secIdType
    合同内的字段:
  • secIdList
    合同详细信息中的字段
  • 但我无法让API填充这些字段中的任何一个。示例代码:

    from ib_insync import *
    ib = IB()
    ib.connect("127.0.0.1", 4002, 0)
    for pfi in ib.portfolio():
        for detail in ib.reqContractDetails(pfi.contract):
            print(detail)
    
    这将产生:

    ContractDetails(summary=Contract(conId=13181, symbol='AEE', secType='STK', exchange='SMART', primaryExchange='NYSE', currency='USD', localSymbol='AEE', tradingClass='AEE'), marketName='AEE', minTick=0.01, orderTypes='ACTIVETIM,ADJUST,ALERT,ALGO,ALLOC,AON,AVGCOST,BASKET,COND,CONDORDER,DARKONLY,DARKPOLL,DAY,DEACT,DEACTDIS,DEACTEOD,DIS,GAT,GTC,GTD,GTT,HID,IBKRATS,ICE,IMB,IOC,LIT,LMT,LOC,MIT,MKT,MOC,MTL,NGCOMB,NODARK,NONALGO,OCA,OPG,OPGREROUT,PEGBENCH,POSTONLY,PREOPGRTH,REL,RPI,RTH,RTHIGNOPG,SCALE,SCALEODD,SCALERST,SMARTSTG,SNAPMID,SNAPMKT,SNAPREL,STP,STPLMT,SWEEP,TRAIL,TRAILLIT,TRAILLMT,TRAILMIT,WHATIF', validExchanges='SMART,AMEX,NYSE,CBOE,ISE,CHX,ARCA,ISLAND,VWAP,DRCTEDGE,NSX,BEX,BATS,EDGEA,CSFBALGO,JEFFALGO,BYX,IEX,CVGXALGO,PSX', priceMagnifier=1, longName='AMEREN CORP', industry='Utilities', category='Electric', subcategory='Electric-Integrated', timeZoneId='EST5EDT', tradingHours='20170816:0400-2000;20170817:0400-2000', liquidHours='20170816:0930-1600;20170817:0930-1600', mdSizeMultiplier=100)
    

    如您所见,上述字段均未填充。你知道如何获得安全的ISIN吗?

    我每天都在使用IB API。因此,我更愿意使用函数获取ISIN

    reqFundamentalData

    必须使用4个参数,第三个参数称为
    reportType
    。在这里,您可以选择名为
    ReportSnapshot
    的最简单类型。您将收到一个
    xml
    -文件,并在第二部分(
    普通股
    )中找到带有ISIN的行。例如,在对
    AAPL
    的请求中:

    US0378331005

    没那么复杂。如果您需要示例代码,请询问我


    更多信息:和

    根据您的链接,我发现:对于美国股票,接收ISIN需要CUSIP市场数据订阅(无论这意味着什么)您好,我刚刚看到了您的答案,如果可能的话,我希望得到一些建议。我的数据源使用ISIN,我有一个黑客任务,可以让我找到相应的IB符号,但它只工作了约50%的时间,因此有一个“狗工作”手动组件。我突然想到,我可以根据需要从网站上刮取所有IB合同的详细信息(大约每月一次),然后按照您上面的建议使用逻辑来获取所有ISIN,然后我可以使用这些ISIN来查找我的股票列表的符号。我还想问其他问题,因为我对IB的API还不熟悉。@Carl-我不太明白:那么,你有很多ISIN,你想找到IB的符号吗?但是为什么呢?您可以在TWS中输入ISIN,它会自动输入正确的产品。你可以描述你的代码目标,在stackflow这里询问所有问题,或者给我留下一个链接,我可以联系你。但使用stackflow将是向社区提出问题的最佳方法。是的,我有一个ISIN文件,可以加载到basket trader中,但对许多人来说,它说安全性不可用。但是对于这些证券,我可以手动在baskettrader中输入ISIN,它给我选择股票以及交易所的选项,但手工操作耗时,我每月要处理几百个ISIN。理想情况下,我会将整个过程自动化。我的电子邮件地址是cgrwells@yahoo.co.uk,我想问几个相关的问题,以确保我不会掉进兔子洞。感谢您通过加载股票代码并创建包含股票代码、ISIN和其他数据的csv文件,与@Carl一起解决了问题。