{{Quickfixn}} re duplicate tags in fix44 protocol - ammending fix44.xml

Jonathan Hodgson jhodgson at temenos.com
Wed Sep 26 09:01:48 PDT 2012


Logging sorted with filelogfactory rather than screenlogfactory, thanks

Regarding - Make sure that your FIX44.xml DataDictionary has that repeating group defined in your Trade Capture report definition. The validation is probably failing because NoPartySubIDs doesn?t seem to be part of the  default definition TradeCaptureReport from a quick look at the FIX44.xml.

I tried adding
<component name="Parties">
      <group name="NoPartyIDs" required="N">
        <field name="PartyID" required="N" />
        <field name="PartyIDSource" required="N" />
        <field name="PartyRole" required="N" />
        <group name="NoPartySubIDs" required="N">
          <field name="PartySubID" required="N" />
          <field name="PartySubIDType" required="N" />
        </group>
      </group>
    </component>

To my tradeCapturereport defn

<message name="TradeCaptureReport" msgtype="AE" msgcat="app">
    <field name="TradeReportID" required="Y" />
    <field name="TradeReportTransType" required="N" />
    <field name="TradeReportType" required="N" />
    <field name="TradeRequestID" required="N" />
    <field name="TrdType" required="N" />
    <field name="TrdSubType" required="N" />
    <field name="SecondaryTrdType" required="N" />
    <field name="TransferReason" required="N" />
    <field name="ExecType" required="N" />
    <field name="TotNumTradeReports" required="N" />
    <field name="LastRptRequested" required="N" />
    <field name="UnsolicitedIndicator" required="N" />
    <field name="SubscriptionRequestType" required="N" />
    <field name="TradeReportRefID" required="N" />
    <field name="SecondaryTradeReportRefID" required="N" />
    <field name="SecondaryTradeReportID" required="N" />
    <field name="TradeLinkID" required="N" />
    <field name="TrdMatchID" required="N" />
    <field name="ExecID" required="N" />
    <field name="OrdStatus" required="N" />
    <field name="SecondaryExecID" required="N" />
    <field name="ExecRestatementReason" required="N" />
    <field name="PreviouslyReported" required="Y" />
    <field name="PriceType" required="N" />
    <component name="Instrument" required="Y" />
    <component name="FinancingDetails" required="N" />
    <component name="OrderQtyData" required="N" />
    <field name="QtyType" required="N" />
    <component name="YieldData" required="N" />
    <group name="NoUnderlyings" required="N">
      <component name="UnderlyingInstrument" required="N" />
    </group>
    <field name="UnderlyingTradingSessionID" required="N" />
    <field name="UnderlyingTradingSessionSubID" required="N" />
    <field name="LastQty" required="Y" />
    <field name="LastPx" required="Y" />
    <field name="LastParPx" required="N" />
    <field name="LastSpotRate" required="N" />
    <field name="LastForwardPoints" required="N" />
    <field name="LastMkt" required="N" />
    <field name="TradeDate" required="Y" />
    <field name="ClearingBusinessDate" required="N" />
    <field name="AvgPx" required="N" />
    <component name="SpreadOrBenchmarkCurveData" required="N" />
    <field name="AvgPxIndicator" required="N" />
    <component name="PositionAmountData" required="N" />
    <field name="MultiLegReportingType" required="N" />
    <field name="TradeLegRefID" required="N" />
    <group name="NoLegs" required="N">
      <component name="InstrumentLeg" required="N" />
      <field name="LegQty" required="N" />
      <field name="LegSwapType" required="N" />
      <component name="LegStipulations" required="N" />
      <field name="LegPositionEffect" required="N" />
      <field name="LegCoveredOrUncovered" required="N" />
      <component name="NestedParties" required="N" />
      <field name="LegRefID" required="N" />
      <field name="LegPrice" required="N" />
      <field name="LegSettlType" required="N" />
      <field name="LegSettlDate" required="N" />
      <field name="LegLastPx" required="N" />
    </group>
   <field name="TransactTime" required="Y" />
    <component name="TrdRegTimestamps" required="N" />
    <field name="SettlType" required="N" />
    <field name="SettlDate" required="N" />
    <field name="MatchStatus" required="N" />
    <field name="MatchType" required="N" />
    <group name="NoSides" required="Y">
      <field name="Side" required="Y" />
      <field name="OrderID" required="Y" />
      <field name="SecondaryOrderID" required="N" />
      <field name="ClOrdID" required="N" />
      <field name="SecondaryClOrdID" required="N" />
      <field name="ListID" required="N" />
      <component name="Parties" required="N" />
      <field name="Account" required="N" />
      <field name="AcctIDSource" required="N" />
      <field name="AccountType" required="N" />
      <field name="ProcessCode" required="N" />
      <field name="OddLot" required="N" />
      <group name="NoClearingInstructions" required="N">
        <field name="ClearingInstruction" required="N" />
      </group>
      <field name="ClearingFeeIndicator" required="N" />
      <field name="TradeInputSource" required="N" />
      <field name="TradeInputDevice" required="N" />
      <field name="OrderInputDevice" required="N" />
      <field name="Currency" required="N" />
      <field name="ComplianceID" required="N" />
      <field name="SolicitedFlag" required="N" />
      <field name="OrderCapacity" required="N" />
      <field name="OrderRestrictions" required="N" />
      <field name="CustOrderCapacity" required="N" />
      <field name="OrdType" required="N" />
      <field name="ExecInst" required="N" />
      <field name="TransBkdTime" required="N" />
      <field name="TradingSessionID" required="N" />
      <field name="TradingSessionSubID" required="N" />
      <field name="TimeBracket" required="N" />
      <component name="CommissionData" required="N" />
      <field name="GrossTradeAmt" required="N" />
      <field name="NumDaysInterest" required="N" />
      <field name="ExDate" required="N" />
      <field name="AccruedInterestRate" required="N" />
      <field name="AccruedInterestAmt" required="N" />
      <field name="InterestAtMaturity" required="N" />
      <field name="EndAccruedInterestAmt" required="N" />
      <field name="StartCash" required="N" />
      <field name="EndCash" required="N" />
      <field name="Concession" required="N" />
      <field name="TotalTakedown" required="N" />
      <field name="NetMoney" required="N" />
      <field name="SettlCurrAmt" required="N" />
      <field name="SettlCurrency" required="N" />
      <field name="SettlCurrFxRate" required="N" />
      <field name="SettlCurrFxRateCalc" required="N" />
      <field name="PositionEffect" required="N" />
      <field name="Text" required="N" />
      <field name="EncodedTextLen" required="N" />
      <field name="EncodedText" required="N" />
      <field name="SideMultiLegReportingType" required="N" />
      <group name="NoContAmts" required="N">
        <field name="ContAmtType" required="N" />
        <field name="ContAmtValue" required="N" />
        <field name="ContAmtCurr" required="N" />
      </group>
      <component name="Stipulations" required="N" />
      <group name="NoMiscFees" required="N">
        <field name="MiscFeeAmt" required="N" />
        <field name="MiscFeeCurr" required="N" />
        <field name="MiscFeeType" required="N" />
        <field name="MiscFeeBasis" required="N" />
      </group>
      <field name="ExchangeRule" required="N" />
      <field name="TradeAllocIndicator" required="N" />
      <field name="PreallocMethod" required="N" />
      <field name="AllocID" required="N" />
      <group name="NoAllocs" required="N">
        <field name="AllocAccount" required="N" />
        <field name="AllocAcctIDSource" required="N" />
        <field name="AllocSettlCurrency" required="N" />
        <field name="IndividualAllocID" required="N" />
        <component name="NestedParties2" required="N" />
        <field name="AllocQty" required="N" />
      </group>
    </group>
    <field name="CopyMsgIndicator" required="N" />
    <field name="PublishTrdIndicator" required="N" />
    <field name="ShortSaleReason" required="N" />
