盈透证券交易平台 API keepUpToDate 函数在请求历史柱形数据时究竟返回什么?

问题描述

根据盈透证券交易平台 API 文档“请求历史柱数据”:

keepUpToDate, 订阅是在可用时返回未完成的实时柱线的更新 (True),还是一次性返回所有数据 (False)。 从 API v973.03+ 和 TWS v965+ 开始可用。 如果 True, 和 endDateTime 不能指定。

我不明白这是什么意思。从逻辑上讲,我假设这个函数会开始一个“5 秒实时柱线”订阅,并在历史柱线发送到现在之后关闭“历史柱线数据”订阅

然而,事实并非如此。收到的帖子“历史酒吧数据”消息随机出现,有时相隔几秒钟,有时相隔几毫秒。这些消息几乎看起来像是 Ticks,只是这些“Ticks”中的大多数具有相同的价格数据。

解决方法

我想我知道这里发生了什么,或者至少是一个对试图解决这个问题的人可能有意义的例子。

看看:

15-minute candles

Y 轴上的黄色价格滑块与最后一根蜡烛同步上下移动,随着“实时”最后价格发生变化,直到蜡烛完全关闭并开始下一根蜡烛。最后一根未完成蜡烛的价格更新似乎与 HistoricalDataUpdateMessage 数据几乎完全匹配。

我已经处理了 HistoricalDataUpdateMessage 以产生与我的图表的 TWS 图表上看到的类似的操作。结果几乎相同。