Skip to main content
 首页 » 编程设计

python之如何使用 `ibpy` 从 Interactive Broker 获取历史股票数据

2025年05月04日14lvdongjie

我正在尝试使用 reqHistoricalData 获取股票的历史数据。我想回顾 1 年,但我的函数只打印出本周的数据。

conn.connect() 
 
conn.reqCurrentTime() 
 
oid=cid #cid = 105 
 
contract = make_contract2(265598, 'STK', 'SMART', 'SMART', 'USD') #AAPL 
 
endtime = strftime('%Y%m%d %H:%M:%S') 
 
conn.reqHistoricalData(1,contract,endtime,"1 Y","1 day","TRADES",1,1) 
 
time.sleep(5) 
 
conn.cancelHistoricalData(1); 
 
 
sleep(5) 
 
print('disconnecting') 
 
time.sleep(1) #Simply to give the program time to print messages sent from IB 
 
conn.disconnect() 

有人能帮忙吗?

请您参考如下方法:

简单地循环周数范围(1 年=52 周):

for t in range(52,-1,-1): 
    #for t in range(int(delta/5),-1,-1): 
        #print t 
        d=datetime.datetime.today()-datetime.timedelta(weeks=t) 
        d=d.strftime("%Y%m%d") 
        con.reqHistoricalData(1,contract,'{} 16:00:00'.format(d),"1 W","1 day","TRADES",1,1) 
        sleep(5)