openctp / openctp-ctp-python

CTPAPI的Python接口,使用Swig技术制作,支持pip install。
http://www.openctp.cn
BSD 3-Clause "New" or "Revised" License
120 stars 22 forks source link

投资者结算结果中消息正文Content有时为空 #18

Closed zhaowei9 closed 3 months ago

zhaowei9 commented 3 months ago

您好, OnRspQrySettlementInfo回调函数返回的CThostFtdcSettlementInfoField的Content字段,我发现有时为空。投资者结算结果会分若干条返回,最后拼接Content才能得到完整消息。我猜想问题可能出现在转码。每条Content末尾可能不是一个完整的GBK字符,这样下一条Content的起始也就不是一个完整的GBK字符,就造成本条识别错误。

Jedore commented 3 months ago

好的,回头看一下这个问题。 如果可以,你也可以提供更详细具体一些的信息,方便我这边定位和解决。

zhaowei9 commented 3 months ago

这是另外一位用户的描述,请直接看文末: https://zhuanlan.zhihu.com/p/631634224 我遇到的情况是,上一个Content末尾是“基础保证金 In",(完整的单词应是Initial), 后面两个Content都是空,再后面又正常打印了,中间缺失了六七行内容。 image

zhaowei9 commented 3 months ago

我用三个账号测试,有两个账号没异常。这个应该取决于Content末尾恰好中断在哪个字符。 这是网上另一个用户的描述(未必用的openctp): https://www.vnpy.com/forum/topic/30355-ctpcha-xun-jie-suan-dan-lou-shu-ju-:onrspqrysettlementinfo 要不您就先关掉issue,以后再说吧。

Jedore commented 3 months ago

@zhaowei9 已发布新版,问题修复了,可以参考 https://github.com/openctp/openctp-ctp-python/blob/main/demo/tdapi.py#L237

zhaowei9 commented 3 months ago

实测已解决。(openctp-ctp=6.7.2.7)