quickfix发送时间(字段52)下降毫秒



我正在使用Python API运行QuickFix,并使用FIX4.2 连接到TT FIX适配器

我已成功登录并发送市场数据请求。回复很好。在我的消息日志(屏幕日志和文件日志)中,我得到一个SendingTime(字段52),看起来像这样:

52=20130207-02:38:32.212

然而,当我尝试获取此字段并将其打印到终端或文件时,除了毫秒被丢弃之外,其他一切都是一样的。所以结果总是:

52=20130207-02:38:32

显然这很糟糕。我想不出为什么毫秒一开始会出现,然后在访问它们时会被丢弃。

也许这是Python的一个工件,它访问带有"的属性性格但这似乎很愚蠢,因为SendingTime是一个字符串,而我上次检查字符串中允许使用句点。

任何帮助都将是伟大的,我真的希望能够打印准确的时间戳到文件。

谢谢,

瓦皮蒂

尝试使用FieldMap的const std::string & getField (int field)函数提取字段。这将使您的字段成为字符串,而无需尝试将其转换为日期类型。我敢打赌,这将保留毫秒,至少在文本上是这样。

抱歉,我无法解释Python为什么会失去ms。我只是对Python包装器了解不够。

编辑:不,答案不对。我不知道你没有从标题中提取字段。(当然,您仍然可以在标头上使用此函数。)

我通过指定getField函数来查看标头来解决问题。因此:

sendingTime= quickfix.SendingTime()

print sendingTime, "n"

message.getHeader().getField(sendingTime)

print sendingTime, "n"

打印的第一行将是发送时间,以毫秒取整(我不知道为什么),它看起来像52=2013027-02:38:32

第二个打印行实际上查看标题(字段52所在的位置)并获得整个字段,它看起来像:

52=2013027-02:32.212

这解释了为什么当我尝试message.getField(sendingTime)时,会出现未找到字段错误。

相关内容

  • 没有找到相关文章

最新更新