我在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☺)
以下是我的数据字典中的条目:
<field number="40" name="OrdType" type="STRING"/>请注意,我尝试过各种组合,例如:
<field number="40" name="OrdType" type="STRING" allowOtherValues="true"/> 以及显式指定有问题的值。
<field number="40" name="OrdType" type="STRING" >
<value enum="2083" description="STUPID" />
</field>什么都没用过。我总是得到同样的结果。不正确的值数据格式:40
怎么回事?!?
发布于 2014-11-11 18:02:44
在QuickFIX中,班级采用quickfix.CharField
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">
因此,入站修复消息中的string值OrdType将导致QuickFIX拒绝包含无效数据的消息。您需要修改QuickFIX以允许OrdType的string值能够容纳具有CTS自定义值的入站和出站消息。
https://stackoverflow.com/questions/26869336
复制相似问题