我成功设置了quickfix executor和tradeclient,并尝试从tradeclient发送MarketDataRequest
,其xml如下:
<message>
<header>
<field number="8"><![CDATA[FIX.4.4]]></field>
<field number="35"><![CDATA[V]]></field>
<field number="49"><![CDATA[CLIENT1]]></field>
<field number="56"><![CDATA[EXECUTOR]]></field>
</header>
<body>
<field number="146"><![CDATA[1]]></field>
<field number="262"><![CDATA[MARKETDATAID]]></field>
<field number="263"><![CDATA[0]]></field>
<field number="264"><![CDATA[0]]></field>
<field number="267"><![CDATA[1]]></field>
<group>
<field number="55"><![CDATA[LNUX]]></field>
</group>
<group>
<field number="269"><![CDATA[0]]></field>
</group>
</body>
<trailer>
</trailer>
</message>
但是,执行者做出了这样的回应
IN: 8=FIX.4.49=12535=j34=2849=EXECUTOR52=20190101-23:52:51.00000056=CLIENT145=2858=Conditionally Required Field Missing (40)372=V380=510=221
我可以理解这是业务级别的拒绝,即缺少一些有条件的必填字段,这意味着发送的消息格式不正确。
我的问题是,执行者和tradeclient都由quickfix官方提供,为什么它不能通过?我该怎么办