python - reqHistoricalData() 使用 IBpy 返回空值?

标签 python ibrokers interactive-brokers ibpy

我正在尝试使用 IBpy 从某些仪器返回历史数据,但是当我尝试文档中的代码时,我得到一个空结果。

我设法使用 R Ibroker 让它工作,但我真的更喜欢使用 Python API 让它工作。

这是我正在测试的代码。

from time import sleep, strftime
from time import sleep
from ib.ext.Contract import Contract
from ib.opt import ibConnection, message

def my_account_handler(msg):
    print(msg)


def my_tick_handler(msg):
    print(msg)


if __name__ == '__main__':
    con = ibConnection()
    con.register(my_account_handler, 'UpdateAccountValue')
    con.register(my_tick_handler, message.tickSize, message.tickPrice)
    con.connect()

    def inner():

        qqqq = Contract()
        qqqq.m_secType = "CASH" 
        qqqq.m_symbol = "MSFT"
        qqqq.m_currency = "USD"
        qqqq.m_exchange = "IDEALPRO"
        endtime = strftime('%Y%m%d %H:%M:%S')
        con.reqHistoricalData(1,qqqq,endtime,"5 D","1 hour","MIDPOINT",1,1)

        sleep(10)

    inner()
    sleep(5)
    print('disconnected', con.disconnect())

知道可能出了什么问题吗?

最佳答案

您需要注册历史数据消息。

con.register(my_hist_data_handler, message.historicalData)

然后定义你想用它做什么

def my_hist_data_handler(msg): 打印(消息)

另请注意 MSFT(或 QQQ)是股票

qqqq.m_secType = "STK" #cash is for forex
qqqq.m_symbol = "MSFT" #use less confusing var name
qqqq.m_currency = "USD" 
qqqq.m_exchange = "SMART" #for stocks usually

关于python - reqHistoricalData() 使用 IBpy 返回空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130469/

相关文章:

python - 不和谐的python机器人离开命令不起作用

python - Matplotlib - 在同一张图上格式化两个图

r - 特定请求的版本号,盈透证券的IBrokers包

python - 通过 API 连接时,Interactive Broker 中出现错误“错误 id=-1,错误代码=2104,错误消息=市场数据场连接正常 :hfarm”

python - 为什么用不同的__init__代码继承相同的类?盈透证券API

Python 计数元组在列表中的出现次数

python - 在Python中使用XPath提取属性值

r - reqExecutions IBrokers软件包

r - 如何使用 getContract 使用 twsInstrument 下载历史数据?

python-3.6 - 将 ibapi 库添加到 Spyder (Python 3.6) 中的 PYTHONPATH 模块