[This message was posted by Naresh Maharaj of Instinet Europe plc <[email protected]> to the "FAST Protocol" discussion forum at http://fixprotocol.org/discuss/46. You can reply to it on-line at http://fixprotocol.org/discuss/read/e49b380f - PLEASE DO NOT REPLY BY MAIL.]
Micheal The details are below. Can you call me or email when you have a chance.# I work for Instinet, Europe [email protected] Thanks <?xml version="1.0" encoding="UTF-8"?> <!-- Market Data Interface (MDI) FAST Templates: ____________________________________ References: - Detailed message description in 'Market Data Interface (MDI) Specification and User Guide' SWX-VCA-SPEC-MDI - Templates according to 'FAST Specification Version 1.x.1': http://www.fixprotocol.org/documents/3066/FAST%20Specification%201%20x%201.pdf Open issues: None. Changes w.r.t MdiFastTemplates100_E: - News.InstrmtGrp corrected to presence="optional". Template Versioning: The last 2 digits of a template id serve as the version number of the template. If a template is changed, its id is incremented (mod 100). E.g. if the current id of a template is 500, the next version of the template will be 501. --> <templates xmlns="http://www.fixprotocol.org/ns/fast/td/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fixprotocol.org/ns/fast/td/1.1 T:\dev05\MDS\MDST\source\mdst\config\FAST\FASTTemplate.xsd"> <template name="InstrumentIdentificationBook"> <typeRef name="Instrument"/> <string name="SecurityID" id="48"> <tail/> </string> <string name="SecurityIDSource" id="22"> <constant value="4"/> </string> <!-- 4: ISIN --> <!-- Part of the identification is TradingSessionId --> </template> <template name="InstrumentIdentificationTrade"> <typeRef name="Instrument"/> <string name="SecurityID" id="48"> <tail/> </string> <string name="SecurityIDSource" id="22"> <constant value="4"/> </string> <!-- 4: ISIN --> <string name="SecurityExchange" id="207"> <copy/> </string> <!-- Part of the identification is Currency on OnBookTrade/OffBookTrade --> </template> <template name="StandardHeaderPart1"> <string name="BeginString" id="8"> <constant value="FIXT.1.1"/> </string> <!-- FIX session layer --> <!-- <uInt32 name="BodyLength" id="9"> <delta/> </uInt32> (omitted for multicast) --> </template> <template name="StandardHeaderPart2"> <string name="ApplVerID" id="1128"> <constant value="7"/> </string> <!-- 7: FIX50 --> <string name="SenderCompID" id="49"> <copy/> </string> <string name="TargetCompID" id="56"> <constant value="SWXGROUP-MDC"/> </string> <!-- Market Data Consumer --> <uInt32 name="MsgSeqNum" id="34"> <increment/> </uInt32> <string name="PossResend" id="97"><copy value="N"/></string> <!-- N: Original Transmission --> <string name="SendingTime" id="52"> <tail/> </string> </template> <template name="MarketDataSnapshotHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="W"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="MarketDataDeltaHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="X"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="StandardTrailer"> <typeRef name="StandardTrailer"/> <!-- <string name="CheckSum" id="10"/> (omitted for multicast) --> </template> <template name="BookSnapshot" id="100" dictionary="Book"> <typeRef name="MarketDataSnapshotFullRefresh"/> <templateRef name="MarketDataSnapshotHeader"/> <uInt32 name="MDBookType" id="1021"><copy/></uInt32> <uInt32 name="MDFeedType" id="1022" presence="optional"><constant value="0"/></uInt32> <!-- 0: Closing Inside Market --> <templateRef name="InstrumentIdentificationBook"/> <sequence name="MDEntries"> <typeRef name="MDFullGrp"/> <length name="NoMDEntries" id="268"/> <string name="MDEntryType" id="269"> <copy value="0"/> </string> <!-- start with buy side (0) --> <decimal name="MDEntryPx" id="270" presence="optional"> <exponent><copy value="-2"/></exponent> <mantissa><delta/></mantissa> </decimal> <decimal name="MDEntrySize" id="271" presence="optional"> <exponent><copy value="0"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="TradingSessionID" id="336"> <copy/> </string> <string name="OpenCloseSettlFlag" id="286" presence="optional"><constant value="5"/></string> <!-- 5: Theoretical Price value --> <uInt32 name="NumberOfOrders" id="346" presence="optional"> <delta value="1"/> </uInt32> <uInt32 name="NumberOfQuotes" id="6566" presence="optional"> <delta value="1"/> </uInt32> <!-- SWX specific --> <!--PriceLevel: start at level 1 for 'normal prices', absent for MDBookType=1 (Top-of-book) --> <uInt32 name="MDPriceLevel" id="1023" presence="optional"><increment value="1"/></uInt32> <uInt32 name="ReferencePriceType" id="6567" presence="optional"> <copy value="3"/> </uInt32> <!-- SWX specific, 3: last paid price --> <!-- RptSeq: sequence nr per book, equal for all entries of a snapshot, equal to MDIncGrp.RptSeq of the last entry of the last IncrementalRefresh message. --> <uInt32 name="RptSeq" id="83" presence="optional"> <copy/> </uInt32> </sequence> <templateRef name="StandardTrailer"/> </template> <template name="BookDelta" id="200" dictionary="Book"> <typeRef name="MarketDataIncrementalRefresh"/> <templateRef name="MarketDataDeltaHeader"/> <uInt32 name="MDBookType" id="1021"><copy/></uInt32> <sequence name="MDEntries"> <typeRef name="MDIncGrp"/> <length name="NoMDEntries" id="268"> <copy/> </length> <string name="MDUpdateAction" id="279"> <copy value="0"/> </string> <!-- 0: New --> <string name="MDEntryType" id="269"> <copy value="0"/> </string> <!-- start with buy side (0), if present --> <templateRef name="InstrumentIdentificationBook"/> <decimal name="MDEntryPx" id="270" presence="optional"> <exponent><copy value="-2"/></exponent> <mantissa><delta/></mantissa> </decimal> <decimal name="MDEntrySize" id="271" presence="optional"> <exponent><copy value="0"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="MDEntryTime" id="273"> <tail/> </string> <string name="TradingSessionID" id="336"> <copy/> </string> <string name="OpenCloseSettlFlag" id="286" presence="optional"><constant value="5"/></string> <!-- 5: Theoretical Price value --> <uInt32 name="NumberOfOrders" id="346" presence="optional"> <delta value="1"/> </uInt32> <uInt32 name="NumberOfQuotes" id="6566" presence="optional"> <delta value="1"/> </uInt32> <!-- SWX specific --> <!--PriceLevel: start at level 1 for 'normal prices' (if changed), absent for MDBookType=1 (Top-of-book) --> <uInt32 name="MDPriceLevel" id="1023" presence="optional"><increment value="1"/></uInt32> <uInt32 name="ReferencePriceType" id="6567" presence="optional"> <copy value="3"/> </uInt32> <!-- SWX specific, 3: last paid price --> <uInt32 name="RptSeq" id="83"> <increment value="1"/> </uInt32> <!-- per book, incremented per MDIncGrp --> </sequence> <templateRef name="StandardTrailer"/> </template> <template name="SecurityStatusHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="f"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="SecurityStatus" id="300" dictionary="Book"> <typeRef name="SecurityStatus"/> <templateRef name="SecurityStatusHeader"/> <templateRef name="InstrumentIdentificationBook"/> <string name="TradingSessionID" id="336"> <copy/> </string> <uInt32 name="SecurityTradingStatus" id="326"> <copy value="17"/> </uInt32> <!-- 17: ready to trade --> <string name="TransactTime" id="60"><tail/></string> <uInt32 name="BookCondition" id="6570"> <copy value="3"/> </uInt32> <!-- SWX specific, 3: none --> <templateRef name="StandardTrailer"/> </template> <template name="TradingSessionStatusHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="h"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="TradingSessionStatus" id="400" dictionary="Book"> <typeRef name="TradingSessionStatus"/> <templateRef name="TradingSessionStatusHeader"/> <string name="TradingSessionID" id="336"> <copy/> </string> <string name="TradingSessionSubID" id="625"> <copy/> </string> <uInt32 name="TradSesStatus" id="340"> <constant value="0"/> </uInt32> <!-- 0: unknown --> <string name="TradSesStartTime" id="341"> <delta/> </string> <string name="RandomisedInterval" id="6568" presence="optional"> <delta/> </string> <!-- SWX specific: format HH:MM:SS --> <uInt32 name="TransitionStatus" id="6569"><copy value="0"/></uInt32> <!-- SWX specific, 0: pending --> <group name="Instrument" presence="optional"> <templateRef name="InstrumentIdentificationBook"/> </group> <templateRef name="StandardTrailer"/> </template> <template name="OnBookTrade" id="500" dictionary="Book"> <typeRef name="MarketDataIncrementalRefresh"/> <templateRef name="MarketDataDeltaHeader"/> <sequence name="MDEntries"> <typeRef name="MDIncGrp"/> <length name="NoMDEntries" id="268"/> <string name="MDUpdateAction" id="279"> <constant value="0"/> </string> <!-- 0: New --> <string name="MDEntryType" id="269"> <constant value="2"/> </string> <!-- 2: Trade --> <templateRef name="InstrumentIdentificationTrade"/> <decimal name="MDEntryPx" id="270"> <exponent><copy value="-2"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="Currency" id="15"> <copy/> </string> <decimal name="MDEntrySize" id="271"> <exponent><copy value="0"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="MDEntryDate" id="272" presence="optional"> <tail/> </string> <string name="MDEntryTime" id="273"> <tail/> </string> <string name="MDExecDate" id="6571" presence="optional"> <tail/> </string> <string name="MDExecTime" id="6572" presence="optional"> <tail/> </string> <string name="TradingSessionID" id="336"> <copy value="0"/> </string> <!-- 0: Trading --> <string name="TradeCondition" id="277" presence="optional"> <constant value="0"/> </string> <!-- 0: cancel --> <string name="MDOriginType" id="1024"> <constant value="0"/> </string> <!-- 0: book --> <uInt32 name="NumberOfTrades" id="6573"> <delta value="1"/> </uInt32> <!-- SWX specific --> <string name="PublicTradeTypeCodeList" id="6533" presence="optional"> <delta/> </string> <!-- SWX specific --> </sequence> <templateRef name="StandardTrailer"/> </template> <template name="OffBookTrade" id="600" dictionary="Book"> <typeRef name="MarketDataIncrementalRefresh"/> <templateRef name="MarketDataDeltaHeader"/> <sequence name="MDEntries"> <typeRef name="MDIncGrp"/> <length name="NoMDEntries" id="268"/> <string name="MDUpdateAction" id="279"> <constant value="0"/> </string> <!-- 0: New --> <string name="MDEntryType" id="269"> <constant value="2"/> </string> <!-- 2: Trade --> <templateRef name="InstrumentIdentificationTrade"/> <decimal name="MDEntryPx" id="270"> <exponent><copy value="-2"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="Currency" id="15"> <copy/> </string> <decimal name="MDEntrySize" id="271"> <exponent><copy value="0"/></exponent> <mantissa><delta/></mantissa> </decimal> <string name="MDEntryDate" id="272" presence="optional"> <tail/> </string> <string name="MDEntryTime" id="273"> <tail/> </string> <string name="MDExecDate" id="6571" presence="optional"> <tail/> </string> <string name="MDExecTime" id="6572" presence="optional"> <tail/> </string> <string name="TradeCondition" id="277" presence="optional"> <constant value="0"/> </string> <!-- 0: cancel --> <string name="MDOriginType" id="1024"> <constant value="1"/> </string> <!-- 1: Off-Book --> <string name="PublicTradeTypeCodeList" id="6533" presence="optional"> <delta/> </string> <!-- SWX specific --> </sequence> <templateRef name="StandardTrailer"/> </template> <template name="NewsHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="B"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="News" id="700"> <typeRef name="News"/> <templateRef name="NewsHeader"/> <string name="OrigTime" id="42"> <delta/> </string> <string name="Urgency" id="61" presence="optional"> <copy value="0"/> </string> <!-- 0: normal --> <string name="Headline" id="148"> <copy/> </string> <sequence name="InstrmtGrp" presence="optional"> <typeRef name="InstrmtGrp"/> <length name="NoRelatedSym" id="146"> <default value="1"/></length> <templateRef name="InstrumentIdentificationBook"/> <string name="Currency" id="15"> <copy/> </string> <!-- SWX specific (normally not part of InstrmtGrp) --> </sequence> <uInt32 name="NoLinesOfText" id="33"><constant value="1"/></uInt32> <string name="Text" id="58"><constant value="None"/></string> <string name="URLLink" id="149"><delta/></string> <string name="SourceExchange" id="6565" presence="optional"/> <!-- SWX specific --> <templateRef name="StandardTrailer"/> </template> <!-- ___________________________________________________________________________ Session messages ___________________________________________________________________________ --> <template name="LogonHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="A"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="Logon" id="5000"> <typeRef name="Logon"/> <templateRef name="LogonHeader"/> <uInt32 name="EncryptMethod" id="98"><constant value="0"/></uInt32> <!-- 0: None --> <uInt32 name="HeartBtInt" id="108"/> <string name="ResetSeqNumFlag" id="141"/> <string name="DefaultApplVerID" id="1137"><constant value="7"/></string> <!-- 7: FIX50 --> <templateRef name="StandardTrailer"/> </template> <template name="LogoutHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="5"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="Logout" id="5100"> <typeRef name="Logout"/> <templateRef name="LogoutHeader"/> <string name="Text" id="58" presence="optional"/> <templateRef name="StandardTrailer"/> </template> <template name="HeartbeatHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="0"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="Heartbeat" id="5200"> <typeRef name="Heartbeat"/> <templateRef name="HeartbeatHeader"/> <templateRef name="StandardTrailer"/> </template> <template name="SequenceResetHeader"> <typeRef name="StandardHeader"/> <templateRef name="StandardHeaderPart1"/> <string name="MessageType" id="35"> <constant value="4"/> </string> <templateRef name="StandardHeaderPart2"/> </template> <template name="SequenceReset" id="5300"> <typeRef name="SequenceReset"/> <templateRef name="SequenceResetHeader"/> <string name="GapFillFlag" id="123"> <constant value="N"/> </string> <uInt32 name="NewSeqNo" id="36"/> <templateRef name="StandardTrailer"/> </template> </templates> > Hi all, > > I am developing a swx feed handler. since it is FIX format and encoded > by FAST, I am looking for the template definition used for FAST. > However, I cannot find it in the spec and I find this thread > http://www.fixprotocol.org/discuss/read/43dd4ec0. unfortunately, the hyper- > link in that thread does not work anymore. Is there anyone knowing where > I can find it? > > Thank you. > > Michael [You can unsubscribe from this discussion group by sending a message to mailto:[email protected]] --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Financial Information eXchange" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/FIX-Protocol?hl=en -~----------~----~----~----~------~----~------~--~---
