Dear all,
We are implementing connectivity with the SWX market using the quickfixj library but we've got a problem with TradeCaptureReport messages.
We receive the following TradeCaptureReport message from SWX test platform :
8=FIX.4.4^A9=437^A35=AE^A34=14^A49=SwxRcg1.M01^A50=SwxObe.M01.1.1^A52=20110407-09:07:04.219^A56=SQBCH-02.M01^A369=1280^A15=CHF^A17=EFR1_A568775_0O621059_2^A22=4^A31=51.1^A32=124^A37=NONE^A48=CH0010675863^A54=2^A55=[N/A]^A60=20110407-09:07:03.899^A75=20110407^A150=0^A207=XSWX^A423=2^A447=D^A448=7698^A452=17^A453=1^A487=0^A570=N^A571=NONE^A572=157598^A856=1^A6520=D^A552=1^A54=1^A37=NONE^A453=1^A448=7698^A447=D^A452=7^A802=1^A523=12589^A803=25^A576=1^A577=0^A768=1^A769=20110407-07:06:00.000^A770=1^A10=176^A
The message seems to be well formed but we first have the following warn message :
Warn: incomming message with incorrect field: 552=2:
And when we try to call the method tradeCaptureReport.getGroup(2, noSidesGroup); we get :
quickfix.FieldNotFound: 552, index=2
at quickfix.FieldMap.getGroup(FieldMap.java:684)
We have the following FIX44.xml configuration:
<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="OrigTrdMatchID" 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" />
<field name="TradeTypeCodeList" 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" />
<field name="Currency" required="N" />
</message>
Is this a bug of the quickfixj library or is there something misconfigured on our side ?
Thanks for your help
|