2016-10-13 2 views
0

Ich versuche, historische Daten für den Bestand mit reqHistoricalData zu erhalten. Ich möchte 1 Jahr zurückschauen, aber meine Funktion druckt nur Daten dieser Woche aus.Wie erhalte ich historische Aktienkurse von Interactive Broker mit `ibpy`?

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() 

Kann jemand helfen?

Antwort

-1

einfach Schleife durch eine Reihe von Wochen (1 Jahr = 52 Wochen):

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) 
Verwandte Themen