Python 无法使用IBPy更改价格数据的时区

Python 无法使用IBPy更改价格数据的时区,python,timezone,interactive-brokers,ibpy,Python,Timezone,Interactive Brokers,Ibpy,我希望能够获得一个以EST(纽约)为时区的证券的价格数据。我的经纪人是互动经纪人。我正在使用Python3.5和。我的问题是,当我修改reqHistoricalData的第三个参数(它控制数据的时区)时,我得到的价格是完全相同的 如何重现问题: 通过指定contract.m_symbol='AUD',contract.m_secttype='CASH',contract.m_exchange='IDEALPRO',contract.m_primaryExch='IDEALPRO',contrac

我希望能够获得一个以EST(纽约)为时区的证券的价格数据。我的经纪人是互动经纪人。我正在使用Python3.5和。我的问题是,当我修改reqHistoricalData的第三个参数(它控制数据的时区)时,我得到的价格是完全相同的

如何重现问题:

  • 通过指定contract.m_symbol='AUD',contract.m_secttype='CASH',contract.m_exchange='IDEALPRO',contract.m_primaryExch='IDEALPRO',contract.m_currency='NZD'创建要查询的合同
  • 使用reqHistoricalData获得上述合同的每日开盘价,EST作为2016年6月23日的时区
  • 现在通过修改reqHistoricalData的第三个参数来更改时区,以使用JST作为2016年6月23日的时区
  • 比较第2步和第3步的开盘价

  • 感谢您的帮助。

    TZ只是告诉IB服务器何时结束请求。如果formatDate参数使用2,则响应将始终以GMT为单位;如果使用1,则响应将始终以本地时区为单位

    因此,通过使用JST,您可以告诉服务器提前12个小时结束请求,也就是说,当时在日本

    在你的例子中,我没有得到相同的数据。时间和价格是一样的,但是使用JST我得到的数据少了12个小时。这就好像它将结束时间转换为JST,但将计算的开始时间保留在我自己的时区中


    不用说,我从不使用时区,只要有可能,我就尝试使用GMT时间戳。

    我也有同样的查询。看看IB API文档中的页面,它说所有数据都在您登录TWS的同一时区返回

    谢谢你的回复。根据我对formatDate参数的理解,它返回自某个日期以来的总秒数,并且总是以GMT+0表示。这是正确的吗?因此,通过指定JST/EST/任何其他时区,我告诉服务器提前或晚一些小时结束数据请求,但这不会将信息的时间戳更改为指定的时区?谢谢你的澄清。@lostlostlostlost听起来不错。我忘了提到我在EST,所以我有12个小时的时间差。我有同样的问题。看看IB API文档中的页面,它说所有数据都在您登录TWS的同一时区返回。