如何阅读自定义消息

时间:2018-08-24 17:24:16

标签: quickfixn

我们的交易对手(接受方)界面基于FIX 4.3版。但是,他们对消息类型进行了一些修改,还引入了版本5.0中的标志。

我正在通过向我们的交易对手(接受者)发送with open("img.bmp", 'wb') as f: image.save(f) )来请求MarketDataSnapshotFullRefresh (MsgType=W)消息。

我不得不修改字典,以使其适合邮件内容。从下面的XML中可以看到,我必须添加组MarketDataRequest (MsgType=V,这是答复的一部分,但不是原始规范4.3(https://www.onixs.biz/fix-dictionary/4.3/msgType_W_87.html)的一部分。

NoLegs

更改了字典以适应自定义消息后,我的客户不再向接收方发送拒绝消息了……到目前为止。

但是,由于该属性不是类<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> 的一部分,因此我无法访问此字段。

长话短说,如何从自定义消息中访问自定义字段?

2 个答案:

答案 0 :(得分:0)

我按照以下步骤解决了这个问题:

1。)从github下载源代码

2。)安装红宝石和nokogiri宝石

3。)对\spec\fix\FIX{yourVersion}.xml下的相应XML文件进行更改,以使其更改对手方的方言

4。)在根文件夹中运行generate.bat。这将根据修改后的XML使用必要的getter和setter方法构建C#源文件

5。)加载解决方案并构建解决方案

6。)在项目中引用QuickFixQuickFix.FIX{yourVersion}

答案 1 :(得分:0)

如果我正确理解了您的问题,那么您需要执行以下提到的步骤。

  1. 将自定义标签添加到FIX4x.xml(x可以是任何版本) 例如:

IF listbox7.items.count = tp.count then TextBox1.Text = "ALL PORT are good to GO" & item

  1. 现在问您的第三方,哪个标签号与此标签关联,并且基于 在您的FIX4x.xml号中定义此标签号的 例如:

<field name="CustomTag" required="N" />

  1. 使用上面的标签编号MarketDataSnapshotFullRefresh.GetString(“ 123”)从代码中访问您的自定义标签,您将获得此标签的值。

希望这对您有所帮助。