未能使用IBPy更改价格数据的时区

时间:2016-06-30 07:45:55

标签: python timezone interactive-brokers ibpy

我希望能够以EST(纽约)作为时区获取证券的价格数据。我的经纪人是盈透证券。我正在使用IBPy library的python 3.5。我的问题是,当我修改控制数据时区的reqHistoricalData的第三个参数时,我得到的价格完全相同。

如何重现问题:

  1. 通过指定contract.m_symbol ='AUD',contract.m_secType ='CASH',contract.m_exchange ='IDEALPRO',contract.m_primaryExch ='IDEALPRO',contract.m_currency ='NZD'来创建要查询的合同
  2. 使用reqHistoricalData,以EST作为23/6/2016的时区,获取上述合约的每日开盘价。
  3. 现在通过修改reqHistoricalData的第3个参数来更改时区,以使用JST作为23/6/2016的时区。
  4. 比较第2步和第3步的开盘价
  5. 感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

TZ告诉IB服务器何时结束请求。如果您使用2表示formatDate参数,则响应将始终为GMT,如果使用1,则在本地时区使用1.

因此,通过使用JST,您可以告诉服务器提前12小时结束请求,即。那是在日本的时候。

在您的示例中,我没有获得相同的数据。时间和价格相同,但使用JST我可以减少12小时的数据。就好像它将结束时间转换为JST,但将计算的开始时间留在我自己的时区。

毋庸置疑,我从不使用时区并尽可能尝试使用GMT时间戳。

答案 1 :(得分:0)

我有同样的疑问。看一下IB API文档中的页面,它说所有数据都是在你登录TWS的同一时区返回的。 http://interactivebrokers.github.io/tws-api/historical_bars.html#hd_receive&gsc.tab=0