首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不正确的值数据格式- OrdType

不正确的值数据格式- OrdType
EN

Stack Overflow用户
提问于 2014-11-11 16:13:40
回答 1查看 1.7K关注 0票数 2

我在QuickFix和python中使用Fix4.2。我正在与CTS连接,CTS是一家数据提供商,以一种奇怪的方式做任何事情。我已经修改我的数据字典大约4个月了(这是地狱)。

我遇到了一个问题,我无法通过修改数据字典来修复,但它似乎是一个DD问题。我很困惑。

我发送一个SecurityDefinitionRequest,35=c,并得到一个SecurityDefinition,35=d,作为回报。Tag 40已经被CTS从FIX协议中大量修改。http://www.ctsfutures.com/wiki/T4%20API%20FIX.Security%20Definition.ashx

我只想把标签40定义为字符串,然后继续使用它。但是无论我做什么,我的QF引擎都拒绝使用错误的数据格式的消息:40

下面是一个示例:

(8=FIX.4.2☺9=591☺35=d☺34=15☺49=CTS☺56=XXX☺50=T4FIX☺52=20141111-15:56:11.62 7☺320=1415721370.22☺322=sd-11/11/2014 9:56:11 AM☺323=4☺911=12☺55=YM☺107=SIM:E-mi ni Dow BF:+Dec14-2Mar15+Jun15☺48=XCME_E YM (Z14)-2(H15)(M15)☺

40=2083 (<--标签40在这里)

☺207=CME_E☺200=201412☺205=19☺167=FUT☺762=4☺562=1☺15=USD☺1146=5☺5770=1/1☺555=3☺600=YM☺623=1☺624=1☺609=FUT☺602=XCME_E YM (Z14)☺556=USD☺610=201412☺616=CME_E☺620=SIM:E-mini Dow Dec14☺600=YM☺623=-2☺624=2☺609=FUT☺602=XCME_E YM (H15)☺556=USD☺610=201503☺616=CME_E☺620=SIM:E-mini Dow Mar15☺600=YM☺623=1☺624=1☺609=FUT☺602=XCME_E YM (M15)☺556=USD☺610=201506☺616=CME_E☺620=SIM:E-mini Dow Jun15☺10=235☺)

Incorrect data format for value: 2083 <20141111-15:56:11.087, FIX.4.2:XXX->CTS, event> (Message 15 Rejected: Incorrect data format for value:40)

<20141111-15:56:11.095, FIX.4.2:XXX->CTS, outgoing> (8=FIX.4.2☺9=114☺35=3☺34=23☺49=XXX☺52=20141111-15:56:11.095☺56=CTS☺45=15☺5 8=Incorrect data format for value☺371=40☺372=d☺373=6☺10=114☺)

以下是我的数据字典中的条目:

代码语言:javascript
复制
<field number="40" name="OrdType" type="STRING"/>

请注意,我尝试过各种组合,例如:

代码语言:javascript
复制
<field number="40" name="OrdType" type="STRING" allowOtherValues="true"/> 

以及显式指定有问题的值。

代码语言:javascript
复制
<field number="40" name="OrdType" type="STRING" >
    <value enum="2083" description="STUPID" />
</field>

什么都没用过。我总是得到同样的结果。不正确的值数据格式:40

怎么回事?!?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-11 18:02:44

在QuickFIX中,班级采用quickfix.CharField

代码语言:javascript
复制
class OrdType(quickfix.CharField):
    def __init__(self, data = None):
        if data == None:
            quickfix.CharField.__init__(self, 40)
        else:
            quickfix.CharField.__init__(self, 40, data)

OrdType默认的FIX42.xml文档中的定义证实了这一点:

<field number="40" name="OrdType" type="CHAR">

因此,入站修复消息中的stringOrdType将导致QuickFIX拒绝包含无效数据的消息。您需要修改QuickFIX以允许OrdTypestring值能够容纳具有CTS自定义值的入站和出站消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26869336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档