liuxuewei1982 2023-11-27 09:21 采纳率: 0%
浏览 267
已结题

如何从盈透证券获取期权历史数据

编写代码,通过盈透的API获取美股期权的历史分钟数据,并以EXCEL何存到本地

  • 写回答

27条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-11-27 09:21
    关注

    引自强大而免费的微信小程序:皆我知道

    要从盈透证券获取期权历史数据,您可以按照以下步骤:

    1. 首先,您需要安装ib_insync库,这是一个用于与盈透API交互的Python库。您可以使用以下命令进行安装:
    pip install ib_insync
    
    1. 在你的盈透证券账户上创建一个API账户,并生成API令牌。将该令牌保存到一个安全的地方,您将在代码中使用它。

    2. 下面是一个例子代码,它将从盈透API获取美股期权的历史分钟数据,并将其以Excel格式保存在本地:

    import pandas as pd
    from ib_insync import *
    
    # 创建IB连接
    util.startLoop()
    ib = IB()
    ib.connect('127.0.0.1', 7497, clientId=1)  # 这里的IP地址和端口号需要根据您的设置进行更改
    
    # 定义查询的参数
    contract = Stock('AAPL', 'SMART', 'USD')  # 根据您所需的具体期权合约进行修改
    endDateTime = ''  # 结束日期和时间,留空表示取到当前时间
    durationStr = '1 D'  # 查询数据的时间范围,例:1 D表示为一天的数据
    barSizeSetting = '1 min'  # 数据的时间间隔,例:1 min表示为每分钟一条数据
    
    # 请求历史数据
    bars = ib.reqHistoricalData(
        contract, endDateTime=endDateTime, durationStr=durationStr,
        barSizeSetting=barSizeSetting, whatToShow='TRADES', useRTH=True)
    
    # 将数据转换成DataFrame
    df = util.df(bars)
    
    # 保存为Excel文件
    df.to_excel('option_data.xlsx', index=False)
    
    # 断开连接
    ib.disconnect()
    

    请注意,上述代码中的IP地址和端口号可能需要根据您的设置进行修改。此外,您还需要根据您所需的具体期权合约进行相关的修改。

    运行代码后,将在当前目录下生成一个名为option_data.xlsx的Excel文件,其中包含了所请求的期权历史分钟数据。

    这是一个简单的示例代码,您可以根据自己的需求进行进一步的修改和优化。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月4日
  • 创建了问题 11月27日