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

Ruaan Viljoen ruaanv at gmail.com
Wed Sep 26 09:35:05 PDT 2012


You must only add the definition 'heading' or component name line, not the
entire definition.
as shown here:

<message name="TradeCaptureReport" msgtype="AE" msgcat="app">
...
<field name="ShortSaleReason" required="N" />
<field name="Parties" required="N" />
</message>
-Ruaan




On 26 September 2012 18:01, Jonathan Hodgson <jhodgson at temenos.com> wrote:

>  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] On Behalf Of
> quickfixn-request at lists.quickfixn.com
>
> Sent: 19 September 2012 13:29
>
> To: quickfixn at lists.quickfixn.com
>
> Subject: Quickfixn Digest, Vol 11, Issue 26
>
>
>
> Send Quickfixn mailing list submissions to
>
>                 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
>
>
>
> You can reach the person managing the list at
>
>                 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>
>
> To: Mailing list for QuickFIX/n <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>
>
> 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] On Behalf Of Jonathan
> Hodgson
>
> Sent: 19 September 2012 12:21 PM
>
> To: 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>>
>
> To: "Mailing list for QuickFIX/n" <
> quickfixn at lists.quickfixn.com<mailto: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<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>>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
>
> 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.
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120926/2d0e051c/attachment-0002.htm>


More information about the Quickfixn mailing list