4 votos

El cambio de zonas horarias con el histórico de divisas de datos (Interactive Brokers API IBPy)

Me gustaría ser capaz de cambiar la zona horaria de mis peticiones a la oficina internacional de la API, ¿cómo puedo hacer esto? Estoy escrito en Python, y por lo tanto el uso de la IBPy contenedor encontrado aquí.

Cómo reproducir el problema:

  1. Crear el contrato a ser consultados mediante la especificación de contrato.m_symbol = 'AUD', contrato.m_secType = 'EFECTIVO', contrato.m_exchange = 'IDEALPRO', contrato.m_primaryExch = 'IDEALPRO', contrato.m_currency = 'NZD'
  2. El uso de reqHistoricalData, obtener la apertura diaria del precio de la anterior contrato con EST como la zona horaria de 23/6/2016.
  3. Ahora cambiar la zona horaria mediante la modificación de la 3ª argumento de reqHistoricalData utilizar JST como la zona horaria de 23/6/2016.
  4. Comparar los precios de apertura del paso 2 y 3

Supuestamente, el tercer argumento de la función reqHistoricalData(...) los controles de la zona horaria. Sin embargo, el cambio de EST a JST no cambio mis precios. He estado en contacto con la API de chicos de IB. Se obtiene los siguientes resultados para AUD.NZD:

Con EST como la zona horaria precio de apertura para 23/6/16 es: 1.046185 Con JST como la zona horaria precio de apertura para 23/6/16 es: 1.04598

Obtengo: 1.046185 para toda la zona horaria he intentado (GMT, hora del este, JST).

Me he acercado con los siguientes recursos:

¿Cómo puedo cambiar la zona horaria en mi histórico de las solicitudes de datos? Cualquier ayuda es muy apreciada, y prometo invitarte a una copa la próxima vez que usted está en Singapur.

1voto

Shehzad Naeem Puntos 6

La zona horaria de devolución de los bares es el tiempo de la zona elegida en TWS en la pantalla de inicio de sesión.

https://interactivebrokers.github.io/tws-api/historical_bars.html

1voto

NetPlayer Puntos 11

Recuerdo que se han encontrado con problemas similares con las zonas horarias y decidió acercarse a los husos horarios de una manera diferente con el IB con mi python plataforma (backtrader)

En lugar de tratar de forzar la mano de la plataforma que tomar cualquier zona horaria de información de la plataforma me da y trabajar desde allí para mi la zona horaria deseada.

El proceso:

  • IB le da la EST de zona horaria para su activo
  • Por suerte, este es un nombre reconocido por pytz (que obviamente, debe instalar)
  • Una vez que se han traducido en la IB marca de hora a datetime(ingenuo) objeto nombrado dt y tiene el nombre de la zona horaria en ibtzname

El código sería aproximadamente este aspecto:

ibtz = pytz.timezone(ibtzname)
eastern_dt = ibtz.localize(dt)
sing_tz = pytz.timezone('Asia/Singapore')
sing_dt = eastern_dt.astimezone(sing_tz)

Obviamente, usted puede almacenar en caché la sing_tz y ibtz si siempre son valores fijos.

Usted también puede wisth a trabajar internamente en UTC y sólo volver a convertir a Asia/Singapore en el último momento. Pero sus propias necesidades debe prevalecer.

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