首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python将contractDetails导出到df或csv?

用Python将contractDetails导出到df或csv?
EN

Stack Overflow用户
提问于 2022-01-26 18:30:15
回答 1查看 108关注 0票数 1

这个问题实际上已经在另一个论坛上被问到和回答了,然而,答案是通过一个网络链接给出的,看起来这个链接似乎已经过期了。因此,我不得不再次向你们提出这个问题,可爱的聪明人。

有人知道如何将数据从"contractDetails“导出到df或CSV文件吗?这是目前为止的代码:

代码语言:javascript
运行
复制
class TestApp(EWrapper, EClient):
    def __init__(self):
        EWrapper.__init__(self)
        EClient.__init__(self, self)​

    def contractDetails(self, reqId, contractDetails):
        self.data = [contractDetails]
        df = pd.DataFrame(self.data)
        df.to_csv('options_test.csv')
        print(df)​

    def contractDetailsEnd(self, reqId):
        print("\ncontractDetails End\n")​

    def start(self):
        contract = Contract()
        contract.symbol = 'AAPL'
        contract.secType = 'OPT'
        contract.exchange = 'SMART'
        contract.currency = 'USD'
        #contract.primaryExchange = 'NASDAQ'
        contract.lastTradeDateOrContractMonth = '202301'
        #contract.strike = 175
        #contract.right = "C"
        #contract.multiplier = "100"
        global underlying
        underlying = contract.symbol​

        self.reqMktData(1, contract, '106', False, False, [])​

        self.reqContractDetails(1, contract)​

    def stop(self):
        self.done = True
        self.disconnect()​

    def main():
        app = TestApp()
        app.nextOrderId = 0
        app.connect('127.0.0.1', 7497, 123)
        app.data = []​

        Timer(4, app.stop).start()
        app.run()​

if __name__ == "__main__":
    main()​

这是指向原始问题的链接:https://www.elitetrader.com/et/thre...details-to-csv-from-tws-api-in-python.344314/

这是指向最初答案的链接:https://repl.it/repls/DamagedStandardDeprecatedsoftware

如果有人能搞清楚这件事,放心,我请客(Y)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 12:06:58

这是我问题的答案..。

代码语言:javascript
运行
复制
from ib_insync import *
util.startLoop()

import logging
# util.logToConsole(logging.DEBUG)

ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)


spy = Option('SPY', '202301', '', 'C', 'SMART')

cds = ib.reqContractDetails(spy)

len(cds)

contracts = [cd.contract for cd in cds]

contracts[0]

util.df(contracts)

print(util.df(contracts))

https://nbviewer.org/github/erdewit/ib_insync/blob/master/notebooks/contract_details.ipynb

放轻松(Y)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70868534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档