<component name="Parties">
      <group name="NoPartyIDs" required="N">
        <field name="PartyID" required="N" />
        <field name="PartyIDSource" required="N" />
        <field name="PartyRole" required="N" />
        <group name="NoPartySubIDs" required="N">
          <field name="PartySubID" required="N" />
          <field name="PartySubIDType" required="N" />
        </group>
      </group>
    </component>
  </message>

But the bloomberg test still failed,  The bloomberg defn is


name="NoSubPartyIDs">

          <field internal="FIRM_NAME" fix="523" fix-name="PartySubID">

            <description>full firm name</description>

          </field>

          <field internal="#" fix="803" fix-name="PartySubIDType" default="1">

            <description>1 = Firm</description>

          </field>

        </group>

        <group internal="GROUP_NO_SUBPARTYIDS" fix="802" fix-name="NoSubPartyIDs">

          <field internal="TRADER_ID" fix="523" fix-name="PartySubID">

            <description>uuid for recipient side</description>

          </field>

          <field internal="#" fix="803" fix-name="PartySubIDType" default="2">

            <description>2 = Person</description>

          </field>

        </group>

        <group internal="GROUP_NO_SUBPARTYIDS" fix="802" fix-name="NoSubPartyIDs">

          <field internal="TRADER_NAME" fix="523" fix-name="PartySubID">

            <description>trader name</description>

          </field>

          <field internal="#" fix="803" fix-name="PartySubIDType" default="9">

            <description>9 = Contact Name</description>

          </field>

        </group>

