Quickfixn 如何阅读自定义消息
我们的交易对手(接受方)界面基于FIX版本4.3。但是,他们对消息类型进行了一些修改,并从5.0版引入了标志 我通过向我们的交易对手(接受者)发送Quickfixn 如何阅读自定义消息,quickfixn,Quickfixn,我们的交易对手(接受方)界面基于FIX版本4.3。但是,他们对消息类型进行了一些修改,并从5.0版引入了标志 我通过向我们的交易对手(接受者)发送MarketDataRequest(MsgType=V),请求发送MarketDataSnapshotFullRefresh(MsgType=W)消息 我需要修改字典,使之符合信息。从下面的XML中可以看到,我必须添加组NoLegs,这是回复的一部分,但不是原始规范4.3() [...] [...] 在更改dict以适应自定义消息后,我的客户不再向
MarketDataRequest(MsgType=V
),请求发送MarketDataSnapshotFullRefresh(MsgType=W)
消息
我需要修改字典,使之符合信息。从下面的XML中可以看到,我必须添加组NoLegs
,这是回复的一部分,但不是原始规范4.3()
[...]
[...]
在更改dict以适应自定义消息后,我的客户不再向接收者回复拒绝消息。。。到目前为止还不错
但是,我无法访问此字段,因为此属性不属于类QuickFix.FIX43.MarketDataSnapshotFullRefresh
长话短说,如何从自定义消息访问自定义字段?我通过以下步骤解决了此问题: 1.)从github下载源代码 2.)安装ruby和nokogiri gem 3.)在
\spec\fix\fix{yourVersion}.XML
下对相应的XML文件进行更改,以便它处理对手的方言
4.)在根文件夹中运行generate.bat
。这将根据修改后的XML使用必要的getter和setter方法构建C#源文件
5.)加载解决方案和构建解决方案
6.)参考项目中的
QuickFix
和QuickFix.FIX{yourVersion}
,如果我正确理解了您的问题,那么您需要遵循以下提到的步骤
<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">
<field name="MDReqID" required="N" />
<component name="Instrument" required="Y" />
<field name="FinancialStatus" required="N" />
[...]
<field name='MDEntryForwardPoints' required="N" />
<group name="NoMDEntries" required="Y">
<field name="MDEntryType" required="Y" />
[...]
<field name="PriceType" required="N" />
<field name='MDEntrySpotRate' required="N" />
<field name='MDEntryForwardPoints' required="N" />
</group>
<group name="NoLegs" required="N">
<component name="InstrumentLeg" required="N" />
</group>
</message>