代码之家  ›  专栏  ›  技术社区  ›  Matthias Güntert

如何阅读自定义消息

  •  0
  • Matthias Güntert  · 技术社区  · 6 年前

    我请求 MarketDataSnapshotFullRefresh (MsgType=W) 通过发送 MarketDataRequest (MsgType=V

    我不得不修改词典,使之适合信息。从下面的XML可以看到,我必须添加组 NoLegs 这是回复的一部分,但不是原始规范4.3的一部分( https://www.onixs.biz/fix-dictionary/4.3/msgType_W_87.html

    <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>
    

    在更改dict以适应定制消息后,我的客户不再用拒绝消息回复接收者。。。到现在为止,一直都还不错。

    但是我不能访问这个字段,因为这个属性不是类的一部分 QuickFix.FIX43.MarketDataSnapshotFullRefresh

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dhem    6 年前

    如果我正确理解您的问题,那么您需要遵循以下步骤。

    1. 向FIX4x.xml添加自定义标记(x可以是任何版本)

    <field name="CustomTag" required="N" />
    1. 现在询问您的第三方哪个位号与此位号关联,并基于

    <field number="123" name="CustomTag" type="STRING" /> 
    1. 使用上述标签号MarketDat从代码访问您的自定义标签aSnapshotFullRefresh.GetString(“123”)您将获得此标记的值。

        2
  •  0
  •   Matthias Güntert    6 年前

    我通过以下步骤解决了这个问题:

    1.)从github下载源代码

    2.)安装ruby和nokogiri gem

    3.)对下的相应XML文件进行更改 \spec\fix\FIX{yourVersion}.xml 所以它会刺伤对方的方言

    generate.bat

    6.)参考 QuickFix QuickFix.FIX{yourVersion} 在你的项目中