{{Quickfixn}} Handling Security Definitions

Veduruparthi Raju rveduruparthi at gmail.com
Thu Oct 1 08:26:08 PDT 2020


Thanks Lanfranco.
I noticed the same. it looked weird.
I have verified my DD for 35=d message type and it looks ok to me. The tag
307 is part of the NoUderlyings (tag 711).
Below i have pasted the content

   <message name="SecurityDefinition" msgtype="d" msgcat="app">
      <field name="SecurityReqID" required="Y" />
      <field name="SecurityResponseID" required="Y" />
      <field name="SecurityResponseType" required="Y" />
      <component name="Instrument" required="N" />
      <component name="InstrumentExtension" required="N" />
      <group name="NoUnderlyings" required="N">
        <component name="UnderlyingInstrument" required="N" />
      </group>
      <field name="Currency" required="N" />
      <field name="TradingSessionID" required="N" />
      <field name="TradingSessionSubID" required="N" />
      <field name="Text" required="N" />
      <field name="EncodedTextLen" required="N" />
      <field name="EncodedText" required="N" />
      <group name="NoLegs" required="N">
        <component name="InstrumentLeg" required="N" />
      </group>
      <field name="ExpirationCycle" required="N" />
      <field name="RoundLot" required="N" />
      <field name="MinTradeVol" required="N" />
      <!-- Additional for ICE -->
      <field name="TotNoRelatedSym" required="N"/>
      <field name="NoRpts" required="N"/>
      <field name="ListSeqNo" required="N"/>
    </message>


   <component name="UnderlyingInstrument">
      <field name="UnderlyingSymbol" required="Y" />
      <field name="UnderlyingSymbolSfx" required="N" />
      <field name="UnderlyingSecurityID" required="N" />
      <field name="UnderlyingSecurityIDSource" required="N" />
      <group name="NoUnderlyingSecurityAltID" required="N">
        <field name="UnderlyingSecurityAltID" required="N" />
        <field name="UnderlyingSecurityAltIDSource" required="N" />
      </group>
      <field name="UnderlyingProduct" required="N" />
      <field name="UnderlyingCFICode" required="N" />
      <field name="UnderlyingSecurityType" required="N" />
      <field name="UnderlyingSecuritySubType" required="N" />
      <field name="UnderlyingMaturityMonthYear" required="N" />
      <field name="UnderlyingMaturityDate" required="N" />
      <field name="UnderlyingCouponPaymentDate" required="N" />
      <field name="UnderlyingIssueDate" required="N" />
      <field name="UnderlyingRepoCollateralSecurityType" required="N" />
      <field name="UnderlyingRepurchaseTerm" required="N" />
      <field name="UnderlyingRepurchaseRate" required="N" />
      <field name="UnderlyingFactor" required="N" />
      <field name="UnderlyingCreditRating" required="N" />
      <field name="UnderlyingInstrRegistry" required="N" />
      <field name="UnderlyingCountryOfIssue" required="N" />
      <field name="UnderlyingStateOrProvinceOfIssue" required="N" />
      <field name="UnderlyingLocaleOfIssue" required="N" />
      <field name="UnderlyingRedemptionDate" required="N" />
      <field name="UnderlyingStrikePrice" required="N" />
      <field name="UnderlyingStrikeCurrency" required="N" />
      <field name="UnderlyingOptAttribute" required="N" />
      <field name="UnderlyingContractMultiplier" required="N" />
      <field name="UnderlyingCouponRate" required="N" />
      <field name="UnderlyingSecurityExchange" required="N" />
      <field name="UnderlyingIssuer" required="N" />
      <field name="EncodedUnderlyingIssuerLen" required="N" />
      <field name="EncodedUnderlyingIssuer" required="N" />
      <field name="UnderlyingSecurityDesc" required="N" />
      <field name="EncodedUnderlyingSecurityDescLen" required="N" />
      <field name="EncodedUnderlyingSecurityDesc" required="N" />
      <field name="UnderlyingCPProgram" required="N" />
      <field name="UnderlyingCPRegType" required="N" />
      <field name="UnderlyingCurrency" required="N" />
      <field name="UnderlyingQty" required="N" />
      <field name="UnderlyingPx" required="N" />
      <field name="UnderlyingDirtyPrice" required="N" />
      <field name="UnderlyingEndPrice" required="N" />
      <field name="UnderlyingStartValue" required="N" />
      <field name="UnderlyingCurrentValue" required="N" />
      <field name="UnderlyingEndValue" required="N" />
      <component name="UnderlyingStipulations" required="N" />
      <!-- Added -->
      <field name="StartDate" required="N" />
      <field name="EndDate" required="N" />
      <field name="ImpliedType" required="N" />
      <field name="PrimaryLegSymbol" required="N" />
      <field name="SecondaryLegSymbol" required="N" />
      <field name="ClearedAlias" required="N" />
      <field name="Denominator" required="N" />
      <field name="InitialMargin" required="N" />
      <field name="LotMultiplier" required="N" />
      <field name="ProductType" required="N" />
      <field name="BaseNumLots" required="N" />
      <field name="NumBlocks" required="N" />
      <field name="TickValue" required="N" />
      <field name="ProductId" required="N" />
      <field name="ProductName" required="N" />
      <field name="ProductDescription" required="N" />
      <field name="NumOfDecimalPrice" required="N" />
      <field name="NumOfDecimalQty" required="N" />
      <field name="Granularity" required="N" />
      <field name="PriceDenomination" required="N" />
      <field name="PriceUnit" required="N" />
      <field name="HubId" required="N" />
      <field name="HubName" required="N" />
      <field name="HubAlias" required="N" />
      <field name="StripType" required="N" />
      <field name="StripId" required="N" />
      <field name="StripName" required="N" />
      <field name="IncrementPrice" required="N" />
      <field name="IncrementQty" required="N" />
      <field name="LotSize" required="N" />
      <field name="UnderlyingUnitOfMeasure" required="N" />
      <field name="NumOfCycles" required="N" />
      <field name="LotSizeMultiplier" required="N" />
      <field name="Clearable" required="N" />
    </component>

