4 votos

Descarga de datos de Interactive Brokers con IbPy

Estoy tratando de descargar datos de Interactive Broker utilizando el código de abajo y soy capaz de crear la conexión con la Estación de Trabajo de Trader (obtengo un "True" después de con.connect() ) pero no hay salida, es decir, el dataDownload se vacía.

¿Alguien sabe por qué puede ser esto?

# Adapted from: http://godelsmarket.blogspot.co.uk/2012/07/non-gui-ib-historical-data-downloader.html

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

new_symbolinput = ['EUR.USD']
newDataList = []
dataDownload = []

def historical_data_handler(msg):
  global newDataList
  #print msg.reqId, msg.date, msg.open, msg.high, msg.low, msg.close, msg.volume
  if ('finished' in str(msg.date)) == False:
    new_symbol = new_symbolinput[msg.reqId]
    dataStr = '%s, %s, %s, %s, %s, %s, %s' % (new_symbol, strftime("%Y-%m-%d %H:%M:%S", localtime(int(msg.date))), msg.open, msg.high, msg.low, msg.close, msg.volume)
    newDataList = newDataList + [dataStr]
  else:
    new_symbol = new_symbolinput[msg.reqId]
    filename = 'minutetrades' + new_symbol + '.csv'
    csvfile = open('csv_day_test/' + filename,'wb')
    for item in newDataList:
      csvfile.write('%s \n' % item)
    csvfile.close()
    newDataList = []
    global dataDownload
    dataDownload.append(new_symbol)

con = ibConnection()
con.register(historical_data_handler, message.historicalData)
con.connect()

symbol_id = 0
for i in new_symbolinput:
  print i
  qqq = Contract()
  qqq.m_symbol = i
  qqq.m_secType = 'STK'
  qqq.m_exchange = 'SMART'
  qqq.m_currency = 'USD'
  con.reqHistoricalData(symbol_id, qqq, '', '1 D', '1 min', 'TRADES', 1, 2)
  symbol_id = symbol_id + 1
  sleep(0.5)

print dataDownload

3voto

Thomas Padron-McCarthy Puntos 13131

Deberá ajustar las entradas del contrato que está enviando a IB

secType debe ser CASH, exchange debería ser IDEALPRO, y añadir en whatToShow = "MIDPOINT" o "BID" o "ASK"

0 votos

Sí, tienes razón, esa parte estaba mal. ¡¡¡GRACIAS!!!

0 votos

Me alegra oírlo, ¡no hay problema!

0 votos

Sigo teniendo los mismos problemas después de ajustar las entradas, ¿alguna idea de por qué podría estar recibiendo una cadena vacía? Gracias.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X