Do I need to include the component keyword?
Thanks
Jonathan

-----Original Message-----
From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com]<mailto:[mailto:quickfixn-bounces at lists.quickfixn.com]> On Behalf Of quickfixn-request at lists.quickfixn.com<mailto:quickfixn-request at lists.quickfixn.com>
Sent: 19 September 2012 13:29
To: quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>
Subject: Quickfixn Digest, Vol 11, Issue 26

Send Quickfixn mailing list submissions to
                quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>

To subscribe or unsubscribe via the World Wide Web, visit
                http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
or, via email, send a message with subject or body 'help' to
                quickfixn-request at lists.quickfixn.com<mailto:quickfixn-request at lists.quickfixn.com>

You can reach the person managing the list at
                quickfixn-owner at lists.quickfixn.com<mailto:quickfixn-owner at lists.quickfixn.com>

When replying, please edit your Subject line so it is more specific than "Re: Contents of Quickfixn digest..."


Today's Topics:

   1. Re:  Q1. quickfix rejecting bloomberg trade Capture report
      due to duplicate tag 523's Q2. No logging (Ruaan Viljoen)


----------------------------------------------------------------------

Message: 1
Date: Wed, 19 Sep 2012 13:07:49 +0200
From: Ruaan Viljoen <ruaanv at estuarys.co.za<mailto:ruaanv at estuarys.co.za>>
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: Re: {{Quickfixn}} Q1. quickfix rejecting bloomberg trade
                Capture report due to duplicate tag 523's Q2. No logging
Message-ID:
                <C0E1238152D58A4FB82F19FA6033092A0311426F2B0B at DOLPHIN.estuarys.local<mailto:C0E1238152D58A4FB82F19FA6033092A0311426F2B0B at DOLPHIN.estuarys.local>>
Content-Type: text/plain; charset="utf-8"

Hi Jonathan,

Make sure that your application has the correct permissions to write to the FileLogPath. Perhaps post your .cfg file here as well, maybe someone spots a mistake. Also is your initiator instantiation still the same as in your original post? Forgetting to pass the LogFactory object is something I have done -.-.

Make sure that your FIX44.xml DataDictionary has that repeating group defined in your Trade Capture report definition. The validation is probably failing because NoPartySubIDs doesn?t seem to be part of the  default definition TradeCaptureReport from a quick look at the FIX44.xml.

-Ruaan

From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com]<mailto:[mailto:quickfixn-bounces at lists.quickfixn.com]> On Behalf Of Jonathan Hodgson
Sent: 19 September 2012 12:21 PM
To: quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>
Subject: {{Quickfixn}} Q1. quickfix rejecting bloomberg trade Capture report due to duplicate tag 523's Q2. No logging
Importance: High

Almost Cracked it :), I am now receiving execution messages to the FromApp on my Client, I changed both my executor and Client to ".net framework 3.5" , VS2010 had set my console projects by default to .net 4 client profile (thanks Ruaan for hinting at that) and was able to see execution reports incoming (before they weren?t doing anything),

Question 1 - I still get no logging, my client file is set as FileLogPath=C:\fixfiles\logs, any ideas?

Question 2 - I am now connected to BLOOMBERG for testing and quickfix is rejecting  their trade Capture report due to duplicate 523?s tags (they told me this is normal), msg below , is there a setting I can change for this or a bugette? I am using fix44. Heartbeat and seq resets etc all working well ?


Tag No. Tag Name            Data       Meta Data

9              BodyLength        588
35           MsgType             AE           TRADE_CAPTURE_REPORT
49           SenderCompID xxxFX
56           TargetCompID   xxxXxxx
34           MsgSeqNum      39
52           SendingTime      20120918-14:52:39
60           TransactTime     20120918-14:52:37.000
150         ExecType             F              TRADE
570         PreviouslyReported        N
31           LastPx   0.8038
571         TradeReportID  3-2-136173M-0-0
32           LastQty 1000
63           SettlType             0              REGULAR
64           SettlDate             20120920
487         TradeReportTransType 0              NEW
218         Spread  0
460         Product                4              CURRENCY
461         CFICode               MRCXXX
194         LastSpotRate     0.8038
854         QtyType               0              UNITS
75           TradeDate           20120918
195         LastForwardPoints          0
48           SecurityID           EUR/GBP
22           SecurityIDSource             6              ISO_CURRENCY_CODE
55           Symbol EUR/GBP
552         NoSides               2              BOTH_SIDES
54           Side       1              BUY
37           OrderID                3-2-146172M-0-0
11           ClOrdID                3-2-146172M-0-0
453         NoPartyIDs         1
448         PartyID CBAF
447         PartyIDSource   C             GENERALLY_ACCEPTED_MARKET_PARTICIPANT_IDENTIFIER
452         PartyRole            27
802         NoPartySubIDs 3
523         PartySubID         COMMERCIAL BANK OF xxx LTD, TOWN
803         PartySubIDType               1
523         PartySubID         7615688
803         PartySubIDType               2
523         PartySubID         MR SMITH
803         PartySubIDType               9
15           Currency              EUR
119         SettlCurrAmt     803.8
120         SettlCurrency    GBP
54           Side       2              SELL
37           OrderID                3-2-146172M-0-0
11           ClOrdID                3-2-146172M-0-0
453         NoPartyIDs         1
448         PartyID XXXX
447         PartyIDSource   C             GENERALLY_ACCEPTED_MARKET_PARTICIPANT_IDENTIFIER
452         PartyRole            17
802         NoPartySubIDs 2
523         PartySubID         Bloomberg FX, NY
803         PartySubIDType               1
523         PartySubID         BLOOMBERG USER
803         PartySubIDType               9
15           Currency              EUR
119         SettlCurrAmt     803.8
120         SettlCurrency    GBP
10           CheckSum           255
Thanks
Jonathan