Thanks,
--Raju.v

On Thu, Oct 1, 2020 at 9:24 AM Lanfranco Morini <Lanfranco.Morini at cegeka.it>
wrote:

> Hi Raju,
>
> what immediately jumps to the eye is the strange composition of the
> .FromString() result message, in fact part of the NoUnderlyings group (711)
> is outside from the group itself (you can find a tag 307 before tag 711=100
> (see yellow highlighting in your message)) while another one is “inside”
> group…
>
> Can I suggest to give a look at your dictionary?
>
>
>
> Best,
>
> Lanfranco
>
>
>
>
>
> *From:* Quickfixn <quickfixn-bounces at lists.quickfixn.com> *On Behalf Of *Grant
> Birchmeier
> *Sent:* giovedì 1 ottobre 2020 15:45
> *To:* Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com>
> *Subject:* Re: {{Quickfixn}} Handling Security Definitions
>
>
>
> Raju,
>
>
>
> Please don't send giant message logs to the list.  I have rejected it from
> being distributed to the list.
>
>
>
> I am repasting the top portion of your message, which is more than enough
> for followup:
>
>
>
> *==== Begin message from Raju:*
>
>
>
> They are different in length.
>
>
>
> The message logs and the sec def message in the onMessage call back and
> the message pushing into the queue as a string are all identical.
>
> However when the message is converted back to SecDef object using the
> message.FromString() method it comes with weird message with only one
> underlying and with two tag 311 (see the bold below).
>
>
>
> Below i am pasting the original message and the message after converting
> from string to SecDef object.
>
>
>
> *The below is the message after message.FromString() call :*
>
>
> {8=FIX.4.4||9=4012||35=d||34=6||49=ICE||52=20200930-04:09:45.018||56=50320||57=2||67=1||82=52||305=8||307=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl) - Dow - Ft.
> Saskatchewan - Jan21||308=IEPA||311=6249223||318=USD||320=319||322=2234250||323=4||326=17||393=5164||436=1.0||463=FXXXXX||542=20201231||763=0||916=20210101||917=20210131||998=cbm||1039=P||9013=0.00250||9014=500.0||9017=500.0||9022=1||9024=1.0||9025=N||9032=1.25000||9040=0.00250||9041=500||9061=21704||9062=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl)||9063=Butane, ID,
> Percentage of WTI 1st Line Future (CMA)
> (USD/bbl)||9064=0||9083=5||9084=0||9085=monthly||9100=USD||9101=%||9133=0.00250||9134=0.00250||9200=12||9201=1860||9202=Jan21||9205=0||9215=0||9216=0||9217=0||9300=24503||9301=Dow
> - Ft. Saskatchewan||9302=Dow - Ft. Saskatchewan||711=100
> ||311=6249222||305=8||463=FXXXXX||763=0||542=20201231||436=1.0||308=IEPA||307=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl) - Plains - Ft.
> Saskatchewan - Jan21||318=USD||326=17||916=20210101||917=20210131||998=cbm||1039=P||9013=0.00250||9014=500.0||9017=500.0||9022=1||9024=1.0||9025=N||9032=1.25000||9040=0.00250||9041=500||9061=21704||9062=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl)||9063=Butane, ID,
> Percentage of WTI 1st Line Future (CMA)
> (USD/bbl)||9083=5||9084=0||9085=monthly||9100=USD||9101=%||9200=12||9201=1860||9202=Jan21||9205=0||9215=0||9216=0||9300=24500||9301=Plains
> - Ft. Saskatchewan||9302=Plains - Ft. Saskatchewan||10=050||}
>
>
>
> *The below is the original message:*
>
> 8=FIX.4.4||9=53970||35=d||34=6||49=ICE||52=20200930-04:09:45.018||56=50320||57=2||67=1||82=52||320=319||322=2234250||323=4||393=5164||711=100||311=6249222||305=8||326=17||463=FXXXXX||763=0||542=20201231||436=1.0||308=IEPA||307=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl) - Plains - Ft.
> Saskatchewan -
> Jan21||318=USD||9040=0.00250||9041=500||1039=P||916=20210101||917=20210131||9032=1.25000||9061=21704||9062=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl)||9063=Butane, ID,
> Percentage of WTI 1st Line Future (CMA)
> (USD/bbl)||9215=0||9216=0||9205=0||9083=5||9084=0||9085=monthly||9100=USD||9101=%||9300=24500||9301=Plains
> - Ft. Saskatchewan||9302=Plains - Ft.
> Saskatchewan||9200=12||9201=1860||9202=Jan21||9013=0.00250||9014=500.0||9017=500.0||998=cbm||9022=1||9024=1.0||9025=N||9133=0.00250||9134=0.00250||9217=0||311=6249223||305=8||326=17||463=FXXXXX||763=0||542=20201231||436=1.0||308=IEPA||307=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl) - Dow - Ft.
> Saskatchewan -
> Jan21||318=USD||9040=0.00250||9041=500||1039=P||916=20210101||917=20210131||9032=1.25000||9061=21704||9062=Butane,
> ID, Percentage of WTI 1st Line Future (CMA) (USD/bbl)||9063=Butane, ID,
> Percentage of WTI 1st Line Future (CMA)
> (USD/bbl)||9215=0||9216=0||9205=0||9083=5||9084=0||9085=monthly||9100=USD||9101=%||9300=24503||9301=Dow
> - Ft. Saskatchewan||9302=Dow - Ft.
> Saskatchewan||9200=12||9201=1860||9202=Jan21||9013=0.00250||9014=500.0||9017=500.0||998=cbm||9022=1||9024=1.0||9025=N||9133=0.00250||9134=0.00250||9217=0||311=6249351||305=8||326=17||463=FXXXXX||763=0||542=20211231||436=1000.0||308=IEPA||307=IsoButane,
> ID, OPIS (50) - MT.B-ENT - Cal
> 22||318=USD||9040=0.00125||9041=50||1039=P||916=20220101||917=20221231||9032=62.50000||9061=20011||9062=IsoButane,
> ID, OPIS (50)||9063=IsoButane, OPIS Average
> (50)||9215=0||9216=0||9205=0||9083=5||9084=0||9085=monthly||9100=USD||9101=USD
> / gal||9300=786||9301=Mt.
> Belv-Enterprise||9302=MT.B-ENT||9200=16||9201=4343||9202=Cal
> 22||9013=0.00125||9014=50.0||9017=50000.0||998=bbl||9022=12||9024=1.0||9025=N||9133=52.50000||9134=52.50000||9217=0||311=6249352||305=8||326=17||463=FXXXXX||763=0||542=20211029||436=1000.0||308=IEPA||307=IsoButane,
> ID, OPIS (50) - MT.B-ENT - Q4
> 21||318=USD||9040=0.00125||9041=50||1039=P||916=20211001||917=20211231||9032=62.50000||9061=20011||9062=IsoButane,
> ID, OPIS (50)||9063=IsoButane, OPIS Average
> (50)||9215=0||9216=0||9205=0||9083=5||9084=0||9085=monthly||9100=USD||9101=USD
> / gal||9300=786||9301=Mt.
> Belv-Enterprise||9302=MT.B-ENT||9200=15||9201=1915||9202=Q4
> 21||9013=0.00125||9014=50.0||*...[about a million more tags here]...*
> ||10=047||
>
>
>
>
>
> On Wed, Sep 30, 2020 at 4:31 PM Mike Gatny <mgatny at connamara.com> wrote:
>
> If you compare the entry in quickfixn's messages log to the string you are
> parsing off your message queue, are they identical?  If not, how do they
> differ?
>
>
> --
>
> Mike Gatny
>
> Connamara Systems
>
>
>
>
>
> On Wed, Sep 30, 2020 at 5:16 PM Veduruparthi Raju <rveduruparthi at gmail.com>
> wrote:
>
> Hello,
>
>
>
> I am trying to implement the SecurityDefinitions and as part of it I am
> making a SecurityDefinitionRequest (35=c) subscription and I am receiving
> the SecurityDefinitions (35=d)
>
> Each security definition is huge and is a batch of 100 underlyings. I am
> trying to parse these security definitions and unfortunately running into
> the below exception, which obviously tells me that the message length is
> too long.
>
> I am using the Quick version 4.4 and the latest dll of 1.9 version.
>
>
>
> The onMessage callback of the SecDef receives the original message as
> pasted below and we are pushing that to a message queue as a string and
> there is a handler class where we process that message converting back from
> string to the SecurityDefinition Object  using the below syntax, where
> requestMessage is the original sec def message from the OnMessage
>
>
>
> var message = new SecurityDefinition();
>
>  message.FromString(requestMessage, true, dataDictionary, dataDictionary,
> _defaultMsgFactory);
>
>
>
> *Invalid message: Expected BodyLength=4012, Received BodyLength=53970,
> Message.SeqNum=6*
>
>
>
> The below is one of the original SefDef..
>
> Please advise how to handle security definitions.
>
>
>
>
>
> Thanks,
>
> --Raju.v
>
>
> This email, along with any attachments, is confidential. If you believe
> you received this message in error, please contact the sender immediately
> and delete all copies of the message. Thank you from Connamara Systems, LLC.
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>


-- 
Thanks,
--Raju.v
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20201001/e1d61982/attachment.htm>


More information about the Quickfixn mailing list