我将FIX 4.2与QuickFix和python一起使用。我正在连接CTS,这是一个以奇怪的方式做所有事情的数据提供商。我已经修改了我的数据字典大约4个月了(真是地狱)。
我遇到了无法通过修改数据字典来解决的问题,但这似乎是DD问题。我很迷茫。
我发送一个SecurityDefinitionRequest 35 = c,并得到一个SecurityDefinition 35 = d。 CTS已将标记40与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.627☺320=1415721370.22☺322=sd-11/11/2014 9:56:11 AM☺323=4☺911=12☺55=YM☺107=SIM:E-mini Dow BF:+Dec14-2Mar15+Jun15☺48=XCME_E YM (Z14)-2(H15)(M15)☺
(
40=2083☺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☺58=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
这是怎么回事?!?
最佳答案
在QuickFIX中,OrdType
class采用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)
the default FIX42.xml文档中的
OrdType
定义证实了这一点:<field number="40" name="OrdType" type="CHAR">
因此,入站FIX消息中
string
的OrdType
值将导致QuickFIX拒绝包含无效数据的消息。您将需要修改QuickFIX,以允许string
的OrdType
值能够使用CTS自定义值容纳入站和出站消息。关于python - 值的数据格式不正确-OrdType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26869336/