Message: 1
Date: Mon, 3 Sep 2012 11:05:12 -0500
From: Grant Birchmeier <gbirchmeier at connamara.com<mailto:gbirchmeier at connamara.com<mailto:gbirchmeier at connamara.com%3cmailto:gbirchmeier at connamara.com>>>
To: "Mailing list for QuickFIX/n" <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com%3cmailto:quickfixn at lists.quickfixn.com>>>
Subject: Re: {{Quickfixn}} incoming Execution report to CLIENT1
                (initiator) not invoking onMessage?
Message-ID:
                <CAMq4opNA=ZmvmJCV5Zxqk+hznjE1=f1AT3N6KuvuFDhY4Nxgbg at mail.gmail.com<mailto:CAMq4opNA=ZmvmJCV5Zxqk+hznjE1=f1AT3N6KuvuFDhY4Nxgbg at mail.gmail.com<mailto:CAMq4opNA=ZmvmJCV5Zxqk+hznjE1=f1AT3N6KuvuFDhY4Nxgbg at mail.gmail.com%3cmailto:CAMq4opNA=ZmvmJCV5Zxqk+hznjE1=f1AT3N6KuvuFDhY4Nxgbg at mail.gmail.com>>>
Content-Type: text/plain; charset="iso-8859-1"

Do you see the message in your Client's logs?

On Mon, Sep 3, 2012 at 4:41 AM, Jonathan Hodgson <jhodgson at temenos.com<mailto:jhodgson at temenos.com<mailto:jhodgson at temenos.com%3cmailto:jhodgson at temenos.com>>>wrote:

>  I am successfully sending a test execution report from my Executor
> (acceptor) but nothing is being received on the Client, heartbeat and
> login all appear to work ok Main Client Code as below -  onMessage
> does not get run as expected?
>
> Sub Main()
>
> myApplication = New Application
>
> myInitiator = New QuickFix.Transport.SocketInitiator(myApplication,
> myStoreFactory, mySessionSettings, myLogFactory)
>
> Initiator.start()
>
> End sub
Public Class Application : Inherits MessageCracker
>
>     Implements QuickFix.Application
Public Overloads Sub onMessage(ByVal message As QuickFix.FIX44.
> ExecutionReport, ByVal Param As QuickFix.SessionID)
>         System.Console.WriteLine()
>         MsgBox("Execution report mesaage received")
>     End Sub
> End Class
> What am I missing?

> Thanks
>
> Jonathan
>



The information in this e-mail and any attachments is confidential and may be legally privileged.

It is intended solely for the addressee or addressees. Any use or disclosure of the contents

of this e-mail/attachments by a not intended recipient is unauthorized and may be unlawful.

If you have received this e-mail in error please notify the sender.

Please note that any views or opinions presented in this e-mail are solely those of the author and

do not necessarily represent those of TEMENOS.

We recommend that you check this e-mail and any attachments against viruses.

TEMENOS accepts no liability for any damage caused by any malicious code or virus transmitted by this e-mail.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120919/6dea53dc/attachment.htm>

------------------------------

_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com


End of Quickfixn Digest, Vol 11, Issue 26
*****************************************
The information in this e-mail and any attachments is confidential and may be legally privileged. It is intended solely for the addressee or addressees. Any use or disclosure of the contents of this e-mail/attachments by a not intended recipient is unauthorized and may be unlawful. If you have received this e-mail in error please notify the sender. Please note that any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of TEMENOS. We recommend that you check this e-mail and any attachments against viruses. TEMENOS accepts no liability for any damage caused by any malicious code or virus transmitted by this e-mail.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120926/2a435015/attachment-0001.htm>


More information about the Quickfixn mailing list