The Lab

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 170 Next »

Schema Files

Schema - mfsbe4.xml

mfsbe4.xml - the SBE Schema
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
 *
 * Copyright (C) 2020 MarketFactory, Inc. All rights reserved.
 * Use in source and binary forms, with or without modification, is permitted provided that the following conditions are met:
 * 1. You may only use this software for internal evaluation and testing purposes and may not use the software for engaging
 * in live trades, unless and until you have entered into a separate agreement with MarketFactory governing the use of
 * MarketFactory software in a production environment.
 * 2. You may not distribute the software (in either source or binary forms) to third parties.
 * 3. All copies of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 *    THIS SOFTWARE IS PROVIDED BY MARKETFACTORY AND ITS LICENSORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
 *    BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
 *    NO EVENT SHALL MARKETFACTORY OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 *    OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 *    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 *    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 -->
<sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2016/sbe"
    package="mfsbe4"
    id="5"
    version="18320"
    semanticVersion="MF-FIX5.0SP2"
    description="Schema for marketdata and trading messages. Based on FIX50SP2. The protocol is designed to run over TCP."
    byteOrder="littleEndian">

    <!-- NOTES:

    For usage details, please refer to https://confluence.marketfactory.com/x/SwWhAQ

    The schema version is the schema modification date, expressed as days since Epoch (i.e. is of type LocalMktDate).
        version: echo $(($(date +%s)/86400))
        date:    echo $(date -d @$((version*86400)) +%F)

    This Schema utilises the following custom tags:
        20005    HasExtendedOrderFields
        20006    HopNetworkTime
        20007    HopArrivalTime
        20008    HasExtendedPriceFields
        20009    HasNDFFields
        20010    HasLegNDFFields
        20011    NoFixingRefs
        20012    Venuename
        20013    MDFlags
        20014    FixingReference
        20015    LegAllocCalculatedCcyQty
        20016    LegCumQty
        20017    LegLeavesQty
        20018    LotSize
        20019    SessionType
        20020    MarketType
        20021    RegulatoryBodies
        20030    NoBodyPassthruFields
        20031    BodyPassthruKey
        20032    BodyPassthruValue
        20040    NoBodyRegulatoryFields
        20041    BodyRegulatoryKey
        20042    BodyRegulatoryValue
        20050    NoLegPassthruFields
        20051    LegPassthruKey
        20052    LegPassthruValue
        20060    NoLegRegulatoryFields
        20061    LegRegulatoryKey
        20062    LegRegulatoryValue
        20070    NoAllocPassthruFields
        20071    AllocPassthruKey
        20072    AllocPassthruValue
        20080    NoAllocRegulatoryFields
        20081    AllocRegulatoryKey
        20082    AllocRegulatoryValue
        20090    NoEntryPassthruFields
        20091    EntryPassthruKey
        20092    EntryPassthruValue

    A command to help maintain this list:
        egrep 'id="(2[0-9]{4}|TODO)"' mfsbe4.xml  | awk 'BEGIN { FS="\"" }  {print $4, $2 }' | sort -u
-->

    <types>

        <!-- SBE defined types -->
        <composite name="messageHeader" description="The SBE header that is part of each message.">
            <type name="messageStart" primitiveType="uint32" description="Four-byte indicator of start of message to assist resynchronisation for protocol analysers. Constant value 1179469389, equivalent to 'MFMF'."/>
            <type name="messageLength" primitiveType="uint32" description="Length of the whole message. May span multiple packets."/>
            <type name="blockLength" primitiveType="uint16" description="The length of the message root block before repeating groups or variable data commences."/>
            <type name="templateId" primitiveType="uint16" description="The identifier for the template type of the message that is to follow."/>
            <type name="schemaId" primitiveType="uint16" description="The identifier for the schema that defines the message."/>
            <type name="version" primitiveType="uint16" description="The version of the schema allowing for extension."/>
            <type name="msgSeqNum" primitiveType="uint32" description="Sequence number for detecting missed messages. On detection of a sequence number gap, the recipient should immediately Logout and then Logon in order to resolve the dropped message(s)."/>
            <type name="sendingTime" primitiveType="uint64" description="Number of nanoseconds since epoch when the message was sent."/>
        </composite>

        <composite name="groupSizeEncoding" semanticType="NumInGroup" description="Repeating group dimensions: 0..n.">
            <type name="blockLength" primitiveType="uint8" description="Length of element."/>
            <type name="numInGroup" primitiveType="uint8" description="Number of items in repeating group."/>
        </composite>

        <composite name="conditionalGroupSizeEncoding" semanticType="NumInGroup" description="Conditionally populated group dimensions: 0..1.">
            <type name="blockLength" primitiveType="uint8"/>
            <type name="numInGroup" primitiveType="uint8" minValue="0" maxValue="1"/>
        </composite>

        <!-- Primitive types -->
        <type name="Int32NULL" presence="optional" nullValue="-2147483648" primitiveType="int32" semanticType="int" description="Nullable, signed 32-bit integer."/>
        <type name="Int8NULL" presence="optional" nullValue="-128" primitiveType="int8" semanticType="int" description="Nullable, signed 8-bit integer."/>
        <type name="uInt32NULL" presence="optional" nullValue="4294967295" primitiveType="uint32" semanticType="int" description="Nullable, unsigned 32-bit integer."/>
        <type name="uInt16NULL" presence="optional" nullValue="65535" primitiveType="uint16" semanticType="int" description="Nullable, unsigned 16-bit integer."/>
        <type name="uInt8NULL" presence="optional" nullValue="255" primitiveType="uint8" semanticType="int" description="Nullable, unsigned 8-bit integer."/>

        <type name="HeartBtInt" primitiveType="uint16" semanticType="int" minValue="1" maxValue="300" description="Heartbeat interval (seconds), specified by Client in Logon."/>
        <type name="SeqNum" presence="optional" nullValue="0" primitiveType="uint32" semanticType="SeqNum" description="Sequence number for detection of missed messages."/>
        <type name="RequestID" primitiveType="uint32" semanticType="String" description="Unique (within curent trading week) identifier to reliably link request and response messages."/>

        <type name="NumOfCompetitors" presence="optional" nullValue="-128" primitiveType="int8" minValue="-1" semanticType="int" description="0=Not in competition; -1=In competition (number of competitors unknown), n=In competition (Number of competitors); NULL=unknown."/>

        <!-- Date and Time types -->
        <type name="LocalMktDate" presence="optional" nullValue="0" primitiveType="uint16" semanticType="LocalMktDate" description="Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch."/>
        <type name="UTCTimestamp" presence="optional" nullValue="0" primitiveType="uint64" semanticType="UTCTimestamp" description="Number of nanoseconds since epoch."/>
        <type name="ValidUntilTime" presence="optional" nullValue="18446744073709551615" primitiveType="uint64" semanticType="UTCTimestamp" description="Number of nanoseconds since epoch. Default value ensures that quotes that do not have explicit TTLs are guaranteed to be valid until replaced or cencelled."/>

        <!-- String types -->
        <composite name="VarText" semanticType="String" description="Free format variable-length text string.">
            <type name="length" primitiveType="uint16" semanticType="Length"/>
            <type name="varData" length="0" primitiveType="uint8" semanticType="data" characterEncoding="UTF-8"/><!-- The length attribute is set to zero as special value to indicate that the character data is of variable length. -->
        </composite>

        <type name="Currency" primitiveType="char" length="3" semanticType="Currency" description="Currency code supported by MarketFactory. Usually the ISO 4217 Currency code value."/>
        <type name="Symbol" primitiveType="char" length="32" semanticType="String" description="Identifier for a security. For FX, the ccy pair must be provided as 'CCY1/CCY2'. For Futures, the Venue-specific contract code."/>
        <type name="Username" primitiveType="char" length="64" semanticType="String" description="Id given to user for logging on."/>
        <type name="Venuename" primitiveType="char" length="64" semanticType="String" description="Id given to user for logging on."/>
        <type name="Password" primitiveType="char" length="32" semanticType="String" description="Password used to logon."/>
        <type name="IDString" primitiveType="char" length="64" semanticType="String" description="Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<>"/>

        <!-- Price and Qty types -->
        <composite name="DecimalQtyNULL" semanticType="Qty" description="A number representing quantity. May be negative (e.g. Allocation direction).">
            <type name="mantissa" presence="optional" nullValue="-9223372036854775808" primitiveType="int64" description="The significant digits of the quantity value with an optional NULL value."/>
            <type name="exponent" presence="optional" nullValue="0" primitiveType="int8" description="The scale of the decimal number as a power of 10. Setting the exponent to zero or positive values constrains this composite type to expressing an integer value, otherwise decimal."/>
        </composite>

        <composite name="PriceNULL" semanticType="Price" description="A number representing price. May be negative (e.g. Forward Points).">
            <type name="mantissa" presence="optional" nullValue="-9223372036854775808" primitiveType="int64" description="The significant digits of the price value with an optional NULL value."/>
            <type name="exponent" presence="optional" nullValue="0" primitiveType="int8" description="The scale of the decimal number as a power of 10. Setting the exponent to zero or positive values constrains this composite type to expressing an integer value, otherwise decimal."/>
        </composite>

        <!-- Enumerations and sets -->

        <!-- ErrorReport -->
        <enum name="Subject" encodingType="uint8" semanticType="int" description="Categorization of the various Venue-side events that require Warning notification."> <!-- FIX defines semanticType as String -->
            <validValue name="SessionRejectSentByMF" description="A Session-level Reject message was sent to the Venue by MF.">0</validValue>
            <validValue name="SessionRejectReceivedByMF" description="A Session-level Reject message was sent by the Venue to MF.">1</validValue>
            <validValue name="BusinessMessageRejectSentByMF" description="A Business-level Reject message was sent to the Venue by MF.">2</validValue>
            <validValue name="BusinessMessageRejectReceivedByMF" description="A Business-level Reject message was sent by the Venue to MF.">3</validValue>
            <validValue name="MFAPIMessageRejected" description="Client sent MF an erroneous message.">4</validValue>
            <validValue name="MFAPIValidationError" description="Client message has bad content.">5</validValue>
            <validValue name="VenueLogonError" description="Venue connection or logon attempt failed. Informational.">6</validValue>
            <validValue name="VenueSeqNumError" description="Venue sequence number gap (either inbound or outbound). Informational.">7</validValue>
            <validValue name="VenueMessageUnexpected" description="An unexpected message was received from the Venue. E.g. A QuoteRequest for an unsupported SecurityType.">10</validValue>
            <validValue name="MFAPIForcedDisconnect" description="MF was forced to disconnect the Client session. This will only occur in erroneous circumstances, e.g. Client is unable to keep up with message rates.">8</validValue>
            <validValue name="MFAPITranslationFailure" description="MF was unable to correctly translate between Client and Venue messages. This will only occur in erroneous circumstances, e.g. Hardware failure leading to a restart and loss of required caches.">9</validValue>
        </enum>

        <!-- UserRequest, UserNotification -->
        <enum name="UserRequestType" encodingType="uint8" semanticType="int" description="Venue action requested by MFAPI Client.">
            <validValue name="LogOnUser" description="Request to establish connectivity with Venue.">1</validValue>
            <validValue name="LogOffUser" description="Request to cease connectivity with Venue.">2</validValue>
        </enum>

        <enum name="UserStatus" encodingType="uint8" semanticType="int" description="Venue notification of MFAPI Client status.">
            <validValue name="LoggedOn" description="User connected with Venue.">1</validValue>
            <validValue name="LoggedOff" description="User disconnected from Venue.">2</validValue>
            <validValue name="PrimeBrokerLoggedOff" description="Reuters specific. The PB is logged off and therefore new orders are not able to be submitted.">251</validValue>
            <validValue name="CreditLow" description="Credit status.">252</validValue> <!-- E.g. MAPI CTA sent when credit below 25%, Refer to UserNotification Text for TCID:USD remaining -->
            <validValue name="CreditExhausted" description="Credit status.">253</validValue> <!-- E.g. MAPI CTA sent when credit at 0%, Refer to UserNotification Text for additional detail -->
            <validValue name="CreditAvailable" description="Credit status.">254</validValue>
        </enum>

        <enum name="SessionType" encodingType="uint8" semanticType="int">
            <validValue name="Pricing" description="MFAPI Client establishes a MarketData session with the Venue, CLOB or ESP MassQuotes.">0</validValue>
            <validValue name="Orders" description="MFAPI Client establishes a Trading session with the Venue, CLOB or ESP Orders.">1</validValue>
            <validValue name="RFS" description="MFAPI Client establishes a RFS/RFQ quotation negotiation session with the Venue.">2</validValue>
            <validValue name="DropCopy" description="MFAPI Client establishes a STP session with the Venue.">3</validValue>
        </enum>

        <!-- SecurityStatus Types -->
        <enum name="SecurityTradingStatus" encodingType="uint8" semanticType="int" description="Trading status for a specific security.">
            <!--<validValue name="Close">4</validValue> -->
            <validValue name="ReadyToTrade">17</validValue>
            <!--<validValue name="NotAvailableForTrading">18</validValue> -->
            <validValue name="UnknownOrInvalid">20</validValue>
            <!--<validValue name="PreOpen">21</validValue>
            <validValue name="PostClose">26</validValue>
            <validValue name="NoCancel">27</validValue>
            <validValue name="TradeDateRoll">100</validValue>
            <validValue name="ValueDateRoll">101</validValue>
            <validValue name="Error">254</validValue> -->
        </enum>

        <!-- MarketData Types -->
        <enum name="SubscriptionRequestType" encodingType="char" semanticType="char" description="Market data subscription request type.">
            <validValue name="SnapshotAndUpdates" description="Subscription for all market data updates.">1</validValue>
            <validValue name="DisablePreviousSnapshot" description="Unsubscribe for all market data updates.">2</validValue>
        </enum>

        <set name="MDFlags" encodingType="uint16" semanticType="Boolean"> <!-- Implemented as a set to avoid any problems with null values -->
            <choice name="GapDetected" description="FALSE if this Venue does not implement Market Data time-slicing, or if there are further Incremental messages to follow in the current time-slice. TRUE if this is the last Incremental in the current time-slice, or if IsSnapshot=TRUE.">0</choice>
            <choice name="IsSnapshot" description="TRUE if this Venue Market Data message represents a snapshot of the full Book. FALSE otherwise.">1</choice>
        </set>

        <enum name="MDUpdateAction" encodingType="char" semanticType="char" description="A market data update action.">
            <validValue name="New">0</validValue>
            <validValue name="Change">1</validValue>
            <validValue name="Delete">2</validValue>
        </enum>

        <enum name="MDEntryType" encodingType="char" semanticType="char" description="A market data entry type.">
            <validValue name="Bid" description="Entry contains credit-screened bid details.">0</validValue>
            <validValue name="BestBid" description="Entry contains un-screened bid details.">u</validValue>
            <validValue name="Offer" description="Entry contains credit-screened offer details.">1</validValue>
            <validValue name="BestOffer" description="Entry contains un-screened offer details.">v</validValue>
            <validValue name="Trade" description="Entry contains Venue trade details.">2</validValue>
            <validValue name="TradePaid" description="Indicates trade where the Offer was aggressed.">y</validValue>
            <validValue name="WorstTradePaid" description="The worst price that was bought on EBS during a timeslice.">x</validValue>
            <validValue name="TradeGiven" description="Indicates trade where the Bid was aggressed.">z</validValue>
            <validValue name="WorstTradeGiven" description="The worst price that was sold on EBS during a timeslice.">w</validValue>
            <validValue name="MidPrice" description="Required for Regulatory reporting.">H</validValue>
            <validValue name="EmptyBook" description="Sent to indicate the book should be cleared.">J</validValue>
            <validValue name="TradeVolume" description="Aggregate volume during specified period.">B</validValue>
        </enum>

        <enum name="MDBookType" encodingType="uint8" semanticType="int" description="Defines the type of a market data update group.">
            <validValue name="PriceDepth" description="Book entries are ordered by price. Associated amounts are aggregated order quantities at that price level.">2</validValue>
            <validValue name="OrderDepth" description="Book entries are ordered by price then amount. Each entry represents an individual order.">3</validValue>
            <validValue name="Spread" description="Book entries are ordered by configured price deltas from ToB. Associated amounts are aggregate order quantities available between ToB and that level.">101</validValue>
            <validValue name="Amount" description="Book entries are ordered by configured amounts. Associated prices are the corresponding multiple-trade VWAP from ToB.">102</validValue>
            <validValue name="FullAmount" description="Book entries are ordered by configured amounts. Associated prices are single-trade.">103</validValue>
            <validValue name="TradeTicker" description="Paid/Given feed.">105</validValue>
            <validValue name="NOW_WAMR" description="Currenex_NOW Weighted Average Mid-Rate with bid/offer quotes banded into confidence percentiles.">106</validValue>
            <validValue name="NOW_Mid" description="Currenex_NOW Mid-match activity notification feed.">107</validValue>
        </enum>

        <enum name="MDSubBookType" encodingType="uint8" semanticType="int" description="TBD">
            <!-- CME -->
            <validValue name="CMEImpliedLiquidty" description="CME Implied Liquidity.">0</validValue>
            <!-- EBS Market Region -->
            <validValue name="EBSGlobal" description="EBS Ultra Global Feed.">1</validValue>
            <validValue name="EBSTokyo" description="EBS Ultra Multi-Region Feed: Order submitted in Tokyo.">2</validValue>
            <validValue name="EBSLondon" description="EBS Ultra Multi-Region Feed: Order submitted in London.">3</validValue>
            <validValue name="EBSNewYork" description="EBS Ultra Multi-Region Feed: Order submitted in New York.">4</validValue>
        </enum>

        <!-- Order Types -->
        <enum name="OrdType" encodingType="char" semanticType="char">
            <validValue name="Market" description="Standard Market order. An instruction to deal immediately at the best possible price (the current rate quotation).">1</validValue>
            <validValue name="Limit" description="Standard Limit order. An instruction to deal if a market moves to a MORE favourable level.">2</validValue>
            <validValue name="Stop" description="Standard Stop Loss order. An instruction to deal if a market moves to a LESS favourable level.">3</validValue>
            <validValue name="StopLimit" description="Standard Stop Limit order. Executes an exposure reducing limit order when market exceeds order's price.">4</validValue>
            <validValue name="PreviouslyQuoted" description="An order to hit an individual quote. To hit multiple quotes, AKA sweeping, the user must submit individual orders from best to worst price.">D</validValue>
            <validValue name="Funari" description="The order sstarts as a Limit order and executes any leaves quantity as a Market order.">I</validValue>
            <validValue name="IfTouched" description="The order is submitted to the market when a specified price is reached.">J</validValue>
            <validValue name="MarketLimit" description="Order starts as a Market order and executes any leaves quantity as a Limit order.">K</validValue>
            <validValue name="Pegged" description="The order price follows the market by a specified offset.">P</validValue>
        </enum>

        <enum name="TimeInForce" encodingType="char" semanticType="char">
            <validValue name="DAY" description="Day - The Order expires automatically on close of the trading day, if it is still unfilled.">0</validValue>
            <validValue name="GTC" description="Good 'til Canceled - The Order remains active until it is either executed or cancelled. NOTE: Maximum possible duration is one trading week, but is equivalent to DAY for most Venues that reset daily.">1</validValue>
            <validValue name="IOC" description="Immediate Or Cancel - The Order must be executed immediately, at least in part (Partial fills are allowed), otherwise the Order is cancelled. AKA 'Fill and Kill'">3</validValue>
            <validValue name="FOK" description="Fill Or Kill - The Order must be executed immediately, in full (no Partial fills), otherwise the Order is cancelled. AKA 'All Or None'.">4</validValue>
            <validValue name="GTD" description="Good 'til Date - The Order expires at the specified time (current business day).">6</validValue>
            <validValue name="GFT" description="Good For Time - The Order expires after the specified duration.">A</validValue>
            <validValue name="GFA" description="Good For Auction - The Order is only active in the auction period.">B</validValue>
            <validValue name="AMO" description="At Market Open - The Order can only  be created and modified when the market is in Pre-Open state.">2</validValue>
            <validValue name="AMC" description="At Market Close - The Order can only be created and modified when the market is in Pre-Close state.">7</validValue>
        </enum>

        <enum name="StrategyParameterType" encodingType="uint8" semanticType="int">
            <validValue name="Int">1</validValue>
            <validValue name="Length">2</validValue>
            <validValue name="NumInGroup">3</validValue>
            <validValue name="SeqNum">4</validValue>
            <validValue name="TagNum">5</validValue>
            <validValue name="Float">6</validValue>
            <validValue name="Qty">7</validValue>
            <validValue name="Price">8</validValue>
            <validValue name="PriceOffset">9</validValue>
            <validValue name="Amt">10</validValue>
            <validValue name="Percentage">11</validValue>
            <validValue name="Char">12</validValue>
            <validValue name="Boolean">13</validValue>
            <validValue name="String">14</validValue>
            <validValue name="MultipleCharValue">15</validValue>
            <validValue name="Currency">16</validValue>
            <validValue name="Exchange">17</validValue>
            <validValue name="MonthYear">18</validValue>
            <validValue name="UTCTimestamp">19</validValue>
            <validValue name="UTCTimeOnly">20</validValue>
            <validValue name="LocalMktDate">21</validValue>
            <validValue name="UTCDateOnly">22</validValue>
            <validValue name="Data">23</validValue>
            <validValue name="MultipleStringValue">24</validValue>
            <validValue name="Country">25</validValue>
            <validValue name="Language">26</validValue>
            <validValue name="TZTimeOnly">27</validValue>
            <validValue name="TZTimestamp">28</validValue>
            <validValue name="Tenor">29</validValue>
        </enum>

        <enum name="PegPriceType" encodingType="uint8" semanticType="int">
            <validValue name="MidPricePeg" description="Peg to midpoint between the Bid and the Offer.">2</validValue>
            <validValue name="MarketPeg" description="Peg to Bid if Selling, Offer if Buying.">4</validValue>
            <validValue name="PrimaryPeg" description="Peg to Bid if Buying, Offer if Selling.">5</validValue>
        </enum>

        <enum name="OrdStatus" encodingType="char" semanticType="char" description="Order status.">
            <validValue name="New">0</validValue>
            <validValue name="PartiallyFilled">1</validValue>
            <validValue name="Filled">2</validValue>
            <validValue name="Canceled">4</validValue>
            <validValue name="PendingCancel">6</validValue>
            <validValue name="Rejected">8</validValue>
            <validValue name="PendingNew">A</validValue>
            <validValue name="Calculated" description="For Drop-copy/STP notifications.">B</validValue>
            <validValue name="Expired">C</validValue>
            <validValue name="PendingReplace">E</validValue>
            <validValue name="Error" description="Used for Reuters/EBS when a trade fails validation. Also used when an order goes into a bad state. Both situations require manual intervention.">Z</validValue>
        </enum>

        <enum name="ExecType" encodingType="char" semanticType="char" description="Execution Type.">
            <validValue name="New">0</validValue>
            <validValue name="Canceled">4</validValue>
            <validValue name="Replaced">5</validValue>
            <validValue name="PendingCancel">6</validValue>
            <validValue name="Rejected">8</validValue>
            <validValue name="PendingNew">A</validValue>
            <validValue name="Calculated" description="For Drop-copy/STP notifications.">B</validValue>
            <validValue name="Expired">C</validValue>
            <validValue name="PendingReplace">E</validValue>
            <validValue name="Trade">F</validValue>
            <validValue name="CanceledLastLook" description="Fastmatch returns an indication that the Cancel reason is that the order was rejected because of a Last Look.">U</validValue>
            <validValue name="PendingMatch" description="Used for Reuters and EBS when there is an execution that is awaiting validation.">V</validValue>
            <validValue name="Error" description="Used for Reuters/EBS when a trade fails validation. Also used when an order goes into a bad state. Both situations require manual intervention.">Z</validValue>
        </enum>

        <enum name="ExecAckStatus" encodingType="char" semanticType="char" description="Confirms or denys Maker ExecutionReport.">
            <validValue name="Accepted">1</validValue>
            <validValue name="Rejected">2</validValue>
        </enum>

        <enum name="NegotiationMethod" encodingType="uint8" semanticType="int" description="Indicates whether QuoteRequest is for ESP or RFS.">
            <validValue name="ESP" description="Executable Streaming Prices via MassQuote.">100</validValue>
            <validValue name="RFS" description="Request For Stream via Quote.">101</validValue>
            <validValue name="RFQ" description="Request For Quote (single-shot) via Quote.">102</validValue>
            <validValue name="Order" description="Instruction to Venue.">103</validValue>
        </enum>

        <enum name="QuoteRespType" encodingType="uint8" semanticType="int" description="Reason for termination of QuoteRequest.">
            <validValue name="Pass" description="ESP/RFS Stream rejected or terminated by Taker or Maker.">6</validValue>
            <validValue name="TimedOut" description="RFS Stream duration ended without Order. Maker, Taker and ECN may all have individual time-outs.">8</validValue>
        </enum>

        <enum name="MarketType" encodingType="char" semanticType="char" description="Indicates whether the NDF is onshore or offshore.">
            <validValue name="Regular" description="Utilised when the NDF does not differentiate between onshore and offshore markets.">0</validValue>
            <validValue name="Onshore" description="Onshore pricing of the NDF.">1</validValue>
            <validValue name="Offshore" description="Offshore pricing of the NDF.">2</validValue>
        </enum>

        <set name="TradingFlags" encodingType="uint64" semanticType="Boolean"> <!-- Implemented as a set to avoid any problems with null values -->
            <choice name="PossDupFlag" description="TRUE if message has been resent in response to an identified sequence number gap.">0</choice>
        </set>

        <enum name="Side" encodingType="char" semanticType="char" description="Side: Taker Buys against Maker Offer, Sells against Maker Bid." >
            <validValue name="Buy">1</validValue>
            <validValue name="Sell">2</validValue>
            <validValue name="TwoWay">7</validValue>
        </enum>

        <set name="QuoteType" encodingType="uint8" semanticType="Boolean" description="Bid/Offer quote condition flags."> <!-- Implemented as a set to avoid any problems with null values -->
            <choice name="BidIsTradeable" description="FALSE if the Quoted Bid price is Indicative.">0</choice>
            <choice name="OfferIsTradeable" description="FALSE if the Quoted Offer price is Indicative">1</choice>
        </set>

        <enum name="SecurityType" encodingType="uint8" semanticType="String" description="Defines the standard product types supported by MarketFactory.">
            <!-- Single-legged -->
            <validValue name="SPT" description="FX Spot">0</validValue>
            <validValue name="FWD" description="FX Forward">1</validValue>
            <validValue name="NDF" description="FX Non-Deliverable Forward">2</validValue>
            <!-- Two-legged -->
            <validValue name="SWP" description="FX Swap">3</validValue>
            <validValue name="NDS" description="FX Non-Deliverable Swap">4</validValue>
            <!-- N-Legged, N > 1 -->
            <validValue name="BLK" description="FX Block">5</validValue>
            <validValue name="NDB" description="FX Non-Deliverable Block">6</validValue>
            <!-- Non-FX -->
            <validValue name="FUT" description="Future">7</validValue>
            <validValue name="IMM" description="Money Market (Cash)">8</validValue>
            <validValue name="OPT" description="FX Option">9</validValue>
            <validValue name="CFD" description="Contract For Difference">10</validValue>
        </enum>

        <enum name="TenorType" encodingType="uint8" semanticType="int" description="Defines the standard Tenors supported by MarketFactory.">
            <validValue name="BKN" description="Broken Date, refer to LegSettlDate for LocalMktDate containing YYYYMMDD value.">0</validValue>
            <!-- Standard rolling Tenors -->
            <validValue name="TOD" description="Today, equivalent to T+0">1</validValue>
            <validValue name="TOM" description="Tomorrow, equivalent to T+1">2</validValue>
            <validValue name="SPT" description="Spot, equivalent to T+1 or T+2 (depending on the currency pair)">3</validValue>
            <validValue name="D1" description="One day after Spot">4</validValue>
            <validValue name="D2" description="Two days after Spot">5</validValue>
            <validValue name="D3" description="Three days after Spot">6</validValue>
            <validValue name="D4" description="Four days after Spot">7</validValue>
            <validValue name="W1" description="One Week after Spot">8</validValue>
            <validValue name="W2" description="Two Weeks after Spot">9</validValue>
            <validValue name="W3" description="Three Weeks after Spot">10</validValue>
            <validValue name="M1" description="One Month after Spot">11</validValue>
            <validValue name="M2" description="Two Months after Spot">12</validValue>
            <validValue name="M3" description="Three Months after Spot">13</validValue>
            <validValue name="M4" description="Four Months after Spot">14</validValue>
            <validValue name="M5" description="Five Months after Spot">15</validValue>
            <validValue name="M6" description="Six Months after Spot">16</validValue>
            <validValue name="M7" description="Seven Months after Spot">17</validValue>
            <validValue name="M8" description="Eight Months after Spot">18</validValue>
            <validValue name="M9" description="Nine Months after Spot">19</validValue>
            <validValue name="M10" description="Ten Months after Spot">20</validValue>
            <validValue name="M11" description="Eleven Months after Spot">21</validValue>
            <validValue name="Y1" description="One Year after Spot">22</validValue>
            <validValue name="M15" description="Fifteen Months after Spot">23</validValue>
            <validValue name="M18" description="Eighteen Months after Spot">24</validValue>
            <validValue name="M21" description="Twenty-one Months after Spot">25</validValue>
            <validValue name="Y2" description="Two Years after Spot">26</validValue>
            <validValue name="Y3" description="Three Years after Spot">27</validValue>
            <validValue name="Y4" description="Four Years after Spot">28</validValue>
            <validValue name="Y5" description="Five Years after Spot">29</validValue>
            <validValue name="Y6" description="Six Years after Spot">30</validValue>
            <validValue name="Y7" description="Seven Years after Spot">31</validValue>
            <validValue name="Y8" description="Eight Years after Spot">32</validValue>
            <validValue name="Y9" description="Nine Years after Spot">33</validValue>
            <validValue name="Y10" description="Ten Years after Spot">34</validValue>
            <validValue name="Y15" description="Fifteen Years after Spot">35</validValue>
            <validValue name="Y20" description="Twenty Years after Spot">36</validValue>
            <validValue name="Y25" description="Twenty-five Years after Spot">37</validValue>
            <validValue name="Y30" description="Thirty Years after Spot">38</validValue>
            <!-- Single-legged Swaps -->
            <validValue name="ON" description="Overnight - TOD/TOM Single-legged Swap">50</validValue>
            <validValue name="TN" description="Tom-Next - TOM/SPT Single-legged Swap">51</validValue>
            <validValue name="SN" description="Spot-Next - SPT/D1 Single-legged Swap">52</validValue>
            <!-- Short-dated day counts -->
            <validValue name="T2" description="T+2 - Second day after trade date">53</validValue>
            <validValue name="T3" description="T+3 - Third day after trade date">54</validValue>
            <validValue name="T4" description="T+4 - Fourth day after trade date">55</validValue>
            <validValue name="T5" description="T+5 - Fifth day after trade date">56</validValue>
            <!-- Fixed dates -->
            <!-- IMM Dates are the four quarterly dates of each year used as the maturity date for most futures and options contracts. Typically the third Wednesday of March, June, September and December -->
            <validValue name="IMMF" description="January Futures Expiration Date">60</validValue>
            <validValue name="IMMG" description="February Futures Expiration Date">61</validValue>
            <validValue name="IMMH" description="March Futures Expiration/IMM1 Date">62</validValue>
            <validValue name="IMMJ" description="April Futures Expiration Date">63</validValue>
            <validValue name="IMMK" description="May Futures Expiration Date">64</validValue>
            <validValue name="IMMM" description="June Futures Expiration/IMM2 Date">65</validValue>
            <validValue name="IMMN" description="July Futures Expiration Date">66</validValue>
            <validValue name="IMMQ" description="August Futures Expiration Date">67</validValue>
            <validValue name="IMMU" description="September Futures Expiration/IMM3 Date">68</validValue>
            <validValue name="IMMV" description="October Futures Expiration Date">69</validValue>
            <validValue name="IMMX" description="November Futures Expiration Date">70</validValue>
            <validValue name="IMMZ" description="December Futures Expiration/IMM4 Date">71</validValue>
            <!-- The first business day of the chosen month -->
            <validValue name="BOMF" description="The first business day of January. Also used to represent first working day of next Year (e.g. 360T).">110</validValue>
            <validValue name="BOMG" description="The first business day of February">111</validValue>
            <validValue name="BOMH" description="The first business day of March">112</validValue>
            <validValue name="BOMJ" description="The first business day of April">113</validValue>
            <validValue name="BOMK" description="The first business day of May">114</validValue>
            <validValue name="BOMM" description="The first business day of June">115</validValue>
            <validValue name="BOMN" description="The first business day of July">116</validValue>
            <validValue name="BOMQ" description="The first business day of August">117</validValue>
            <validValue name="BOMU" description="The first business day of September">118</validValue>
            <validValue name="BOMV" description="The first business day of October">119</validValue>
            <validValue name="BOMX" description="The first business day of November">120</validValue>
            <validValue name="BOMZ" description="The first business day of December">121</validValue>
            <!-- The first spot value date after the last business day of the chosen month e.g. CNX RFS NDFs -->
            <validValue name="JAN" description="The first spot value date after the last business day of January">72</validValue>
            <validValue name="FEB" description="The first spot value date after the last business day of February">73</validValue>
            <validValue name="MAR" description="The first spot value date after the last business day of March">74</validValue>
            <validValue name="APR" description="The first spot value date after the last business day of April">75</validValue>
            <validValue name="MAY" description="The first spot value date after the last business day of May">76</validValue>
            <validValue name="JUN" description="The first spot value date after the last business day of June">77</validValue>
            <validValue name="JUL" description="The first spot value date after the last business day of July">78</validValue>
            <validValue name="AUG" description="The first spot value date after the last business day of August">79</validValue>
            <validValue name="SEP" description="The first spot value date after the last business day of September">80</validValue>
            <validValue name="OCT" description="The first spot value date after the last business day of October">81</validValue>
            <validValue name="NOV" description="The first spot value date after the last business day of November">82</validValue>
            <validValue name="DEC" description="The first spot value date after the last business day of December">83</validValue>
            <!-- The last business day of the chosen month e.g. CNX RFS NDFs -->
            <validValue name="EOMF" description="The last business day of January">84</validValue>
            <validValue name="EOMG" description="The last business day of February">85</validValue>
            <validValue name="EOMH" description="The last business day of March">86</validValue>
            <validValue name="EOMJ" description="The last business day of April">87</validValue>
            <validValue name="EOMK" description="The last business day of May">88</validValue>
            <validValue name="EOMM" description="The last business day of June">89</validValue>
            <validValue name="EOMN" description="The last business day of July">90</validValue>
            <validValue name="EOMQ" description="The last business day of August">91</validValue>
            <validValue name="EOMU" description="The last business day of September">92</validValue>
            <validValue name="EOMV" description="The last business day of October">93</validValue>
            <validValue name="EOMX" description="The last business day of November">94</validValue>
            <validValue name="EOMZ" description="The last business day of December. Also used to represent last working day of current Year (e.g. 360T).">95</validValue>
            <!-- Other rolling Tenors - e.g. R5FX -->
            <validValue name="D1M1" description="Tomorrow One Month - the M1 Tenor for tomorrow’s trade date.">100</validValue>
            <validValue name="EOM0" description="Last business day of current Month">101</validValue>
            <validValue name="EOM1" description="Last business day of next Month">102</validValue>
            <!-- E.g. Futures -->
            <validValue name="YYYYMM" description="Refer to LegSettlDate for LocalMktDate used to derive YYYYMM value. Defines monthly Futures contract expiry. Consider using IMM[F-Z] for monthly expiry within the next twelve months.">250</validValue>
            <validValue name="YYYYWW" description="Refer to LegSettlDate for LocalMktDate used to derive YYYYWW value. Defines weekly Futures contract expiry.">251</validValue>
            <validValue name="YYYYMMDD" description="Refer to LegSettlDate for LocalMktDate containing YYYYMMDD value. Defines daily Futures contract expiry. Synonymous to BKN.">252</validValue>
        </enum>

        <!-- Regulatory Details-->
        <enum name="BodyRegulatoryKey" encodingType="uint8" semanticType="int" description="Details of conditionally populated Regulatory fields.">
            <!-- SEF 0..19 -->
            <validValue name="SEFTakerIsUSPerson" description="Y/N: A legal term referring to any U.S. person or legal entity anywhere in the world that should be taxed under U.S. law.">0</validValue>
            <validValue name="SEFDataRepository" description="Repository for the reporting of SEF trades.">1</validValue> <!-- PartyRole 102 -->
            <validValue name="SEFIsLargeTrade" description="Y/N: Indicates whether or not part of a large trade.">3</validValue>
            <validValue name="SEFRequiredTransaction" description="Y/N: Indicates whether or not a required transaction (rather than permitted).">4</validValue>
            <validValue name="SEFClearingExempted" description="Y/N: Indicates whether or not this trade is exempted from clearing.">5</validValue>
            <validValue name="SEFClearer" description="Conditionally populated if SEFClearingExempted=N. Clearing House (DCO) to be used for the clearing of SEF trades.">6</validValue>
            <validValue name="SEFFinancialEntityDefinition" description="'SD' (Swap Dealer), 'MSP' (Major Swap Participant), or 'ECP' (Eligible Contract Participant).">7</validValue>
            <validValue name="SEFCustomerTypeIndicator" description="1/2/3/4: https://www.investopedia.com/terms/c/cti.asp">8</validValue>
            <validValue name="SEFIsBlock" description="Y/N: Indicates whether or not the trade is classified as a Block for SEF purposes?">9</validValue>

            <!-- EMIR 20..39 -->
            <validValue name="EMIRDoNotUse" description="Intentionally blank.">20</validValue>
            <!-- MiFID 40..59 -->
            <validValue name="MiFIDProductISIN" description="Product-level 12 character International Securities Identification Number http://www.anna-web.org/home/derivatives-service-bureau/. Not populated for single-legged products (refer to LegMiFIDISIN instead).">40</validValue>
            <validValue name="MiFIDExecutingDecisionMakerAsNaturalPerson" description="Shortcode representing the Executing Decision Maker Natural Person of message sender.">42</validValue>
            <validValue name="MiFIDExecutingDecisionMakerAsAlgorithm" description="Shortcode representing the Executing Decision Maker Algorithm of message sender.">47</validValue>
            <validValue name="MiFIDInvestmentDecisionMakerAsNaturalPerson" description="Shortcode representing the Investment Decision Maker Natural Person of message sender.">43</validValue>
            <validValue name="MiFIDInvestmentDecisionMakerAsAlgorithm" description="Shortcode representing the Investment Decision Maker Algorithm of message sender.">57</validValue>
            <validValue name="MiFIDLargeInScaleWaiver" description="Y/N: Pre-Trade Block Size waiver indicator.">41</validValue>
            <validValue name="MiFIDIlliquidInstrumentWaiver" description="Y/N: Pre-Trade Illiquid Instrument waiver indicator.">44</validValue>
            <validValue name="MiFIDSizeSpecificWaiver" description="Y/N: Pre-Trade Size-specific (trade of substantial size etc.) waiver indicator.">45</validValue>
            <validValue name="MiFIDLargeInScaleDeferral" description="Y/N: Post-Trade Block Size deferral indicator.">54</validValue>
            <validValue name="MiFIDIlliquidInstrumentDeferral" description="Y/N: Post-Trade Illiquid Instrument deferral indicator.">55</validValue>
            <validValue name="MiFIDSizeSpecificDeferral" description="Y/N: Post-Trade Size-specific (trade of substantial size etc.) deferral indicator.">56</validValue>
            <validValue name="MiFIDLiquidityProvisionFlag" description="Y/N: Indicates that the Order is part of a liquidity provision activity.">46</validValue>
            <validValue name="MiFIDPackageTradeFlag" description="Y/N: Indicates that the Order is considered a Package/aggregated transaction for reporting purposes.">48</validValue> <!-- Swaps, Blocks, Batches in scope -->
            <validValue name="MiFIDPackageID" description="Conditionally populated if MiFIDPackageTradeFlag=Y. Identifier assigned to a collection of trades so they may be analysed as a single unit.">49</validValue>
            <validValue name="MiFIDSystematicInternaliser" description="Segment MIC code (as per ISO 10383) of message sender, indicating it is a Systematic Internaliser.">50</validValue>
            <validValue name="MiFIDRiskReductionOrderFlag" description="Y/N: In the context of ESMA RTS 22 Article 4(2)(i), signifies whether or not the Order is a transaction 'to reduce risk in an objectively measurable way in accordance with Article 57 of Directive 2014/65/EU'.">51</validValue>
            <validValue name="MiFIDTradingCapacity" description="DEAL: Firm Deals on own account; MTCH: Firm trades in a matched principal capacity; AOTC: Any other trading capacity (e.g. Agency).">52</validValue>
            <validValue name="MiFIDNonPriceFormingTrade" description="Y/N: Transactions where the exchange of financial instruments is determined by factors other than the current market valuation of the financial instrument as listed under Article 13.">53</validValue>
        </enum>

         <enum name="LegRegulatoryKey" encodingType="uint8" semanticType="int" description="Details of conditionally populated Regulatory fields.">
            <!-- SEF 0..19 -->
            <validValue name="LegSEFUSIPrefix" description="10 character Unique Swap Identifier Prefix for this Leg, usually a hash of the code issueing authority’s LEI. The Maker may choose to generate their own IDs, in whhich case this value will differ from the that provided in the Order.">0</validValue>
            <validValue name="LegSEFUSI" description="32 character Unique Swap Identifier (USI) for this Leg. The Maker may choose to generate their own IDs, in which case the ExecutionReport value will differ from the that provided in the Order.">1</validValue>
            <!--- TODO UPI Prefix/Value -->
            <!-- EMIR 20..39 -->
            <validValue name="LegEMIRUTIPrefix" description="10 character Unique Trade Identifier (UTI) Prefix for this Leg, usually a hash of the code issueing authority’s LEI.">20</validValue>
            <validValue name="LegEMIRUTI" description="42 character Unique Trade Identifier (UTI) for this Leg.">21</validValue>
            <!-- MiFID 40..59 -->
            <validValue name="LegMiFIDISIN" description="12 character International Securities Identification Number http://www.anna-web.org/home/derivatives-service-bureau/.">40</validValue>
            <validValue name="LegMiFIDTVTIC" description="52 character Trading Venue Transaction Identification Code (TVTIC) for this Leg.">41</validValue>
            <validValue name="LegMiFIDConversionFlag" description="Y/N: Indicates whether or not this Leg is an FX conversion trade and related to a transaction which would be exempt from margining and reporting. Tenor must be less than T+5 - i.e. TOD, TOM, SPT, D1 or D2. Sometimes known as a long-dated Spot.">42</validValue>
            <!-- SFTR 60..69 -->
            <validValue name="LegSFTRSecuritiesFinancingTransactionFlag" description="Y/N: Indicates whether or not this Leg is a transactions where securities are used to borrow cash, or vice versa.">60</validValue>
        </enum>

        <enum name="AllocRegulatoryKey" encodingType="uint8" semanticType="int" description="Details of conditionally populated Regulatory fields.">
            <!-- SEF 0..19 -->
            <validValue name="AllocSEFUSIPrefix" description="10 character Unique Swap Identifier Prefix for this Allocation, usually a hash of the code issueing authority’s LEI.">0</validValue>
            <validValue name="AllocSEFUSI" description="32 character Unique Swap Identifier (USI) for this Allocation.">1</validValue>
            <!-- EMIR 20..39 -->
            <validValue name="AllocEMIRUTIPrefix" description="10 character Unique Trade Identifier (UTI) Prefix for this Allocation, usually a hash of the code issueing authority’s LEI.">20</validValue>
            <validValue name="AllocEMIRUTI" description="42 character Unique Trade Identifier (UTI) for this Allocation.">21</validValue>
            <!-- MiFID 40..59 -->
            <validValue name="AllocMiFIDTVTIC" description="52 character Trading Venue Transaction Identification Code (TVTIC) for this Allocation">41</validValue>
            <validValue name="AllocMiFIDConversionFlag" description="Y/N: Indicates whether or not the Allocation is an FX conversion trade and related to a transaction which would be exempt from margining and reporting. Tenor must be less than T+5 - i.e. TOD, TOM, SPT, D1 or D2.">42</validValue>
            <validValue name="AllocMiFIDNonPriceFormingTrade" description="Y/N: Transactions where the exchange of financial instruments is determined by factors other than the current market valuation of the financial instrument as listed under Article 13.">43</validValue>
            <validValue name="AllocMiFIDLEI" description="Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party ContraFirm. A Legal Entity Identifier defined by ISO 17442 to identify the third party allocation account entity.">44</validValue>
        </enum>

        <set name="RegulatoryBodies" encodingType="uint64" semanticType="Boolean" description="Allows definition of which Regulatory Fields the Order will include.">
            <choice name="SEF" description="Dodd-Frank Swap Execution Facility.">0</choice>
            <choice name="EMIR" description="European Market Infrastructure Regulation.">1</choice>
            <choice name="MiFID" description="Markets in Financial Instruments Directive.">2</choice>
            <choice name="SFTR" description="Securities Financing Transaction Regulation.">3</choice>
        </set>

        <!-- Party Identification -->
        <enum name="PartyRole" encodingType="uint8" semanticType="int" description="Details of conditionally populated counterparty identification fields.">
            <validValue name="ExecutingFirm" description="Maker Firm responsible for filling/rejecting this Order.">1</validValue>
            <validValue name="ExecutingUnit" description="Maker branch/business unit under which this trade will be booked.">59</validValue>
            <validValue name="ExecutingUnitLocation" description="Location of the Branch responsible for the execution of the client's order. Two-character ISO 3166 Country Code.">251</validValue> <!-- http://fiximate.fixtrading.org/en/FIX.5.0SP2_EP249/tag803.html = 70 -->
            <validValue name="ExecutingTrader" description="Maker Trader responsible for filling/rejecting this Order - may be human or autotrader.">12</validValue>
            <validValue name="ExecutingFirmLEI" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. A Legal Entity Identifier defined by ISO 17442 to identify the Maker Firm.">253</validValue> <!-- http://fiximate.fixtrading.org/en/FIX.5.0SP2_EP249/tag803.html = 84 -->
            <validValue name="OrderOriginationFirm" description="Taker Firm responsible for submission of this Order.">13</validValue>
            <validValue name="OrderOriginationFirmLocation" description="Location of the Branch responsible for the submission of the client's order. Two-character ISO 3166 Country Code.">250</validValue> <!-- http://fiximate.fixtrading.org/en/FIX.5.0SP2_EP249/tag803.html = 70 -->
            <validValue name="OrderOriginationTrader" description="Taker Trader responsible for submission of this Order - may be human or autotrader.">11</validValue>
            <validValue name="OrderOriginationFirmLEI" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. A Legal Entity Identifier defined by ISO 17442 to identify the Taker Firm.">254</validValue> <!-- http://fiximate.fixtrading.org/en/FIX.5.0SP2_EP249/tag803.html = 84 -->
            <validValue name="ContraFirm" description="Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party.">17</validValue> <!-- e.g. 360T TEX -->
            <validValue name="ContraTrader" description="Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party.">37</validValue> <!-- e.g. 360T TEX -->
            <validValue name="ContraFirmLEI" description="Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party. A Legal Entity Identifier defined by ISO 17442 to identify the third party Firm.">252</validValue> <!-- e.g. 360T TEX -->  <!-- http://fiximate.fixtrading.org/en/FIX.5.0SP2_EP249/tag803.html = 84 -->
            <validValue name="ExecutionVenue" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. May be an LEI or MIC of the Swap Execution Facility (SEF), Multilateral Trading Facility (MTF), Organized Trading Facility (OTF) or Regulated Market (RM).">73</validValue>
            <validValue name="PrimeBroker" description="The counterparty Prime Broker.">79</validValue>
            <validValue name="ReportingEntity" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. May be an LEI or MIC, or 'ExecutingFirm', 'OrderOriginationFirm', 'ExecutionVenue', 'Unknown'.">116</validValue>
        </enum>

    </types>

<!--
 *
 * Session-Level Messages
 *
 -->

    <sbe:message name="Logon" id="1" semanticType="A" description="Used to establish a session with the server.">
        <field name="HeartBtInt" id="108" type="HeartBtInt" description ="Heartbeat-generation timeout - the interval with which the client wishes to validate connection health. If zero then no regular heartbeat messages will be generated."/>
        <field name="NextExpectedMsgSeqNum" id="789" type="SeqNum" presence="required" description="Provided by MFAPI Client to support MF message gap checks. If equal to the next-to-be-assigned MF sequence then Whisperer will respond with a LogonResponse message and then proceed with the session as normal. If lower, then Whisperer will respond with a LogonResponse message and immediately (re)send persisted messages or GapFills, in order. On completion, it will proceed with the session as normal. If higher, then Whisperer will respond with a Logout message to abort the session."/>
        <field name="Username" id="553" type="Username" description="MF-created and assigned MFAPI user."/>
        <field name="Password" id="554" type="Password" description="MF-created password for user."/>
        <field name="Venuename" id="20012" type="Venuename" description="MF-defined Venue name. This will include its geographical location, e.g. 'Currenex_NOW NY'"/>
        <field name="SessionType" id="20019" type="SessionType" description="Indicates desired session type for user, bilaterally agreed with MF."/>
        <data name="Text" id="58" type="VarText" description="Free-form text string."/>
    </sbe:message>

    <sbe:message name="LogonResponse" id="2" semanticType="A" description="An acknowledgement from the server that the Logon was successful.">
        <field name="NextExpectedMsgSeqNum" id="789" type="SeqNum" presence="required" description="Provided by MF to support MFAPI Client message gap checks. If equal to the next-to-be-assigned MFAPI Client sequence then the client should proceed with the session as normal. If lower, then the client should immediately (re)send persisted messages or GapFills, in order. On completion, it may then proceed with the session as normal. If higher, then the client should respond with a Logout message to abort the session."/>
    </sbe:message>

    <sbe:message name="Logout" id="3" semanticType="5" description="A request to stop the session.">
        <data name="Text" id="58" type="VarText" description="Text string detailing the logout reason."/>
    </sbe:message>

    <sbe:message name="LogoutResponse" id="4" semanticType="5" description="An acknowledgement that the session has been terminated.">
    </sbe:message>

    <sbe:message name="SequenceResetGapFill" id="5" semanticType="4" description="Used to explicitly skip blocks of unpersisted messages during a replay, if a sequence gap is detected.">
        <field name="NewSeqNo" id="36" type="SeqNum" presence="required" description="The sequence number of the next message to be transmitted."/>
    </sbe:message>

    <sbe:message name="Heartbeat" id="6" semanticType="0" description="This is sent from each side of the connection periodically.">
        <field name="Username" id="553" type="Username" presence="optional" description="Echoed by MF, to assist session diagnostics. MF-created and assigned MFAPI user."/>
        <field name="Venuename" id="20012" type="Venuename" presence="optional" description="Echoed by MF, to assist session diagnostics. MF-defined Venue name."/>
        <field name="SessionType" id="20019" type="SessionType" presence="optional" description="Echoed by MF, to assist session diagnostics. Indicates desired session type for user, bilaterally agreed with MF."/>
        <data name="TestReqID" id="112" type="VarText" description="Conditionally populated if the Heartbeat is sent in response to a TestRequest. Free-form text string as populated in the TestRequest. e.g. UTC/Epoch Timestamp."/>
    </sbe:message>

    <sbe:message name="TestRequest" id="7" semanticType="1" description="Sent by either side in order to generate a Heartbeat response. May also be used to determine approximate application round-trip times.">
        <data name="TestReqID" id="112" type="VarText" description="Free-form text string to be returned in resulting Heartbeat. e.g. UTC/Epoch Timestamp."/>
    </sbe:message>

<!--
 *
 * Venue Status Messages
 *
 -->

    <sbe:message name="UserRequest" id="105" semanticType="BE" description="MFAPI Client initiates connection/disconnection to/from Venue. NOTE:Each MFAPI CLient Username will be associated (n-n) with a specific Venue credential. Mapping bilaterally agreed between MF and Customer.">
        <field name="UserRequestType" id="924" type="UserRequestType"/>
        <data name="Text" id="58" type="VarText" description="Explanation of user request, e.g. reason for Venue logout."/>
    </sbe:message>

    <sbe:message name="UserNotification" id="106" semanticType="CB" description="Venue notification of Client events.">
        <field name="UserStatus" id="926" type="UserStatus"/>
        <data name="Text" id="58" type="VarText" description="Explanation of status, if any."/>
    </sbe:message>

    <sbe:message name="ErrorReport" id="107" semanticType="U2" description="Warns MFAPI Client of erroneous events.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this ErrorReport may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>

        <field name="Subject" id="147" type="Subject" description="Class of Warning."/><!-- Venue-side eg Reject, BusinessMessageReject; Client-side - makes wrong API call for Venue type etc -->
        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Conditionally populated by MF if ErrorReport triggered by Venue. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue/MFAPI message."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue/Client clock) that the Venue/Client message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
        <data name="Text" id="58" type="VarText" description="Additional detail required in order to address the Warning. E.g. Venue FIX message."/>
    </sbe:message>

<!--
 *
 * Market Data Messages - Order Matching
 *
 -->

    <sbe:message name="MarketDataRequest" id="201" semanticType="V" description="A request to create, cancel, or otherwise manipulate a subscription for a single security from a specific Venue."> <!-- NOTE: No support for client provision of desired rungs for Full Amount trading. This is currently done in http://my.mf:8080/#/profile_exchange_instruments -->
        <!-- Identification -->
        <field name="MDReqID" id="262" type="RequestID" description="Unique ID specified by the subscriber."/>
        <!-- State -->
        <field name="SubscriptionRequestType" id="263" type="SubscriptionRequestType"/>
        <field name="MarketDepth" id="264" type="uint8" semanticType="int" description="0=Full Book, 1=Top of Book, n=Number of Levels."/>
        <field name="MDBookType" id="1021" type="MDBookType" description="Specifies the type of book to be requested."/> <!-- Custom use of this tag. -->
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS). NOTE: This message is NOT to be used for BLK, IMM or OPT Security Types."/>
        <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally required if the Venue offers multiple liquidity pools for the same security. E.g. EBS Standard/Fixing/FixingOffset/SwapOffset."/>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/> <!-- Custom use of this tag. -->
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/> <!-- Custom use of this tag. -->

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if SecurityType=NDF/NDS.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>
                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>
        </group>
    </sbe:message>

    <sbe:message name="MarketDataRequestReject" id="202" semanticType="Y" description="A rejection of a request for market data.">
        <!-- Identification -->
        <field name="MDReqID" id="262" type="RequestID" description="Unique ID specified by the subscriber."/>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
        <data name="Text" id="58" type="VarText" description="Text string detailing the rejection."/>
    </sbe:message>

    <sbe:message name="SecurityStatus" id="203" semanticType="f" description="Sent by MF in response to a MarketDataRequest and should be processed before the first MarketDataIncrementalRefresh. Can also arrive asynchronously if the state of a security changes - e.g. Date Roll">
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS). NOTE: This message is NOT to be used for BLK, IMM or OPT Security Types."/>
        <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally required if the Venue multiple offers multiple liquidity pools for the same security. E.g. EBS Standard/Fixing/FixingOffset/SwapOffset."/>

        <field name="TradeDate" id="75" type="LocalMktDate" description="Trade Session Date of security, as provided by the Venue."/> <!-- Custom use of this tag. -->
        <!-- 625 - TradingSessionSubID better -->
        <field name="SecurityTradingStatus" id="326" type="SecurityTradingStatus" description="Identifies the trading status applicable to the instrument or Security Group"/> <!-- Custom use of this tag. -->
        <field name="MinQty" id="110" type="DecimalQtyNULL" description="Minimum Order size allowed by the Venue."/> <!-- Custom use of this tag. -->
        <field name="ContractMultiplier" id="231" type="DecimalQtyNULL" description="Specifies the ratio or multiply factor to convert from 'nominal' units (e.g. contracts) to total units."/>
        <field name="MinPriceIncrement" id="969" type="PriceNULL" description="Tick value for the instrument, specified by the Venue."/>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/> <!-- Custom use of this tag. -->
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/> <!-- Custom use of this tag. -->

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if SecurityType=NDF/NDS.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>
                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>
        </group>

        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/> <!-- E.g. EBS Ultra MarketRegion -->
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
        <data name="Text" id="58" type="VarText" description="Explanation of status state."/>
    </sbe:message>

    <sbe:message name="MarketDataIncrementalRefresh" id="204" semanticType="X" description="Contains any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades,  quotes and Laddered/VWAP prices, etc. All of these types of Market Data Entries can be changed and deleted.">
        <!-- Identification -->
        <field name="MDReqID" id="262" type="RequestID" description="Unique ID specified by the subscriber."/> <!--NOTE: FIX defines this tag as a string. -->
        <field name="ApplSeqNum" id="1181" type="SeqNum" description="Incrementing sequence number populated by MF, to facilitate UDP message gap detection."/>
        <field name="MDBookType" id="1021" type="MDBookType" description="Instructs Taker as to how the book should be interpreted."/>
        <field name="MDFlags" id="20013" type="MDFlags" description="Additional state information relating to this Market Data message."/>

        <group name="NoMDEntries" id="268" dimensionType="groupSizeEncoding" description="One entry for each individual change in the market data message.">
            <field name="MDUpdateAction" id="279" type="MDUpdateAction" description="The type of update action to be applied to this market data entry."/>
            <field name="MDSubBookType" id="1173" type="MDSubBookType" presence="optional" description="Identifies component of aggregated books. E.g. Implied Liquidity (Eurex, CME etc), Region (EBS)."/>
            <field name="MDEntryType" id="269" type="MDEntryType" presence="optional" description="Defines the nature of this market data entry."/>
            <field name="MDEntryID" id="278" type="IDString" description="Unique identifier of this market data entry, referenced throughout MDUpdateAction lifecycle."/>
            <field name="MDEntryTime" id="273" type="UTCTimestamp" description="Venue TransactTime for this market data entry."/>
            <field name="MDEntryPx" id="270" type="PriceNULL" description="All-in Price. MDEntryPx=MDEntrySpotRate+MDEntryForwardPoints*10^PipPosition"/>
            <field name="MDEntrySize" id="271" type="DecimalQtyNULL" description="Size for quoted price. Expressed in units of CCY1."/>
            <field name="NumberOfOrders" id="346" type="uInt16NULL" description="Conditionally populated if MDBookType=PriceDepth/Spread/Amount and provided by Venue. Used in aggregated books to indicate the number of individual orders for this MDEntry, if known."/>
            <group name="HasExtendedPriceFields" id="20008" dimensionType="conditionalGroupSizeEncoding" description="Conditionally populated when provided by Venue.">
                <field name="MDEntrySpotRate" id="1026" type="PriceNULL" description="Spot Price."/>
                <field name="MDEntryForwardPoints" id="1027" type="PriceNULL" description="Forward Points, expressed in pips (not arithmetic)."/>
            </group>
            <group name="NoOfSecSizes" id="1177" dimensionType="groupSizeEncoding" description="Conditionally populated if MDBookType=PriceDepth. Number of Orders at this level. NoOfSecSizes=NumberOfOrders, or zero if unknown.">
                <field name="MDSecSize" id="1179" type="DecimalQtyNULL" description="Size of individual Order at this level. SUM(MDSecSize)=MDEntrySize."/>
                <field name="MinQty" id="110" type="DecimalQtyNULL" description="Minimum quantity available to execute for this individual Order."/> <!-- Custom use of this tag. -->
                <field name="LotSize" id="20018" type="DecimalQtyNULL" description="Minimum Order size increment."/> <!-- E.g. for Hotspot, LMAX -->
            </group>
            <group name="NoEntryPassthruFields" id="20090" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="EntryPassthruKey" id="20091" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/> <!-- E.g. EBS Ultra MarketRegion -->
                <data name="EntryPassthruValue" id="20092" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/> <!-- E.g. EBS Ultra MarketRegion -->
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>
        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
    </sbe:message>

    <sbe:message name="EndMarker" id="211" semanticType="U3" description="Marks the end of the set of messages for a particular timeslice."/>

<!--
 *
 * Quotation Messages (RFQ, RFS, ESP).
 *
 -->

    <sbe:message name="QuoteRequest" id="205" semanticType="R" description="Issued by Taker to make ESP/RFS/RFQ subscriptions. A QuoteResponse may be used to terminate the request.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this QuoteRequest may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the QuoteRequest was generated."/><!-- Custom use of this tag. -->
        <!-- Identification -->
        <field name="QuoteReqID" id="131" type="IDString" description="Unique ID specified by the subscriber."/>
        <field name="NegotiationMethod" id="2115" type="NegotiationMethod" description="RFS/RFQ - Quote messages sent in response. ESP - MassQuote messages sent in response. Order - not applicable."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for FUT, IMM or OPT Security Types."/>
        <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally populated if NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker."/>
        <field name="NumOfCompetitors" id="1913" type="NumOfCompetitors" description="0=Not in competition; -1=In competition (number of competitors unknown), n=In competition (Number of competitors); NULL=unknown."/>
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="Side is from perspective of Taker and LegCurrency" />
            <field name="LegCurrency" id="556" type="Currency" description="Dealt currency. Specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Conditionally required if NegotiationMethod=RFS/RFQ. Netted Order quantity for this Leg."/>
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>

                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegAllocs" id="670" dimensionType="groupSizeEncoding" description="Conditionally required if NegotiationMethod=RFS/RFQ - at least one Allocation must be specified per Leg."> <!-- A custom use of this component for this message type -->
                <field name="LegAllocAccount" id="671" type="IDString" description="Account mnemonic."/>
                <field name="LegIndividualAllocID" id="672" type="IDString" description="Unique reference for this allocation."/>
                <field name="LegAllocQty" id="673" type="DecimalQtyNULL" description="Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side)."/>

                <group name="NoAllocRegulatoryFields" id="20080" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                    <field name="AllocRegulatoryKey" id="20081" type="AllocRegulatoryKey" description="Name of Regulatory field."/>
                    <data name="AllocRegulatoryValue" id="20082" type="VarText" description="Value of Regulatory field."/>
                </group>
                <group name="NoAllocPassthruFields" id="20070" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                    <data name="AllocPassthruKey" id="20071" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                    <data name="AllocPassthruValue" id="20072" type="VarText" description="Arbitrary value to be assigned to this element."/>
                </group>
            </group>

            <!-- Regulatory -->
            <group name="NoLegRegulatoryFields" id="20060" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                <field name="LegRegulatoryKey" id="20061" type="LegRegulatoryKey" description="Name of Regulatory field."/>
                <data name="LegRegulatoryValue" id="20062" type="VarText" description="Value of Regulatory field."/>
            </group>
            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the request, provided by the Taker."/>
    </sbe:message>

    <sbe:message name="Quote" id="207" semanticType="S" description="Issued by Maker to publish a price in response to a corresponding QuoteRequest. A new quote replaces the previous, and may be marked Indicative (i.e. non-tradeable).">
        <!-- Session -->
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the Quote was generated."/>
        <!-- Identification -->
        <field name="QuoteReqID" id="131" type="IDString" description="Unique ID specified by the Taker."/>
        <field name="QuoteID" id="117" type="IDString" description="Unique ID of this Quote specified by the Maker."/>
        <!-- State -->
        <field name="QuoteType" id="537" type="QuoteType" description="Indicative/Tradeable price. When SecurityType=BLK/NDB, BidIsTradeable==OfferIsTradeable. Otherwise is specified independantly for Bid and Offer WRT base Currency (not the dealt). When SecurityType=SWP/NDS refers to the Far Leg side."/>
        <field name="ValidUntilTime" id="62" type="ValidUntilTime" description="Conditionally populated if originating QuoteRequest NegotiationMethod=RFQ. The time at which the single-shot Quote will expire."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for FUT, IMM or OPT Security Types."/>

        <field name="BidSpotRate" id="188" type="PriceNULL" description="Conditionally populated if SecurityType=SWP/BLK, or SecurityType=SPT/FWD/NDF and overall net Side=Sell(Base)/Buy(Terms)/TwoWay. The quoted Bid Spot rate relating to this quote."/>
        <field name="MidPx" id="631" type="PriceNULL" description="Mid-Market spot rate."/><!-- Regulatory -->
        <field name="OfferSpotRate" id="190" type="PriceNULL" description="Conditionally populated if SecurityType=SWP/BLK, or SecurityType=SPT/FWD/NDF and overall net Side=Sell(Base)/Buy(Terms)/TwoWay. The quoted Offer Spot rate relating to this quote."/>
        <!-- Regulatory -->
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="Side is from perspective of LegCurrency" />
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>
            <field name="LegCurrency" id="556" type="Currency" description="Dealt currency. Specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Required. Order quantity."/>
            <field name="LegBidPx" id="681" type="PriceNULL" description="Conditionally populated if LegSide=Sell(Base)/Buy(Terms)/TwoWay. All-in Bid rate."/>
            <field name="LegMidPx" id="2346" type="PriceNULL" description="Mid-Market All-in Price of this Leg."/><!-- Regulatory -->
            <field name="LegOfferPx" id="684" type="PriceNULL" description="Conditionally populated if LegSide=Buy(Base)/Sell(Terms)/TwoWay. All-in Offer rate."/>
            <field name="LegBidForwardPoints" id="1067" type="PriceNULL" description="Conditionally populated if LegSide=Sell(Base)/Buy(Terms)/TwoWay. The Bid FX forward points for this Leg. Value can be negative. Expressed in pips (not arithmetic), LegBidForwardPoints=(LegBidPx – SpotRate)/10^PipPosition. SpotRate may be either BidSpotRate or OfferSpotRate, depending on Maker pricing."/>
            <field name="LegOfferForwardPoints" id="1068" type="PriceNULL" description="Conditionally populated if LegSide=Buy(Base)/Sell(Terms)/TwoWay. The Offer FX forward points for this Leg. Value can be negative. Expressed in pips (not arithmetic), LegOfferForwardPoints=(LegOfferPx – SpotRate)/10^PipPosition. SpotRate may be either BidSpotRate or OfferSpotRate, depending on Maker pricing."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>

                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
    </sbe:message>

    <sbe:message name="MassQuote" id="208" semanticType="i" description="Used by Maker for publication of ESP price ladders by stream category.">
        <!-- Session -->
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the MarketData was generated."/> <!-- Promoted from QuoteEntry -->
        <!-- Identification -->
        <field name="QuoteReqID" id="131" type="IDString" description="Unique ID specified by the Taker."/>
        <field name="QuoteID" id="117" type="IDString" description="Unique ID of this Quote specified by the Maker."/>
        <!-- Regulatory -->
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoQuoteSets" id="296" dimensionType="groupSizeEncoding" description="One QuoteSet per Leg of stream category QuoteRequest.">
            <!-- Instrument -->
            <field name="QuoteSetID" id="302" type="uint32" semanticType="int" description="Unique ID representing Leg number. E.g. SWP Near=1, Far=2"/>
            <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/> <!-- Promoted from NoQuoteEntries -->
            <field name="SecurityType" id="167" type="SecurityType" description="Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF) and 2-legged (SWP, NDS) order types. NOTE: This message is NOT to be used for FUT, BLK, IMM or OPT Security Types."/> <!-- Promoted from NoQuoteEntries -->
            <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker."/> <!-- Promoted from NoQuoteEntries -->
            <field name="SettlType" id="63" type="TenorType" description="Specifies a standard Tenor for settlement of this Leg."/> <!-- Custom use of this tag.-->
            <field name="SettlDate" id="64" type="LocalMktDate" presence="optional" description="Specifies the calendar date for settlement of this Leg."/> <!-- Promoted from NoQuoteEntries -->

            <group name="HasNDFFields" id="20009" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if SecurityType=NDF/NDS.">
                <field name="MaturityDate" id="541" type="LocalMktDate" presence="optional" description="Specifies the Fixing Date for this Leg of NDF/NDS."/> <!-- Promoted from NoQuoteEntries -->
                <field name="SettlCurrency" id="120" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>

                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoQuoteEntries" id="295" dimensionType="groupSizeEncoding" description="One QuoteEntry per ladder rung, per Leg.">
                <field name="QuoteEntryID" id="299" type="IDString" description="Unique ID of this Quote Rung specified by the Maker."/>
                <field name="ValidUntilTime" id="62" type="ValidUntilTime" description="Optionally populated by Maker. The time at which the Quote will expire."/>
                <!-- State -->
                <field name="QuoteType" id="537" type="QuoteType" description="Indicative/Tradeable price. Can be specified independantly for Bid and Offer."/>
                <field name="Currency" id="15" type="Currency" description="Specifies the denomination of the quantity fields in this Rung."/>
                <field name="BidSize" id="134" type="DecimalQtyNULL" description="Bid quantity in this Rung."/>
                <field name="OfferSize" id="135" type="DecimalQtyNULL" description="Offer quantity in this Rung."/>
                <field name="BidPx" id="132" type="PriceNULL" description="All-in Bid rate for this Rung."/>
                <field name="MidPx" id="631" type="PriceNULL" description="All-in Mid-Market rate for this Rung."/><!-- Regulatory -->
                <field name="OfferPx" id="133" type="PriceNULL" description="All-in Offer rate for this Rung."/>

                <group name="HasExtendedPriceFields" id="20008" dimensionType="conditionalGroupSizeEncoding" description="When VenueType=Taker should always be 1. When VenueType=Maker will be 1 when full price details are provided by Venue, 0 otherwise.">
                    <field name="BidSpotRate" id="188" type="PriceNULL" description="Conditionally populated if SecurityType=SPT/FWD/NDF/SWP/NDS. The quoted Bid Spot rate relating to this Rung."/>
                    <field name="OfferSpotRate" id="190" type="PriceNULL" description="Conditionally populated if SecurityType=SPT/FWD/NDF/SWP/NDS. The quoted Offer Spot rate relating to this Rung."/>
                    <field name="BidForwardPoints" id="189" type="PriceNULL" description="The Bid FX forward points for this Rung. Value can be negative. Expressed in pips (not arithmetic), LegBidForwardPoints=(LegBidPx – BidSpotRate)/10^PipPosition."/>
                    <field name="OfferForwardPoints" id="191" type="PriceNULL" description="The Offer FX forward points for this Rung. Value can be negative. Expressed in pips (not arithmetic), LegOfferForwardPoints=(LegOfferPx – OfferSpotRate)/10^PipPosition."/>
                </group>

                <group name="NoEntryPassthruFields" id="20090" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                    <data name="EntryPassthruKey" id="20091" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/> <!-- E.g. EBS Ultra MarketRegion -->
                    <data name="EntryPassthruValue" id="20092" type="VarText" description="Arbitrary value to be assigned to this element."/>
                </group>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>
    </sbe:message>

    <sbe:message name="QuoteCancel" id="210" semanticType="Z" description="Optionally used by Maker Client to withdraw the previously published Quote or MassQuote. Alternatively the Client may mark a Quote or MassQuote as Indicative. NOTE: For Taker Clients trading against an LP, MarketFactory will always use Indicative pricing, QuoteCancel messages will not be sent.">
        <!-- Session -->
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the withdrawal event was generated."/>
        <!-- Identification -->
        <field name="QuoteReqID" id="131" type="IDString" description="Unique ID specified by the Taker."/>
        <field name="QuoteID" id="117" type="IDString" description="Unique ID of the previously published Quote or MassQuote to be withdrawn, specified by the Maker."/>
    </sbe:message>

    <sbe:message name="QuoteResponse" id="209" semanticType="AJ" description="Issued by Maker to reject a new QuoteRequest, or by Taker, Maker or ECN to terminate an active QuoteRequest.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this QuoteResponse may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the QuoteResponse was generated."/>
        <!-- Identification -->
        <field name="QuoteReqID" id="131" type="IDString" description="Unique ID specified by the subscriber."/>
        <field name="QuoteRespType" id="694" type="QuoteRespType" description="Reason for termination of QuoteRequest."/>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the termination."/>
    </sbe:message>

<!--
 *
 * Trading Messages - Orders (RFQ, RFS, ESP, Order Matching) and Executions.
 *
 -->

    <sbe:message name="NewOrderMultileg" id="301" semanticType="AB" description="Issued by Taker to submit an FX Order (either in response to a CLOB MarketData stream, or against a published ESP/RFS Quote). To be used for 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK) order types.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this Order may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the Order was generated."/>
        <!-- Identification -->
        <field name="OrderRequestID" id="2422" type="IDString" presence="optional" description="Conditionally populated if OrdType=PreviouslyQuoted. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support."/> <!--NOTE: FIX defines this tag as an int. -->
        <field name="QuoteID" id="117" type="IDString" presence="optional" description="Conditionally populated if OrdType=PreviouslyQuoted. Contains QuoteEntryID (of MassQuote) or QuoteID (of Quote). NOTE: Some ESP venues do not utilise QuoteIDs, in which case will be populated with 'N/A'."/>
        <field name="ClOrdID" id="11" type="IDString" description="The Taker-assigned Order Identifier. If created by MFAPI Client, then must be unique for trading week."/>
        <!-- State -->
        <field name="OrdType" id="40" type="OrdType"/>
        <field name="TimeInForce" id="59" type="TimeInForce"/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="Specifies the product type for the traded instrument. 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK, NDB) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types."/>
        <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker."/>
        <!-- Instructions -->
        <field name="Price" id="44" type="PriceNULL" description="Conditionally populated if OrdType!=Market. If OrdType=PreviouslyQuoted then represents the Spot price: LegPrice - Price=Leg Fwd Pts (TODO - Fwd Pts not currently populated). Othwerwise represents the Order Limit price."/> <!-- TODO - discuss/clarify eg For Fixing/FixingOffset orders will convey the points to be added to a fix rate. -->
        <!-- Regulatory -->
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <group name="HasExtendedOrderFields" id="20005" dimensionType="conditionalGroupSizeEncoding" description="Conditionally populated if necessary for desired order type.">
            <!-- Activation/Expiry -->
            <field name="EffectiveTime" id="168" type="UTCTimestamp" presence="optional" description="Timestamp when the Order will be entered to the market."/>
            <field name="ExpireTime" id="126" type="UTCTimestamp" presence="optional" description="Conditionally populated if TimeInForce=GTD. Timestamp when the Order will be cancelled."/>
            <field name="ExposureDuration" id="1629" type="uInt32NULL" description="Conditionally populated if TimeInForce=GFT. Number of seconds after which the Order will be cancelled."/>
            <field name="StopPx" id="99" type="PriceNULL" description="Stop price. Only required if this order is a Stop-type order."/>
            <field name="MinQty" id="110" type="DecimalQtyNULL" description="Minimum quantity to execute, used to prevent partial fills under the defined quantity. If the Order quantity drops below this value due to a fill, the Order will be cancelled."/>
            <field name="MaxShow" id="210" type="DecimalQtyNULL" description="If supported by Venue and specified, defines Iceberg tip-size. Otherwise, will default to OrderQty."/><!-- TODO Or MoreQuantity -->
            <field name="DiscretionOffsetValue" id="389" type="PriceNULL" description="If supported by Venue, arithmetic (not pip) value added to, or subtracted from, Price to define the worst price the trader will accept."/>
            <field name="PegPriceType" id="1094" type="PegPriceType" description="Conditionally required if OrdType=Pegged. Defines the type of Peg."/>
            <field name="PegOffsetValue" id="211" type="PriceNULL" description="Conditionally required if OrdType=Pegged. Defines the absolute, signed, value of market offset."/>

            <group name="NoStrategyParameters" id="957" dimensionType="groupSizeEncoding" description="Conditionally populated if additional parameters are required for specified OrdType and TimeInForce.">
                <field name="StrategyParameterType" id="959" type="StrategyParameterType" description="FIX datatype of Order parameter."/>
                <data name="StrategyParameterName" id="958" type="VarText" description="Name of Order parameter."/>
                <data name="StrategyParameterValue" id="960" type="VarText" description="Value of Order parameter."/>
            </group>
        </group>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="Side is from perspective of LegCurrency" />
            <field name="LegCurrency" id="556" type="Currency" description="Conditionally populated if SecurityType!=FUT Dealt currency, specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegPrice" id="566" type="PriceNULL" description="Conditionally populated if OrdType!=Market. All-in Order limit price. LegPrice-Price=LegFwdPts (not currently populated)."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Required. Order quantity."/>
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>

                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegAllocs" id="670" dimensionType="groupSizeEncoding" description="At least one Allocation must be specified per Leg.">
                <field name="LegAllocAccount" id="671" type="IDString" description="Account mnemonic."/>
                <field name="LegIndividualAllocID" id="672" type="IDString" description="Unique reference for this allocation."/>
                <field name="LegAllocQty" id="673" type="DecimalQtyNULL" description="Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side)."/>

                <group name="NoAllocRegulatoryFields" id="20080" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                    <field name="AllocRegulatoryKey" id="20081" type="AllocRegulatoryKey" description="Name of Regulatory field."/>
                    <data name="AllocRegulatoryValue" id="20082" type="VarText" description="Value of Regulatory field."/>
                </group>
                <group name="NoAllocPassthruFields" id="20070" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                    <data name="AllocPassthruKey" id="20071" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                    <data name="AllocPassthruValue" id="20072" type="VarText" description="Arbitrary value to be assigned to this element."/>
                </group>
            </group>

            <group name="NoLegRegulatoryFields" id="20060" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                <field name="LegRegulatoryKey" id="20061" type="LegRegulatoryKey" description="Name of Regulatory field."/>
                <data name="LegRegulatoryValue" id="20062" type="VarText" description="Value of Regulatory field."/>
            </group>
            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the Order, provided by the Originator."/>
    </sbe:message>

    <sbe:message name="MultilegOrderCancelReplaceRequest" id="302" semanticType="AC" description="Modify an outstanding order.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this OrderCancelReplaceRequest may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the OrderCancelReplaceRequest was generated."/>
        <!-- Identification -->
        <field name="ClOrdID" id="11" type="IDString" description="The Taker-assigned Order Identifier of *this* OrderCancelReplaceRequest. If created by MFAPI Client, then must be unique for trading week."/>
        <field name="OrigClOrdID" id="41" type="IDString" description="ClOrdID of the Order to be replaced."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <!-- State -->
        <field name="OrdType" id="40" type="OrdType"/>
        <field name="TimeInForce" id="59" type="TimeInForce" description="The original order time in force."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="Specifies the product type for the traded instrument. 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK, NDB) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types."/>
        <!-- Instructions -->
        <field name="Price" id="44" type="PriceNULL" description="The NEW order price, if changing, or the original price if not. "/>
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <group name="HasExtendedOrderFields" id="20005" dimensionType="conditionalGroupSizeEncoding" description="Conditionally populated if necessary for desired order type.">
            <!-- Activation/Expiry -->
            <field name="EffectiveTime" id="168" type="UTCTimestamp" presence="optional" description="Timestamp when the Order will be entered to the market."/>
            <field name="ExpireTime" id="126" type="UTCTimestamp" presence="optional" description="Conditionally populated if TimeInForce=GTD. Timestamp when the Order will be cancelled."/>
            <field name="ExposureDuration" id="1629" type="uInt32NULL" description="Conditionally populated if TimeInForce=GFT. Number of seconds after which the Order will be cancelled."/>
            <field name="StopPx" id="99" type="PriceNULL" description="Stop price. Only required if this order is a Stop-type order."/>
            <field name="MinQty" id="110" type="DecimalQtyNULL" description="Minimum quantity to execute, used to prevent partial fills under the defined quantity. If the Order quantity drops below this value due to a fill, the Order will be cancelled."/>
            <field name="MaxShow" id="210" type="DecimalQtyNULL" description="If supported by Venue and specified, defines Iceberg tip-size. Zero represents 'Dark', otherwise 'Lit'. Maximum value is OrderQty."/><!-- TODO Or MoreQuantity -->
            <field name="DiscretionOffsetValue" id="389" type="PriceNULL" description="If supported by Venue, added to Price to define the worst price the trader will accept."/>
            <field name="PegPriceType" id="1094" type="PegPriceType" description="Conditionally required if OrdType=Pegged. Defines the type of Peg."/>
            <field name="PegOffsetValue" id="211" type="PriceNULL" description="Conditionally required if OrdType=Pegged. Defines the absolute, signed, value of market offset."/>

            <group name="NoStrategyParameters" id="957" dimensionType="groupSizeEncoding" description="Conditionally populated if additional parameters are required for specified OrdType and TimeInForce.">
                <field name="StrategyParameterType" id="959" type="StrategyParameterType" description="FIX datatype of Order parameter."/>
                <data name="StrategyParameterName" id="958" type="VarText" description="Name of Order parameter."/>
                <data name="StrategyParameterValue" id="960" type="VarText" description="Value of Order parameter."/>
            </group>
        </group>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="The ORIGINAL order side. Side is from perspective of LegCurrency" />
            <field name="LegCurrency" id="556" type="Currency" description="Conditionally populated if SecurityType!=FUT Dealt currency, specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegPrice" id="566" type="PriceNULL" description="Conditionally populated if OrdType!=Market. All-in Order limit price. LegPrice-Price=LegFwdPts (not currently populated)."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Required. The NEW order quantity, if changing, or the original order quantity if not."/>
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>
                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegRegulatoryFields" id="20060" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                <field name="LegRegulatoryKey" id="20061" type="LegRegulatoryKey" description="Name of Regulatory field."/>
                <data name="LegRegulatoryValue" id="20062" type="VarText" description="Value of Regulatory field."/>
            </group>
            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the Order, provided by the Originator."/>
    </sbe:message>

    <sbe:message name="OrderCancelRequest" id="303" semanticType="F" description="Cancel an outstanding order.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this OrderCancelRequest may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the OrderCancelRequest was generated."/>
        <!-- Identification -->
        <field name="ClOrdID" id="11" type="IDString" description="The Taker-assigned Order Identifier of *this* OrderCancelRequest. If created by MFAPI Client, then must be unique for trading week."/>
        <field name="OrigClOrdID" id="41" type="IDString" description="ClOrdID of the Order to be Cancelled."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the Order, provided by the Originator."/>
    </sbe:message>

    <sbe:message name="OrderCancelReject" id="304" semanticType="9" description="Sent by Maker to reject an OrderCancelReplaceRequest or OrderCancelRequest.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this OrderCancelReject may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the OrderCancelReject was generated."/>
        <!-- Identification -->
        <field name="ClOrdID" id="11" type="IDString" description="The ClOrdID of the OrderCancelReplaceRequest or OrderCancelRequest."/>
        <field name="OrigClOrdID" id="41" type="IDString" description="The ClOrdID of the Order that was to be replaced or cancelled."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <!-- State -->
        <field name="OrdStatus" id="39" type="OrdStatus" description="Defines the current state of the Order."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string detailing the rejection."/>
    </sbe:message>

    <sbe:message name="OrderTimeout" id="305" semanticType="U1" description="Sent by Taker to flag an Order for which no ExecutionReport was received within the Taker-defined time window.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this OrderTimeout may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the OrderTimeout was generated."/>
        <!-- Identification -->
        <field name="ClOrdID" id="11" type="IDString" description="The ClOrdID of the timed-out Order."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <!-- State -->
        <field name="OrdStatus" id="39" type="OrdStatus" description="Defines the current state of the Order."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the timeout, provided by the Taker."/>
    </sbe:message>

    <sbe:message name="ExecutionReport" id="306" semanticType="8" description="Maker/ECN responses for order actions and events.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this ExecutionReport may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the ExecutionReport was generated."/>
        <!-- Identification -->
        <field name="OrderRequestID" id="2422" type="IDString" presence="optional" description="Must contain the value provided in the originating NewOrderMultileg. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support."/> <!--NOTE: FIX defines this tage as an int. -->
        <field name="ClOrdID" id="11" type="IDString" description="The current ClOrdID of the Order. Can differ from the originally submitted value on the NewOrderMultileg if, for example, modifications have been made."/>
        <field name="OrigClOrdID" id="41" type="IDString" description="Conditionally populated when VenueType=CLOB. The ClOrdID of the original value submitted on the NewOrderMultileg."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <field name="ExecID" id="17" type="IDString" description="Unique identifier for this ExecutionReport."/>
        <field name="ExecRefID" id="19" type="IDString" description="Conditionally populated when VenueType=CLOB and ExecType=Trade. Used to link back to a preceding ExecutionReport with ExecType=PendingMatch (if sent). Also used for trade corrections and busts, identifier for the ExecutionReport of the trade that was corrected or cancelled."/>
        <!-- State -->
        <field name="OrdType" id="40" type="OrdType"/>
        <field name="TimeInForce" id="59" type="TimeInForce"/>
        <field name="OrdStatus" id="39" type="OrdStatus" description="Defines the current state of the Order."/>
        <field name="ExecType" id="150" type="ExecType"/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types."/>
        <field name="SecurityGroup" id="1151" type="IDString" presence="optional" description="Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker."/>

        <field name="TradeDate" id="75" type="LocalMktDate" description="Indicates date of trading day (expressed in local time at place of trade)."/>
        <field name="LastSpotRate" id="194" type="PriceNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Spot Price on this (last) fill. LastSpotRate=LegLastPx-(LegLastForwardPoints*10^PipPosition)."/>
        <field name="MidPx" id="631" type="PriceNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Mid-Market Spot Price on this (last) fill."/><!-- Regulatory -->
        <!-- Regulatory -->
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details.">
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

        <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="Side is from perspective of LegCurrency" />
            <field name="LegCurrency" id="556" type="Currency" description="Dealt currency. Specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegPrice" id="566" type="PriceNULL" description="All-in Order limit price of Leg. Not required on all Order types (for example, Market order)."/>
            <field name="LegMidPx" id="2346" type="PriceNULL" presence="optional" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Mid-Market All-in Price of Leg for this (last) fill."/><!-- Regulatory -->
            <field name="LegLastPx" id="637" type="PriceNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. All-in Price of Leg for this last fill. LegLastPx=LastSpotRate+(LegLastForwardPoints*10^PipPosition)."/>
            <field name="LegLastForwardPoints" id="1073" type="PriceNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. FX forward points (pips, not arithmetic) of Leg. May be a negative value. Zero if LegSettlType=SPT. LegLastForwardPoints=(LegLastPx-LastSpotRate)/10^PipPosition."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Required. Order quantity."/>
            <field name="LegLastQty" id="1418" type="DecimalQtyNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Specifies the dealt amount for this Leg."/>
            <field name="LegCalculatedCcyLastQty" id="1074" type="DecimalQtyNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Specifies the contra amount for this (last) fill and Leg. If LegCurrency is LHS then=LegLastQty*LegLastPx; if LegCurrency is RHS then=LegLastQty/LegLastPx (rounded to the precision of LegLastQty, half-up)."/>
            <field name="LegCumQty" id="20016" type="DecimalQtyNULL" description="Total quantity filled on this Leg of the Order."/>
            <field name="LegLeavesQty" id="20017" type="DecimalQtyNULL" description="Quantity remaining to execute on this Leg of the Order."/>
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>

                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegAllocs" id="670" dimensionType="groupSizeEncoding" description="At least one Allocation must be specified per Leg.">
                <field name="LegAllocAccount" id="671" type="IDString" description="Account mnemonic."/>
                <field name="LegIndividualAllocID" id="672" type="IDString" description="Unique reference for this allocation."/>
                <field name="LegAllocQty" id="673" type="DecimalQtyNULL" description="Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side)."/>
                <field name="LegAllocCalculatedCcyQty" id="20015" type="DecimalQtyNULL" description="Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Quantity to be allocated to Account, expressed in contra currency. Allocation direction expressed arithmetically ABS (SUM (LegAllocCalculatedCcyQty))=LegCalculatedCcyLastQty (but may be subject to accumulated rounding errors). If LegCurrency is LHS then=-LegAllocQty * LegLastPx; if LegCurrency is RHS then=-LegAllocQty / LegLastPx (rounded to the precision of LegAllocQty, half-up)."/>

                <group name="NoAllocRegulatoryFields" id="20080" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                    <field name="AllocRegulatoryKey" id="20081" type="AllocRegulatoryKey" description="Name of Regulatory field."/>
                    <data name="AllocRegulatoryValue" id="20082" type="VarText" description="Value of Regulatory field."/>
                </group>
                <group name="NoAllocPassthruFields" id="20070" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                    <data name="AllocPassthruKey" id="20071" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                    <data name="AllocPassthruValue" id="20072" type="VarText" description="Arbitrary value to be assigned to this element."/>
                </group>
            </group>

            <group name="NoLegRegulatoryFields" id="20060" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                <field name="LegRegulatoryKey" id="20061" type="LegRegulatoryKey" description="Name of Regulatory field."/>
                <data name="LegRegulatoryValue" id="20062" type="VarText" description="Value of Regulatory field."/>
            </group>
            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the execution, provided by the Maker."/>
    </sbe:message>

    <sbe:message name="ExecutionAck" id="307" semanticType="BN" description="Taker response to Maker-sent ExecutionReport.">
        <!-- Session -->
        <field name="TradingFlags" id="43" type="TradingFlags" description="Indicates if this ExecutionReport may have already been processed (it is being resent)."/>
        <field name="OrigSendingTime" id="122" type="UTCTimestamp" description="Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message."/>
        <field name="TransactTime" id="60" type="UTCTimestamp" description="Time when the ExecutionReport was generated."/>
        <!-- Identification -->
        <field name="OrderRequestID" id="2422" type="IDString" presence="optional" description="Must contain the value provided in the originating NewOrderMultileg. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support."/> <!--NOTE: FIX defines this tage as an int. -->
        <field name="ClOrdID" id="11" type="IDString" description="The current ClOrdID of the Order. Can differ from the originally submitted value on the NewOrderMultileg if, for example, edits have been made."/>
        <field name="OrderID" id="37" type="IDString" description="The Maker/ECN-assigned Order ID."/>
        <field name="ExecID" id="17" type="IDString" description="Unique identifier of the referenced ExecutionReport."/>
        <!-- State -->
        <field name="ExecAckStatus" id="1036" type="ExecAckStatus" description="Confirms or denys Maker ExecutionReport - whatever it's state."/>
        <!-- Instrument -->
        <field name="Symbol" id="55" type="Symbol" description="Symbol of requested Instrument."/>
        <field name="SecurityType" id="167" type="SecurityType" description="1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types."/>
        <!-- Regulatory -->
        <field name="RegulatoryBodies" id="20021" type="RegulatoryBodies" description="Bitmap field of Boolean type Regulation elegibility flags."/>

        <!-- Counterparties -->
        <group name="NoPartyIDs" id="453" dimensionType="groupSizeEncoding" description="Order Origination/Execution counterparty details."> <!-- Custom use of this repeating group. -->
            <field name="PartyRole" id="452" type="PartyRole" description="Name of Party field."/>
            <data name="PartyID" id="448" type="VarText" description="Value of Party field."/>
        </group>

       <group name="NoLegs" id="555" dimensionType="groupSizeEncoding" description="One Leg per value date. At least one Leg must be specified.">
            <field name="LegSecurityType" id="609" type="SecurityType" description="Specifies the product type for this leg. Valid values: SPT, FWD, NDF."/>
            <field name="LegSide" id="624" type="Side" description="Side is from perspective of LegCurrency" />
            <field name="LegCurrency" id="556" type="Currency" description="Dealt currency. Specifies the denomination of the quantity fields in this Leg."/>
            <field name="LegLastPx" id="637" type="PriceNULL" description="Conditionally required if specified on the ExecutionReport. All-in Price of Leg for this last fill. LegLastPx=LastSpotRate+(LegLastForwardPoints*10^PipPosition)."/>
            <field name="LegLastForwardPoints" id="1073" type="PriceNULL" description="Conditionally required if specified on the ExecutionReport. FX forward points (pips, not arithmetic) of Leg. May be a negative value. Zero if LegSettlType=SPT. LegLastForwardPoints=(LegLastPx-LastSpotRate)/10^PipPosition."/>
            <field name="LegOrderQty" id="685" type="DecimalQtyNULL" description="Required. Order quantity."/>
            <field name="LegLastQty" id="1418" type="DecimalQtyNULL" description="Conditionally required if specified on the ExecutionReport. Specifies the dealt amount for this Leg."/>
            <field name="LegCumQty" id="20016" type="DecimalQtyNULL" description="Total quantity filled on this Leg of the Order."/>
            <field name="LegLeavesQty" id="20017" type="DecimalQtyNULL" description="Quantity remaining to execute on this Leg of the Order."/>
            <field name="LegSettlType" id="587" type="TenorType" description="Specifies a standard Tenor for settlement."/>
            <field name="LegSettlDate" id="588" type="LocalMktDate" presence="optional" description="Conditionally required if SettlType=BKN. Specifies the broken date for settlement."/>

            <group name="HasLegNDFFields" id="20010" dimensionType="conditionalGroupSizeEncoding" description="Conditionally required if LegSecurityType=NDF.">
                <field name="LegMaturityDate" id="611" type="LocalMktDate" description="Fixing Date for this Leg of NDF/NDS/NDB."/>
                <field name="LegSettlCurrency" id="675" type="Currency" description="Specifies the fixing currency of this Leg of NDF/NDS/NDB."/> <!-- Custom use of this tag. -->
                <field name="MarketType" id="20020" type="MarketType" description="Indicates whether the NDF is onshore or offshore."/>
                <group name="NoFixingRefs" id="20011" dimensionType="groupSizeEncoding" description="Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses).">
                    <data name="FixingReference" id="20014" type="VarText" description="Venue-specific NDF Fixing Reference."/>
                </group>
            </group>

            <group name="NoLegRegulatoryFields" id="20060" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
                <field name="LegRegulatoryKey" id="20061" type="LegRegulatoryKey" description="Name of Regulatory field."/>
                <data name="LegRegulatoryValue" id="20062" type="VarText" description="Value of Regulatory field."/>
            </group>
            <group name="NoLegPassthruFields" id="20050" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
                <data name="LegPassthruKey" id="20051" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
                <data name="LegPassthruValue" id="20052" type="VarText" description="Arbitrary value to be assigned to this element."/>
            </group>
        </group>

        <group name="NoBodyRegulatoryFields" id="20040" dimensionType="groupSizeEncoding" description="Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF)">
            <field name="BodyRegulatoryKey" id="20041" type="BodyRegulatoryKey" description="Name of Regulatory field."/>
            <data name="BodyRegulatoryValue" id="20042" type="VarText" description="Value of Regulatory field."/>
        </group>
        <group name="NoBodyPassthruFields" id="20030" dimensionType="groupSizeEncoding" description="To be used only to transport custom/non-normalisable Venue-specific attributes.">
            <data name="BodyPassthruKey" id="20031" type="VarText" description="Venue-specific name of this element (e.g. Fix tag name)."/>
            <data name="BodyPassthruValue" id="20032" type="VarText" description="Arbitrary value to be assigned to this element."/>
        </group>

        <group name="NoHops" id="627" dimensionType="groupSizeEncoding" description="Populated by MF only. Provides details of originating Venue message to MFAPI Client.">
            <field name="HopRefID" id="630" type="SeqNum" description="Sequence number of originating Venue message, where applicable."/>
            <field name="HopSendingTime" id="629" type="UTCTimestamp" description="Time (Venue clock) that the Venue message was sent."/>
            <field name="HopNetworkTime" id="20006" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Hardware."/>
            <field name="HopArrivalTime" id="20007" type="UTCTimestamp" description="Time (MF clock) that the Venue message was received by the MF Application."/>
        </group>

        <data name="Text" id="58" type="VarText" description="Text string - Extra information about the execution, provided by the Taker."/>
    </sbe:message>

</sbe:messageSchema>

Dictionary - mfsbe4dict.xml

mfsbe4dict.xml - a FIX Protocol data dictonary representation of the SBE Schema
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
 *
 * Copyright (C) 2020 MarketFactory, Inc. All rights reserved.
 * Use in source and binary forms, with or without modification, is permitted provided that the following conditions are met:
 * 1. You may only use this software for internal evaluation and testing purposes and may not use the software for engaging
 * in live trades, unless and until you have entered into a separate agreement with MarketFactory governing the use of
 * MarketFactory software in a production environment.
 * 2. You may not distribute the software (in either source or binary forms) to third parties.
 * 3. All copies of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 *    THIS SOFTWARE IS PROVIDED BY MARKETFACTORY AND ITS LICENSORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
 *    BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
 *    NO EVENT SHALL MARKETFACTORY OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 *    OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 *    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 *    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 -->
<fix type="mfsbe4" major="18320" minor="0" servicepack="0">
	<messages>
		<!-- NOTE: Field 'required' Y/N values are not entirely accurate. -->

		<message name="Logon" msgtype="A" msgcat="admin"> <!-- Used to establish a session with the server. -->
			<field name="HeartBtInt" required="Y"/> <!-- Heartbeat-generation timeout - the interval with which the client wishes to validate connection health. If zero then no regular heartbeat messages will be generated. -->
			<field name="NextExpectedMsgSeqNum" required="Y"/> <!-- Provided by MFAPI Client to support MF message gap checks. If equal to the next-to-be-assigned MF sequence then Whisperer will respond with a LogonResponse message and then proceed with the session as normal. If lower, then Whisperer will respond with a LogonResponse message and immediately (re)send persisted messages or GapFills, in order. On completion, it will proceed with the session as normal. If higher, then Whisperer will respond with a Logout message to abort the session. -->
			<field name="Username" required="Y"/> <!-- MF-created and assigned MFAPI user. -->
			<field name="Password" required="Y"/> <!-- MF-created password for user. -->
			<field name="Venuename" required="Y"/> <!-- MF-defined Venue name. This will include its geographical location, e.g. 'Currenex_NOW NY' -->
			<field name="SessionType" required="Y"/> <!-- Indicates desired session type for user, bilaterally agreed with MF. -->
			<field name="Text" required="Y"/> <!-- Free-form text string. -->
		</message>
		<message name="LogonResponse" msgtype="A" msgcat="admin"> <!-- An acknowledgement from the server that the Logon was successful. -->
			<field name="NextExpectedMsgSeqNum" required="Y"/> <!-- Provided by MF to support MFAPI Client message gap checks. If equal to the next-to-be-assigned MFAPI Client sequence then the client should proceed with the session as normal. If lower, then the client should immediately (re)send persisted messages or GapFills, in order. On completion, it may then proceed with the session as normal. If higher, then the client should respond with a Logout message to abort the session. -->
		</message>
		<message name="Logout" msgtype="5" msgcat="admin"> <!-- A request to stop the session. -->
			<field name="Text" required="Y"/> <!-- Text string detailing the logout reason. -->
		</message>
		<message name="LogoutResponse" msgtype="5" msgcat="admin"> <!-- An acknowledgement that the session has been terminated. -->
		</message>
		<message name="SequenceResetGapFill" msgtype="4" msgcat="admin"> <!-- Used to explicitly skip blocks of unpersisted messages during a replay, if a sequence gap is detected. -->
			<field name="NewSeqNo" required="Y"/> <!-- The sequence number of the next message to be transmitted. -->
		</message>
		<message name="Heartbeat" msgtype="0" msgcat="admin"> <!-- This is sent from each side of the connection periodically. -->
			<field name="Username" required="N"/> <!-- Echoed by MF, to assist session diagnostics. MF-created and assigned MFAPI user. -->
			<field name="Venuename" required="N"/> <!-- Echoed by MF, to assist session diagnostics. MF-defined Venue name. -->
			<field name="SessionType" required="N"/> <!-- Echoed by MF, to assist session diagnostics. Indicates desired session type for user, bilaterally agreed with MF. -->
			<field name="TestReqID" required="Y"/> <!-- Conditionally populated if the Heartbeat is sent in response to a TestRequest. Free-form text string as populated in the TestRequest. e.g. UTC/Epoch Timestamp. -->
		</message>
		<message name="TestRequest" msgtype="1" msgcat="admin"> <!-- Sent by either side in order to generate a Heartbeat response. May also be used to determine approximate application round-trip times. -->
			<field name="TestReqID" required="Y"/> <!-- Free-form text string to be returned in resulting Heartbeat. e.g. UTC/Epoch Timestamp. -->
		</message>
		<message name="UserRequest" msgtype="BE" msgcat="app"> <!-- MFAPI Client initiates connection/disconnection to/from Venue. NOTE:Each MFAPI CLient Username will be associated (n-n) with a specific Venue credential. Mapping bilaterally agreed between MF and Customer. -->
			<field name="UserRequestType" required="Y"/>
			<field name="Text" required="Y"/> <!-- Explanation of user request, e.g. reason for Venue logout. -->
		</message>
		<message name="UserNotification" msgtype="CB" msgcat="app"> <!-- Venue notification of Client events. -->
			<field name="UserStatus" required="Y"/>
			<field name="Text" required="Y"/> <!-- Explanation of status, if any. -->
		</message>
		<message name="ErrorReport" msgtype="U2" msgcat="app"> <!-- Warns MFAPI Client of erroneous events. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this ErrorReport may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="Subject" required="Y"/> <!-- Class of Warning. -->
			<group name="NoHops" required="Y"> <!-- Conditionally populated by MF if ErrorReport triggered by Venue. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue/MFAPI message. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue/Client clock) that the Venue/Client message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Additional detail required in order to address the Warning. E.g. Venue FIX message. -->
		</message>
		<message name="MarketDataRequest" msgtype="V" msgcat="app"> <!-- A request to create, cancel, or otherwise manipulate a subscription for a single security from a specific Venue. -->
			<field name="MDReqID" required="Y"/> <!-- Unique ID specified by the subscriber. -->
			<field name="SubscriptionRequestType" required="Y"/>
			<field name="MarketDepth" required="Y"/> <!-- 0=Full Book, 1=Top of Book, n=Number of Levels. -->
			<field name="MDBookType" required="Y"/> <!-- Specifies the type of book to be requested. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS). NOTE: This message is NOT to be used for BLK, IMM or OPT Security Types. -->
			<field name="SecurityGroup" required="N"/> <!-- Conditionally required if the Venue offers multiple liquidity pools for the same security. E.g. EBS Standard/Fixing/FixingOffset/SwapOffset. -->
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if SecurityType=NDF/NDS. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
			</group>
		</message>
		<message name="MarketDataRequestReject" msgtype="Y" msgcat="app"> <!-- A rejection of a request for market data. -->
			<field name="MDReqID" required="Y"/> <!-- Unique ID specified by the subscriber. -->
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string detailing the rejection. -->
		</message>
		<message name="SecurityStatus" msgtype="f" msgcat="app"> <!-- Sent by MF in response to a MarketDataRequest and should be processed before the first MarketDataIncrementalRefresh. Can also arrive asynchronously if the state of a security changes - e.g. Date Roll -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS). NOTE: This message is NOT to be used for BLK, IMM or OPT Security Types. -->
			<field name="SecurityGroup" required="N"/> <!-- Conditionally required if the Venue multiple offers multiple liquidity pools for the same security. E.g. EBS Standard/Fixing/FixingOffset/SwapOffset. -->
			<field name="TradeDate" required="N"/> <!-- Trade Session Date of security, as provided by the Venue. -->
			<field name="SecurityTradingStatus" required="Y"/> <!-- Identifies the trading status applicable to the instrument or Security Group -->
			<field name="MinQty" required="N"/> <!-- Minimum Order size allowed by the Venue. -->
			<field name="ContractMultiplier" required="N"/> <!-- Specifies the ratio or multiply factor to convert from 'nominal' units (e.g. contracts) to total units. -->
			<field name="MinPriceIncrement" required="N"/> <!-- Tick value for the instrument, specified by the Venue. -->
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if SecurityType=NDF/NDS. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Explanation of status state. -->
		</message>
		<message name="MarketDataIncrementalRefresh" msgtype="X" msgcat="app"> <!-- Contains any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades,  quotes and Laddered/VWAP prices, etc. All of these types of Market Data Entries can be changed and deleted. -->
			<field name="MDReqID" required="Y"/> <!-- Unique ID specified by the subscriber. -->
			<field name="ApplSeqNum" required="N"/> <!-- Incrementing sequence number populated by MF, to facilitate UDP message gap detection. -->
			<field name="MDBookType" required="Y"/> <!-- Instructs Taker as to how the book should be interpreted. -->
			<field name="MDFlags" required="Y"/> <!-- Additional state information relating to this Market Data message. -->
			<group name="NoMDEntries" required="Y"> <!-- One entry for each individual change in the market data message. -->
				<field name="MDUpdateAction" required="Y"/> <!-- The type of update action to be applied to this market data entry. -->
				<field name="MDSubBookType" required="N"/> <!-- Identifies component of aggregated books. E.g. Implied Liquidity (Eurex, CME etc), Region (EBS). -->
				<field name="MDEntryType" required="N"/> <!-- Defines the nature of this market data entry. -->
				<field name="MDEntryID" required="Y"/> <!-- Unique identifier of this market data entry, referenced throughout MDUpdateAction lifecycle. -->
				<field name="MDEntryTime" required="N"/> <!-- Venue TransactTime for this market data entry. -->
				<field name="MDEntryPx" required="N"/> <!-- All-in Price. MDEntryPx=MDEntrySpotRate+MDEntryForwardPoints*10^PipPosition -->
				<field name="MDEntrySize" required="N"/> <!-- Size for quoted price. Expressed in units of CCY1. -->
				<field name="NumberOfOrders" required="N"/> <!-- Conditionally populated if MDBookType=PriceDepth/Spread/Amount and provided by Venue. Used in aggregated books to indicate the number of individual orders for this MDEntry, if known. -->
				<group name="HasExtendedPriceFields" required="Y"> <!-- Conditionally populated when provided by Venue. -->
					<field name="MDEntrySpotRate" required="N"/> <!-- Spot Price. -->
					<field name="MDEntryForwardPoints" required="N"/> <!-- Forward Points, expressed in pips (not arithmetic). -->
				</group>
				<group name="NoOfSecSizes" required="Y"> <!-- Conditionally populated if MDBookType=PriceDepth. Number of Orders at this level. NoOfSecSizes=NumberOfOrders, or zero if unknown. -->
					<field name="MDSecSize" required="N"/> <!-- Size of individual Order at this level. SUM(MDSecSize)=MDEntrySize. -->
					<field name="MinQty" required="N"/> <!-- Minimum quantity available to execute for this individual Order. -->
					<field name="LotSize" required="N"/> <!-- Minimum Order size increment. -->
				</group>
				<group name="NoEntryPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="EntryPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="EntryPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
		</message>
		<message name="QuoteRequest" msgtype="R" msgcat="app"> <!-- Issued by Taker to make ESP/RFS/RFQ subscriptions. A QuoteResponse may be used to terminate the request. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this QuoteRequest may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the QuoteRequest was generated. -->
			<field name="QuoteReqID" required="Y"/> <!-- Unique ID specified by the subscriber. -->
			<field name="NegotiationMethod" required="Y"/> <!-- RFS/RFQ - Quote messages sent in response. ESP - MassQuote messages sent in response. Order - not applicable. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for FUT, IMM or OPT Security Types. -->
			<field name="SecurityGroup" required="N"/> <!-- Conditionally populated if NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker. -->
			<field name="NumOfCompetitors" required="N"/> <!-- 0=Not in competition; -1=In competition (number of competitors unknown), n=In competition (Number of competitors); NULL=unknown. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- Side is from perspective of Taker and LegCurrency -->
				<field name="LegCurrency" required="Y"/> <!-- Dealt currency. Specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegOrderQty" required="N"/> <!-- Conditionally required if NegotiationMethod=RFS/RFQ. Netted Order quantity for this Leg. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegAllocs" required="Y"> <!-- Conditionally required if NegotiationMethod=RFS/RFQ - at least one Allocation must be specified per Leg. -->
					<field name="LegAllocAccount" required="Y"/> <!-- Account mnemonic. -->
					<field name="LegIndividualAllocID" required="Y"/> <!-- Unique reference for this allocation. -->
					<field name="LegAllocQty" required="N"/> <!-- Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side). -->
					<group name="NoAllocRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
						<field name="AllocRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
						<field name="AllocRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
					</group>
					<group name="NoAllocPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
						<field name="AllocPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
						<field name="AllocPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
					</group>
				</group>
				<group name="NoLegRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
					<field name="LegRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
					<field name="LegRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the request, provided by the Taker. -->
		</message>
		<message name="Quote" msgtype="S" msgcat="app"> <!-- Issued by Maker to publish a price in response to a corresponding QuoteRequest. A new quote replaces the previous, and may be marked Indicative (i.e. non-tradeable). -->
			<field name="TransactTime" required="N"/> <!-- Time when the Quote was generated. -->
			<field name="QuoteReqID" required="Y"/> <!-- Unique ID specified by the Taker. -->
			<field name="QuoteID" required="Y"/> <!-- Unique ID of this Quote specified by the Maker. -->
			<field name="QuoteType" required="Y"/> <!-- Indicative/Tradeable price. When SecurityType=BLK/NDB, BidIsTradeable==OfferIsTradeable. Otherwise is specified independantly for Bid and Offer WRT base Currency (not the dealt). When SecurityType=SWP/NDS refers to the Far Leg side. -->
			<field name="ValidUntilTime" required="N"/> <!-- Conditionally populated if originating QuoteRequest NegotiationMethod=RFQ. The time at which the single-shot Quote will expire. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for FUT, IMM or OPT Security Types. -->
			<field name="BidSpotRate" required="N"/> <!-- Conditionally populated if SecurityType=SWP/BLK, or SecurityType=SPT/FWD/NDF and overall net Side=Sell(Base)/Buy(Terms)/TwoWay. The quoted Bid Spot rate relating to this quote. -->
			<field name="MidPx" required="N"/> <!-- Mid-Market spot rate. -->
			<field name="OfferSpotRate" required="N"/> <!-- Conditionally populated if SecurityType=SWP/BLK, or SecurityType=SPT/FWD/NDF and overall net Side=Sell(Base)/Buy(Terms)/TwoWay. The quoted Offer Spot rate relating to this quote. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- Side is from perspective of LegCurrency -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<field name="LegCurrency" required="Y"/> <!-- Dealt currency. Specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegOrderQty" required="N"/> <!-- Required. Order quantity. -->
				<field name="LegBidPx" required="N"/> <!-- Conditionally populated if LegSide=Sell(Base)/Buy(Terms)/TwoWay. All-in Bid rate. -->
				<field name="LegMidPx" required="N"/> <!-- Mid-Market All-in Price of this Leg. -->
				<field name="LegOfferPx" required="N"/> <!-- Conditionally populated if LegSide=Buy(Base)/Sell(Terms)/TwoWay. All-in Offer rate. -->
				<field name="LegBidForwardPoints" required="N"/> <!-- Conditionally populated if LegSide=Sell(Base)/Buy(Terms)/TwoWay. The Bid FX forward points for this Leg. Value can be negative. Expressed in pips (not arithmetic), LegBidForwardPoints=(LegBidPx – SpotRate)/10^PipPosition. SpotRate may be either BidSpotRate or OfferSpotRate, depending on Maker pricing. -->
				<field name="LegOfferForwardPoints" required="N"/> <!-- Conditionally populated if LegSide=Buy(Base)/Sell(Terms)/TwoWay. The Offer FX forward points for this Leg. Value can be negative. Expressed in pips (not arithmetic), LegOfferForwardPoints=(LegOfferPx – SpotRate)/10^PipPosition. SpotRate may be either BidSpotRate or OfferSpotRate, depending on Maker pricing. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
		</message>
		<message name="MassQuote" msgtype="i" msgcat="app"> <!-- Used by Maker for publication of ESP price ladders by stream category. -->
			<field name="TransactTime" required="N"/> <!-- Time when the MarketData was generated. -->
			<field name="QuoteReqID" required="Y"/> <!-- Unique ID specified by the Taker. -->
			<field name="QuoteID" required="Y"/> <!-- Unique ID of this Quote specified by the Maker. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoQuoteSets" required="Y"> <!-- One QuoteSet per Leg of stream category QuoteRequest. -->
				<field name="QuoteSetID" required="Y"/> <!-- Unique ID representing Leg number. E.g. SWP Near=1, Far=2 -->
				<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
				<field name="SecurityType" required="Y"/> <!-- Specifies the product type for the requested instrument. 1-legged (SPT, FWD, NDF) and 2-legged (SWP, NDS) order types. NOTE: This message is NOT to be used for FUT, BLK, IMM or OPT Security Types. -->
				<field name="SecurityGroup" required="N"/> <!-- Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker. -->
				<field name="SettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement of this Leg. -->
				<field name="SettlDate" required="N"/> <!-- Specifies the calendar date for settlement of this Leg. -->
				<group name="HasNDFFields" required="Y"> <!-- Conditionally required if SecurityType=NDF/NDS. -->
					<field name="MaturityDate" required="N"/> <!-- Specifies the Fixing Date for this Leg of NDF/NDS. -->
					<field name="SettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoQuoteEntries" required="Y"> <!-- One QuoteEntry per ladder rung, per Leg. -->
					<field name="QuoteEntryID" required="Y"/> <!-- Unique ID of this Quote Rung specified by the Maker. -->
					<field name="ValidUntilTime" required="N"/> <!-- Optionally populated by Maker. The time at which the Quote will expire. -->
					<field name="QuoteType" required="Y"/> <!-- Indicative/Tradeable price. Can be specified independantly for Bid and Offer. -->
					<field name="Currency" required="Y"/> <!-- Specifies the denomination of the quantity fields in this Rung. -->
					<field name="BidSize" required="N"/> <!-- Bid quantity in this Rung. -->
					<field name="OfferSize" required="N"/> <!-- Offer quantity in this Rung. -->
					<field name="BidPx" required="N"/> <!-- All-in Bid rate for this Rung. -->
					<field name="MidPx" required="N"/> <!-- All-in Mid-Market rate for this Rung. -->
					<field name="OfferPx" required="N"/> <!-- All-in Offer rate for this Rung. -->
					<group name="HasExtendedPriceFields" required="Y"> <!-- When VenueType=Taker should always be 1. When VenueType=Maker will be 1 when full price details are provided by Venue, 0 otherwise. -->
						<field name="BidSpotRate" required="N"/> <!-- Conditionally populated if SecurityType=SPT/FWD/NDF/SWP/NDS. The quoted Bid Spot rate relating to this Rung. -->
						<field name="OfferSpotRate" required="N"/> <!-- Conditionally populated if SecurityType=SPT/FWD/NDF/SWP/NDS. The quoted Offer Spot rate relating to this Rung. -->
						<field name="BidForwardPoints" required="N"/> <!-- The Bid FX forward points for this Rung. Value can be negative. Expressed in pips (not arithmetic), LegBidForwardPoints=(LegBidPx – BidSpotRate)/10^PipPosition. -->
						<field name="OfferForwardPoints" required="N"/> <!-- The Offer FX forward points for this Rung. Value can be negative. Expressed in pips (not arithmetic), LegOfferForwardPoints=(LegOfferPx – OfferSpotRate)/10^PipPosition. -->
					</group>
					<group name="NoEntryPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
						<field name="EntryPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
						<field name="EntryPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
					</group>
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
		</message>
		<message name="QuoteResponse" msgtype="AJ" msgcat="admin"> <!-- Issued by Maker to reject a new QuoteRequest, or by Taker, Maker or ECN to terminate an active QuoteRequest. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this QuoteResponse may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the QuoteResponse was generated. -->
			<field name="QuoteReqID" required="Y"/> <!-- Unique ID specified by the subscriber. -->
			<field name="QuoteRespType" required="Y"/> <!-- Reason for termination of QuoteRequest. -->
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the termination. -->
		</message>
		<message name="QuoteCancel" msgtype="Z" msgcat="app"> <!-- Optionally used by Maker Client to withdraw the previously published Quote or MassQuote. Alternatively the Client may mark a Quote or MassQuote as Indicative. NOTE: For Taker Clients trading against an LP, MarketFactory will always use Indicative pricing, QuoteCancel messages will not be sent. -->
			<field name="TransactTime" required="N"/> <!-- Time when the withdrawal event was generated. -->
			<field name="QuoteReqID" required="Y"/> <!-- Unique ID specified by the Taker. -->
			<field name="QuoteID" required="Y"/> <!-- Unique ID of the previously published Quote or MassQuote to be withdrawn, specified by the Maker. -->
		</message>
		<message name="EndMarker" msgtype="U3" msgcat="app"> <!-- Marks the end of the set of messages for a particular timeslice. -->
		</message>
		<message name="NewOrderMultileg" msgtype="AB" msgcat="admin"> <!-- Issued by Taker to submit an FX Order (either in response to a CLOB MarketData stream, or against a published ESP/RFS Quote). To be used for 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK) order types. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this Order may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the Order was generated. -->
			<field name="OrderRequestID" required="N"/> <!-- Conditionally populated if OrdType=PreviouslyQuoted. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support. -->
			<field name="QuoteID" required="N"/> <!-- Conditionally populated if OrdType=PreviouslyQuoted. Contains QuoteEntryID (of MassQuote) or QuoteID (of Quote). NOTE: Some ESP venues do not utilise QuoteIDs, in which case will be populated with 'N/A'. -->
			<field name="ClOrdID" required="Y"/> <!-- The Taker-assigned Order Identifier. If created by MFAPI Client, then must be unique for trading week. -->
			<field name="OrdType" required="Y"/>
			<field name="TimeInForce" required="Y"/>
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- Specifies the product type for the traded instrument. 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK, NDB) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types. -->
			<field name="SecurityGroup" required="N"/> <!-- Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker. -->
			<field name="Price" required="N"/> <!-- Conditionally populated if OrdType!=Market. If OrdType=PreviouslyQuoted then represents the Spot price: LegPrice - Price=Leg Fwd Pts (TODO - Fwd Pts not currently populated). Othwerwise represents the Order Limit price. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="HasExtendedOrderFields" required="Y"> <!-- Conditionally populated if necessary for desired order type. -->
				<field name="EffectiveTime" required="N"/> <!-- Timestamp when the Order will be entered to the market. -->
				<field name="ExpireTime" required="N"/> <!-- Conditionally populated if TimeInForce=GTD. Timestamp when the Order will be cancelled. -->
				<field name="ExposureDuration" required="N"/> <!-- Conditionally populated if TimeInForce=GFT. Number of seconds after which the Order will be cancelled. -->
				<field name="StopPx" required="N"/> <!-- Stop price. Only required if this order is a Stop-type order. -->
				<field name="MinQty" required="N"/> <!-- Minimum quantity to execute, used to prevent partial fills under the defined quantity. If the Order quantity drops below this value due to a fill, the Order will be cancelled. -->
				<field name="MaxShow" required="N"/> <!-- If supported by Venue and specified, defines Iceberg tip-size. Otherwise, will default to OrderQty. -->
				<field name="DiscretionOffsetValue" required="N"/> <!-- If supported by Venue, arithmetic (not pip) value added to, or subtracted from, Price to define the worst price the trader will accept. -->
				<field name="PegPriceType" required="Y"/> <!-- Conditionally required if OrdType=Pegged. Defines the type of Peg. -->
				<field name="PegOffsetValue" required="N"/> <!-- Conditionally required if OrdType=Pegged. Defines the absolute, signed, value of market offset. -->
				<group name="NoStrategyParameters" required="Y"> <!-- Conditionally populated if additional parameters are required for specified OrdType and TimeInForce. -->
					<field name="StrategyParameterType" required="Y"/> <!-- FIX datatype of Order parameter. -->
					<field name="StrategyParameterName" required="Y"/> <!-- Name of Order parameter. -->
					<field name="StrategyParameterValue" required="Y"/> <!-- Value of Order parameter. -->
				</group>
			</group>
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- Side is from perspective of LegCurrency -->
				<field name="LegCurrency" required="Y"/> <!-- Conditionally populated if SecurityType!=FUT Dealt currency, specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegPrice" required="N"/> <!-- Conditionally populated if OrdType!=Market. All-in Order limit price. LegPrice-Price=LegFwdPts (not currently populated). -->
				<field name="LegOrderQty" required="N"/> <!-- Required. Order quantity. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegAllocs" required="Y"> <!-- At least one Allocation must be specified per Leg. -->
					<field name="LegAllocAccount" required="Y"/> <!-- Account mnemonic. -->
					<field name="LegIndividualAllocID" required="Y"/> <!-- Unique reference for this allocation. -->
					<field name="LegAllocQty" required="N"/> <!-- Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side). -->
					<group name="NoAllocRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
						<field name="AllocRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
						<field name="AllocRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
					</group>
					<group name="NoAllocPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
						<field name="AllocPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
						<field name="AllocPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
					</group>
				</group>
				<group name="NoLegRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
					<field name="LegRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
					<field name="LegRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the Order, provided by the Originator. -->
		</message>
		<message name="MultilegOrderCancelReplaceRequest" msgtype="AC" msgcat="admin"> <!-- Modify an outstanding order. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this OrderCancelReplaceRequest may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the OrderCancelReplaceRequest was generated. -->
			<field name="ClOrdID" required="Y"/> <!-- The Taker-assigned Order Identifier of *this* OrderCancelReplaceRequest. If created by MFAPI Client, then must be unique for trading week. -->
			<field name="OrigClOrdID" required="Y"/> <!-- ClOrdID of the Order to be replaced. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="OrdType" required="Y"/>
			<field name="TimeInForce" required="Y"/> <!-- The original order time in force. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- Specifies the product type for the traded instrument. 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK, NDB) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types. -->
			<field name="Price" required="N"/> <!-- The NEW order price, if changing, or the original price if not.  -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="HasExtendedOrderFields" required="Y"> <!-- Conditionally populated if necessary for desired order type. -->
				<field name="EffectiveTime" required="N"/> <!-- Timestamp when the Order will be entered to the market. -->
				<field name="ExpireTime" required="N"/> <!-- Conditionally populated if TimeInForce=GTD. Timestamp when the Order will be cancelled. -->
				<field name="ExposureDuration" required="N"/> <!-- Conditionally populated if TimeInForce=GFT. Number of seconds after which the Order will be cancelled. -->
				<field name="StopPx" required="N"/> <!-- Stop price. Only required if this order is a Stop-type order. -->
				<field name="MinQty" required="N"/> <!-- Minimum quantity to execute, used to prevent partial fills under the defined quantity. If the Order quantity drops below this value due to a fill, the Order will be cancelled. -->
				<field name="MaxShow" required="N"/> <!-- If supported by Venue and specified, defines Iceberg tip-size. Zero represents 'Dark', otherwise 'Lit'. Maximum value is OrderQty. -->
				<field name="DiscretionOffsetValue" required="N"/> <!-- If supported by Venue, added to Price to define the worst price the trader will accept. -->
				<field name="PegPriceType" required="Y"/> <!-- Conditionally required if OrdType=Pegged. Defines the type of Peg. -->
				<field name="PegOffsetValue" required="N"/> <!-- Conditionally required if OrdType=Pegged. Defines the absolute, signed, value of market offset. -->
				<group name="NoStrategyParameters" required="Y"> <!-- Conditionally populated if additional parameters are required for specified OrdType and TimeInForce. -->
					<field name="StrategyParameterType" required="Y"/> <!-- FIX datatype of Order parameter. -->
					<field name="StrategyParameterName" required="Y"/> <!-- Name of Order parameter. -->
					<field name="StrategyParameterValue" required="Y"/> <!-- Value of Order parameter. -->
				</group>
			</group>
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- The ORIGINAL order side. Side is from perspective of LegCurrency -->
				<field name="LegCurrency" required="Y"/> <!-- Conditionally populated if SecurityType!=FUT Dealt currency, specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegPrice" required="N"/> <!-- Conditionally populated if OrdType!=Market. All-in Order limit price. LegPrice-Price=LegFwdPts (not currently populated). -->
				<field name="LegOrderQty" required="N"/> <!-- Required. The NEW order quantity, if changing, or the original order quantity if not. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
					<field name="LegRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
					<field name="LegRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the Order, provided by the Originator. -->
		</message>
		<message name="OrderCancelRequest" msgtype="F" msgcat="app"> <!-- Cancel an outstanding order. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this OrderCancelRequest may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the OrderCancelRequest was generated. -->
			<field name="ClOrdID" required="Y"/> <!-- The Taker-assigned Order Identifier of *this* OrderCancelRequest. If created by MFAPI Client, then must be unique for trading week. -->
			<field name="OrigClOrdID" required="Y"/> <!-- ClOrdID of the Order to be Cancelled. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the Order, provided by the Originator. -->
		</message>
		<message name="OrderCancelReject" msgtype="9" msgcat="app"> <!-- Sent by Maker to reject an OrderCancelReplaceRequest or OrderCancelRequest. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this OrderCancelReject may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the OrderCancelReject was generated. -->
			<field name="ClOrdID" required="Y"/> <!-- The ClOrdID of the OrderCancelReplaceRequest or OrderCancelRequest. -->
			<field name="OrigClOrdID" required="Y"/> <!-- The ClOrdID of the Order that was to be replaced or cancelled. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="OrdStatus" required="Y"/> <!-- Defines the current state of the Order. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string detailing the rejection. -->
		</message>
		<message name="OrderTimeout" msgtype="U1" msgcat="admin"> <!-- Sent by Taker to flag an Order for which no ExecutionReport was received within the Taker-defined time window. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this OrderTimeout may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the OrderTimeout was generated. -->
			<field name="ClOrdID" required="Y"/> <!-- The ClOrdID of the timed-out Order. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="OrdStatus" required="Y"/> <!-- Defines the current state of the Order. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the timeout, provided by the Taker. -->
		</message>
		<message name="ExecutionReport" msgtype="8" msgcat="app"> <!-- Maker/ECN responses for order actions and events. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this ExecutionReport may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the ExecutionReport was generated. -->
			<field name="OrderRequestID" required="N"/> <!-- Must contain the value provided in the originating NewOrderMultileg. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support. -->
			<field name="ClOrdID" required="Y"/> <!-- The current ClOrdID of the Order. Can differ from the originally submitted value on the NewOrderMultileg if, for example, modifications have been made. -->
			<field name="OrigClOrdID" required="Y"/> <!-- Conditionally populated when VenueType=CLOB. The ClOrdID of the original value submitted on the NewOrderMultileg. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="ExecID" required="Y"/> <!-- Unique identifier for this ExecutionReport. -->
			<field name="ExecRefID" required="Y"/> <!-- Conditionally populated when VenueType=CLOB and ExecType=Trade. Used to link back to a preceding ExecutionReport with ExecType=PendingMatch (if sent). Also used for trade corrections and busts, identifier for the ExecutionReport of the trade that was corrected or cancelled. -->
			<field name="OrdType" required="Y"/>
			<field name="TimeInForce" required="Y"/>
			<field name="OrdStatus" required="Y"/> <!-- Defines the current state of the Order. -->
			<field name="ExecType" required="Y"/>
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- 1-legged (SPT, FWD, NDF, FUT), 2-legged (SWP, NDS) and n-legged (BLK) order types. NOTE: This message is NOT to be used for IMM or OPT Security Types. -->
			<field name="SecurityGroup" required="N"/> <!-- Conditionally populated if originating QuoteRequest NegotiationMethod=ESP and VenueType=Taker. The name of the requested stream category. Bilaterally agreed between ECN and Maker. -->
			<field name="TradeDate" required="N"/> <!-- Indicates date of trading day (expressed in local time at place of trade). -->
			<field name="LastSpotRate" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Spot Price on this (last) fill. LastSpotRate=LegLastPx-(LegLastForwardPoints*10^PipPosition). -->
			<field name="MidPx" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Mid-Market Spot Price on this (last) fill. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- Side is from perspective of LegCurrency -->
				<field name="LegCurrency" required="Y"/> <!-- Dealt currency. Specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegPrice" required="N"/> <!-- All-in Order limit price of Leg. Not required on all Order types (for example, Market order). -->
				<field name="LegMidPx" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Mid-Market All-in Price of Leg for this (last) fill. -->
				<field name="LegLastPx" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. All-in Price of Leg for this last fill. LegLastPx=LastSpotRate+(LegLastForwardPoints*10^PipPosition). -->
				<field name="LegLastForwardPoints" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. FX forward points (pips, not arithmetic) of Leg. May be a negative value. Zero if LegSettlType=SPT. LegLastForwardPoints=(LegLastPx-LastSpotRate)/10^PipPosition. -->
				<field name="LegOrderQty" required="N"/> <!-- Required. Order quantity. -->
				<field name="LegLastQty" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Specifies the dealt amount for this Leg. -->
				<field name="LegCalculatedCcyLastQty" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Specifies the contra amount for this (last) fill and Leg. If LegCurrency is LHS then=LegLastQty*LegLastPx; if LegCurrency is RHS then=LegLastQty/LegLastPx (rounded to the precision of LegLastQty, half-up). -->
				<field name="LegCumQty" required="N"/> <!-- Total quantity filled on this Leg of the Order. -->
				<field name="LegLeavesQty" required="N"/> <!-- Quantity remaining to execute on this Leg of the Order. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegAllocs" required="Y"> <!-- At least one Allocation must be specified per Leg. -->
					<field name="LegAllocAccount" required="Y"/> <!-- Account mnemonic. -->
					<field name="LegIndividualAllocID" required="Y"/> <!-- Unique reference for this allocation. -->
					<field name="LegAllocQty" required="N"/> <!-- Quantity to be allocated to Account. Specified in terms of LegCurrency and LegSide (negative quantities allocate to the opposite side). -->
					<field name="LegAllocCalculatedCcyQty" required="N"/> <!-- Conditionally required if ExecType=Calculated/Trade and SecurityType!=FUT. Quantity to be allocated to Account, expressed in contra currency. Allocation direction expressed arithmetically ABS (SUM (LegAllocCalculatedCcyQty))=LegCalculatedCcyLastQty (but may be subject to accumulated rounding errors). If LegCurrency is LHS then=-LegAllocQty * LegLastPx; if LegCurrency is RHS then=-LegAllocQty / LegLastPx (rounded to the precision of LegAllocQty, half-up). -->
					<group name="NoAllocRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
						<field name="AllocRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
						<field name="AllocRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
					</group>
					<group name="NoAllocPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
						<field name="AllocPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
						<field name="AllocPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
					</group>
				</group>
				<group name="NoLegRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
					<field name="LegRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
					<field name="LegRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the execution, provided by the Maker. -->
		</message>
		<message name="ExecutionAck" msgtype="BN" msgcat="app"> <!-- Taker response to Maker-sent ExecutionReport. -->
			<field name="TradingFlags" required="Y"/> <!-- Indicates if this ExecutionReport may have already been processed (it is being resent). -->
			<field name="OrigSendingTime" required="N"/> <!-- Conditionally populated if TradingFlags.PossDupFlag=TRUE. The sendingTime of the original message. -->
			<field name="TransactTime" required="N"/> <!-- Time when the ExecutionReport was generated. -->
			<field name="OrderRequestID" required="N"/> <!-- Must contain the value provided in the originating NewOrderMultileg. Used to associate Order with earlier Market Data (ESP) or Quote (RFS) messages, to aid support. -->
			<field name="ClOrdID" required="Y"/> <!-- The current ClOrdID of the Order. Can differ from the originally submitted value on the NewOrderMultileg if, for example, edits have been made. -->
			<field name="OrderID" required="Y"/> <!-- The Maker/ECN-assigned Order ID. -->
			<field name="ExecID" required="Y"/> <!-- Unique identifier of the referenced ExecutionReport. -->
			<field name="ExecAckStatus" required="Y"/> <!-- Confirms or denys Maker ExecutionReport - whatever it's state. -->
			<field name="Symbol" required="Y"/> <!-- Symbol of requested Instrument. -->
			<field name="SecurityType" required="Y"/> <!-- 1-legged (SPT, FWD, NDF), 2-legged (SWP, NDS) and n-legged (BLK) order types. -->
			<field name="RegulatoryBodies" required="Y"/> <!-- Bitmap field of Boolean type Regulation elegibility flags. -->
			<group name="NoPartyIDs" required="Y"> <!-- Order Origination/Execution counterparty details. -->
				<field name="PartyRole" required="Y"/> <!-- Name of Party field. -->
				<field name="PartyID" required="Y"/> <!-- Value of Party field. -->
			</group>
			<group name="NoLegs" required="Y"> <!-- One Leg per value date. At least one Leg must be specified. -->
				<field name="LegSecurityType" required="Y"/> <!-- Specifies the product type for this leg. Valid values: SPT, FWD, NDF. -->
				<field name="LegSide" required="Y"/> <!-- Side is from perspective of LegCurrency -->
				<field name="LegCurrency" required="Y"/> <!-- Dealt currency. Specifies the denomination of the quantity fields in this Leg. -->
				<field name="LegLastPx" required="N"/> <!-- Conditionally required if specified on the ExecutionReport. All-in Price of Leg for this last fill. LegLastPx=LastSpotRate+(LegLastForwardPoints*10^PipPosition). -->
				<field name="LegLastForwardPoints" required="N"/> <!-- Conditionally required if specified on the ExecutionReport. FX forward points (pips, not arithmetic) of Leg. May be a negative value. Zero if LegSettlType=SPT. LegLastForwardPoints=(LegLastPx-LastSpotRate)/10^PipPosition. -->
				<field name="LegOrderQty" required="N"/> <!-- Required. Order quantity. -->
				<field name="LegLastQty" required="N"/> <!-- Conditionally required if specified on the ExecutionReport. Specifies the dealt amount for this Leg. -->
				<field name="LegCumQty" required="N"/> <!-- Total quantity filled on this Leg of the Order. -->
				<field name="LegLeavesQty" required="N"/> <!-- Quantity remaining to execute on this Leg of the Order. -->
				<field name="LegSettlType" required="Y"/> <!-- Specifies a standard Tenor for settlement. -->
				<field name="LegSettlDate" required="N"/> <!-- Conditionally required if SettlType=BKN. Specifies the broken date for settlement. -->
				<group name="HasLegNDFFields" required="Y"> <!-- Conditionally required if LegSecurityType=NDF. -->
					<field name="LegMaturityDate" required="N"/> <!-- Fixing Date for this Leg of NDF/NDS/NDB. -->
					<field name="LegSettlCurrency" required="Y"/> <!-- Specifies the fixing currency of this Leg of NDF/NDS/NDB. -->
					<field name="MarketType" required="Y"/> <!-- Indicates whether the NDF is onshore or offshore. -->
					<group name="NoFixingRefs" required="Y"> <!-- Optionally populated. First instance is treated as the primary Fixing source, the second is treated as the secondary (used for NDF crosses). -->
						<field name="FixingReference" required="Y"/> <!-- Venue-specific NDF Fixing Reference. -->
					</group>
				</group>
				<group name="NoLegRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
					<field name="LegRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
					<field name="LegRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
				</group>
				<group name="NoLegPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
					<field name="LegPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
					<field name="LegPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
				</group>
			</group>
			<group name="NoBodyRegulatoryFields" required="Y"> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID(MTF) -->
				<field name="BodyRegulatoryKey" required="Y"/> <!-- Name of Regulatory field. -->
				<field name="BodyRegulatoryValue" required="Y"/> <!-- Value of Regulatory field. -->
			</group>
			<group name="NoBodyPassthruFields" required="Y"> <!-- To be used only to transport custom/non-normalisable Venue-specific attributes. -->
				<field name="BodyPassthruKey" required="Y"/> <!-- Venue-specific name of this element (e.g. Fix tag name). -->
				<field name="BodyPassthruValue" required="Y"/> <!-- Arbitrary value to be assigned to this element. -->
			</group>
			<group name="NoHops" required="Y"> <!-- Populated by MF only. Provides details of originating Venue message to MFAPI Client. -->
				<field name="HopRefID" required="N"/> <!-- Sequence number of originating Venue message, where applicable. -->
				<field name="HopSendingTime" required="N"/> <!-- Time (Venue clock) that the Venue message was sent. -->
				<field name="HopNetworkTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Hardware. -->
				<field name="HopArrivalTime" required="N"/> <!-- Time (MF clock) that the Venue message was received by the MF Application. -->
			</group>
			<field name="Text" required="Y"/> <!-- Text string - Extra information about the execution, provided by the Taker. -->
		</message>
	</messages>
	<fields>
		<field number="11" name="ClOrdID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="15" name="Currency" type="Currency"/> <!-- Currency code supported by MarketFactory. Usually the ISO 4217 Currency code value. -->
		<field number="17" name="ExecID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="19" name="ExecRefID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="36" name="NewSeqNo" type="SeqNum"/> <!-- Sequence number for detection of missed messages. -->
		<field number="37" name="OrderID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="39" name="OrdStatus" type="char"> <!-- Order status. -->
			<value enum="0" description="New"/>
			<value enum="1" description="PartiallyFilled"/>
			<value enum="2" description="Filled"/>
			<value enum="4" description="Canceled"/>
			<value enum="6" description="PendingCancel"/>
			<value enum="8" description="Rejected"/>
			<value enum="A" description="PendingNew"/>
			<value enum="B" description="Calculated"/> <!-- For Drop-copy/STP notifications. -->
			<value enum="C" description="Expired"/>
			<value enum="E" description="PendingReplace"/>
			<value enum="Z" description="Error"/> <!-- Used for Reuters/EBS when a trade fails validation. Also used when an order goes into a bad state. Both situations require manual intervention. -->
		</field>
		<field number="40" name="OrdType" type="char">
			<value enum="1" description="Market"/> <!-- Standard Market order. An instruction to deal immediately at the best possible price (the current rate quotation). -->
			<value enum="2" description="Limit"/> <!-- Standard Limit order. An instruction to deal if a market moves to a MORE favourable level. -->
			<value enum="3" description="Stop"/> <!-- Standard Stop Loss order. An instruction to deal if a market moves to a LESS favourable level. -->
			<value enum="4" description="StopLimit"/> <!-- Standard Stop Limit order. Executes an exposure reducing limit order when market exceeds order's price. -->
			<value enum="D" description="PreviouslyQuoted"/> <!-- An order to hit an individual quote. To hit multiple quotes, AKA sweeping, the user must submit individual orders from best to worst price. -->
			<value enum="I" description="Funari"/> <!-- The order sstarts as a Limit order and executes any leaves quantity as a Market order. -->
			<value enum="J" description="IfTouched"/> <!-- The order is submitted to the market when a specified price is reached. -->
			<value enum="K" description="MarketLimit"/> <!-- Order starts as a Market order and executes any leaves quantity as a Limit order. -->
			<value enum="P" description="Pegged"/> <!-- The order price follows the market by a specified offset. -->
		</field>
		<field number="41" name="OrigClOrdID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="43" name="TradingFlags" type="Boolean"/>
		<field number="44" name="Price" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="55" name="Symbol" type="String"/> <!-- Identifier for a security. For FX, the ccy pair must be provided as 'CCY1/CCY2'. For Futures, the Venue-specific contract code. -->
		<field number="59" name="TimeInForce" type="char">
			<value enum="0" description="DAY"/> <!-- Day - The Order expires automatically on close of the trading day, if it is still unfilled. -->
			<value enum="1" description="GTC"/> <!-- Good 'til Canceled - The Order remains active until it is either executed or cancelled. NOTE: Maximum possible duration is one trading week, but is equivalent to DAY for most Venues that reset daily. -->
			<value enum="3" description="IOC"/> <!-- Immediate Or Cancel - The Order must be executed immediately, at least in part (Partial fills are allowed), otherwise the Order is cancelled. AKA 'Fill and Kill' -->
			<value enum="4" description="FOK"/> <!-- Fill Or Kill - The Order must be executed immediately, in full (no Partial fills), otherwise the Order is cancelled. AKA 'All Or None'. -->
			<value enum="6" description="GTD"/> <!-- Good 'til Date - The Order expires at the specified time (current business day). -->
			<value enum="A" description="GFT"/> <!-- Good For Time - The Order expires after the specified duration. -->
			<value enum="B" description="GFA"/> <!-- Good For Auction - The Order is only active in the auction period. -->
			<value enum="2" description="AMO"/> <!-- At Market Open - The Order can only  be created and modified when the market is in Pre-Open state. -->
			<value enum="7" description="AMC"/> <!-- At Market Close - The Order can only be created and modified when the market is in Pre-Close state. -->
		</field>
		<field number="60" name="TransactTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="62" name="ValidUntilTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. Default value ensures that quotes that do not have explicit TTLs are guaranteed to be valid until replaced or cencelled. -->
		<field number="63" name="SettlType" type="int"> <!-- Defines the standard Tenors supported by MarketFactory. -->
			<value enum="0" description="BKN"/> <!-- Broken Date, refer to LegSettlDate for LocalMktDate containing YYYYMMDD value. -->
			<value enum="1" description="TOD"/> <!-- Today, equivalent to T+0 -->
			<value enum="2" description="TOM"/> <!-- Tomorrow, equivalent to T+1 -->
			<value enum="3" description="SPT"/> <!-- Spot, equivalent to T+1 or T+2 (depending on the currency pair) -->
			<value enum="4" description="D1"/> <!-- One day after Spot -->
			<value enum="5" description="D2"/> <!-- Two days after Spot -->
			<value enum="6" description="D3"/> <!-- Three days after Spot -->
			<value enum="7" description="D4"/> <!-- Four days after Spot -->
			<value enum="8" description="W1"/> <!-- One Week after Spot -->
			<value enum="9" description="W2"/> <!-- Two Weeks after Spot -->
			<value enum="10" description="W3"/> <!-- Three Weeks after Spot -->
			<value enum="11" description="M1"/> <!-- One Month after Spot -->
			<value enum="12" description="M2"/> <!-- Two Months after Spot -->
			<value enum="13" description="M3"/> <!-- Three Months after Spot -->
			<value enum="14" description="M4"/> <!-- Four Months after Spot -->
			<value enum="15" description="M5"/> <!-- Five Months after Spot -->
			<value enum="16" description="M6"/> <!-- Six Months after Spot -->
			<value enum="17" description="M7"/> <!-- Seven Months after Spot -->
			<value enum="18" description="M8"/> <!-- Eight Months after Spot -->
			<value enum="19" description="M9"/> <!-- Nine Months after Spot -->
			<value enum="20" description="M10"/> <!-- Ten Months after Spot -->
			<value enum="21" description="M11"/> <!-- Eleven Months after Spot -->
			<value enum="22" description="Y1"/> <!-- One Year after Spot -->
			<value enum="23" description="M15"/> <!-- Fifteen Months after Spot -->
			<value enum="24" description="M18"/> <!-- Eighteen Months after Spot -->
			<value enum="25" description="M21"/> <!-- Twenty-one Months after Spot -->
			<value enum="26" description="Y2"/> <!-- Two Years after Spot -->
			<value enum="27" description="Y3"/> <!-- Three Years after Spot -->
			<value enum="28" description="Y4"/> <!-- Four Years after Spot -->
			<value enum="29" description="Y5"/> <!-- Five Years after Spot -->
			<value enum="30" description="Y6"/> <!-- Six Years after Spot -->
			<value enum="31" description="Y7"/> <!-- Seven Years after Spot -->
			<value enum="32" description="Y8"/> <!-- Eight Years after Spot -->
			<value enum="33" description="Y9"/> <!-- Nine Years after Spot -->
			<value enum="34" description="Y10"/> <!-- Ten Years after Spot -->
			<value enum="35" description="Y15"/> <!-- Fifteen Years after Spot -->
			<value enum="36" description="Y20"/> <!-- Twenty Years after Spot -->
			<value enum="37" description="Y25"/> <!-- Twenty-five Years after Spot -->
			<value enum="38" description="Y30"/> <!-- Thirty Years after Spot -->
			<value enum="50" description="ON"/> <!-- Overnight - TOD/TOM Single-legged Swap -->
			<value enum="51" description="TN"/> <!-- Tom-Next - TOM/SPT Single-legged Swap -->
			<value enum="52" description="SN"/> <!-- Spot-Next - SPT/D1 Single-legged Swap -->
			<value enum="53" description="T2"/> <!-- T+2 - Second day after trade date -->
			<value enum="54" description="T3"/> <!-- T+3 - Third day after trade date -->
			<value enum="55" description="T4"/> <!-- T+4 - Fourth day after trade date -->
			<value enum="56" description="T5"/> <!-- T+5 - Fifth day after trade date -->
			<value enum="60" description="IMMF"/> <!-- January Futures Expiration Date -->
			<value enum="61" description="IMMG"/> <!-- February Futures Expiration Date -->
			<value enum="62" description="IMMH"/> <!-- March Futures Expiration/IMM1 Date -->
			<value enum="63" description="IMMJ"/> <!-- April Futures Expiration Date -->
			<value enum="64" description="IMMK"/> <!-- May Futures Expiration Date -->
			<value enum="65" description="IMMM"/> <!-- June Futures Expiration/IMM2 Date -->
			<value enum="66" description="IMMN"/> <!-- July Futures Expiration Date -->
			<value enum="67" description="IMMQ"/> <!-- August Futures Expiration Date -->
			<value enum="68" description="IMMU"/> <!-- September Futures Expiration/IMM3 Date -->
			<value enum="69" description="IMMV"/> <!-- October Futures Expiration Date -->
			<value enum="70" description="IMMX"/> <!-- November Futures Expiration Date -->
			<value enum="71" description="IMMZ"/> <!-- December Futures Expiration/IMM4 Date -->
			<value enum="110" description="BOMF"/> <!-- The first business day of January. Also used to represent first working day of next Year (e.g. 360T). -->
			<value enum="111" description="BOMG"/> <!-- The first business day of February -->
			<value enum="112" description="BOMH"/> <!-- The first business day of March -->
			<value enum="113" description="BOMJ"/> <!-- The first business day of April -->
			<value enum="114" description="BOMK"/> <!-- The first business day of May -->
			<value enum="115" description="BOMM"/> <!-- The first business day of June -->
			<value enum="116" description="BOMN"/> <!-- The first business day of July -->
			<value enum="117" description="BOMQ"/> <!-- The first business day of August -->
			<value enum="118" description="BOMU"/> <!-- The first business day of September -->
			<value enum="119" description="BOMV"/> <!-- The first business day of October -->
			<value enum="120" description="BOMX"/> <!-- The first business day of November -->
			<value enum="121" description="BOMZ"/> <!-- The first business day of December -->
			<value enum="72" description="JAN"/> <!-- The first spot value date after the last business day of January -->
			<value enum="73" description="FEB"/> <!-- The first spot value date after the last business day of February -->
			<value enum="74" description="MAR"/> <!-- The first spot value date after the last business day of March -->
			<value enum="75" description="APR"/> <!-- The first spot value date after the last business day of April -->
			<value enum="76" description="MAY"/> <!-- The first spot value date after the last business day of May -->
			<value enum="77" description="JUN"/> <!-- The first spot value date after the last business day of June -->
			<value enum="78" description="JUL"/> <!-- The first spot value date after the last business day of July -->
			<value enum="79" description="AUG"/> <!-- The first spot value date after the last business day of August -->
			<value enum="80" description="SEP"/> <!-- The first spot value date after the last business day of September -->
			<value enum="81" description="OCT"/> <!-- The first spot value date after the last business day of October -->
			<value enum="82" description="NOV"/> <!-- The first spot value date after the last business day of November -->
			<value enum="83" description="DEC"/> <!-- The first spot value date after the last business day of December -->
			<value enum="84" description="EOMF"/> <!-- The last business day of January -->
			<value enum="85" description="EOMG"/> <!-- The last business day of February -->
			<value enum="86" description="EOMH"/> <!-- The last business day of March -->
			<value enum="87" description="EOMJ"/> <!-- The last business day of April -->
			<value enum="88" description="EOMK"/> <!-- The last business day of May -->
			<value enum="89" description="EOMM"/> <!-- The last business day of June -->
			<value enum="90" description="EOMN"/> <!-- The last business day of July -->
			<value enum="91" description="EOMQ"/> <!-- The last business day of August -->
			<value enum="92" description="EOMU"/> <!-- The last business day of September -->
			<value enum="93" description="EOMV"/> <!-- The last business day of October -->
			<value enum="94" description="EOMX"/> <!-- The last business day of November -->
			<value enum="95" description="EOMZ"/> <!-- The last business day of December. Also used to represent last working day of current Year (e.g. 360T). -->
			<value enum="100" description="D1M1"/> <!-- Tomorrow One Month - the M1 Tenor for tomorrow’s trade date. -->
			<value enum="101" description="EOM0"/> <!-- Last business day of current Month -->
			<value enum="102" description="EOM1"/> <!-- Last business day of next Month -->
			<value enum="250" description="YYYYMM"/> <!-- Refer to LegSettlDate for LocalMktDate used to derive YYYYMM value. Defines monthly Futures contract expiry. Consider using IMM[F-Z] for monthly expiry within the next twelve months. -->
			<value enum="251" description="YYYYWW"/> <!-- Refer to LegSettlDate for LocalMktDate used to derive YYYYWW value. Defines weekly Futures contract expiry. -->
			<value enum="252" description="YYYYMMDD"/> <!-- Refer to LegSettlDate for LocalMktDate containing YYYYMMDD value. Defines daily Futures contract expiry. Synonymous to BKN. -->
		</field>
		<field number="64" name="SettlDate" type="LocalMktDate"/> <!-- Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch. -->
		<field number="75" name="TradeDate" type="LocalMktDate"/> <!-- Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch. -->
		<field number="99" name="StopPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="108" name="HeartBtInt" type="int"/> <!-- Heartbeat interval (seconds), specified by Client in Logon. -->
		<field number="110" name="MinQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="117" name="QuoteID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="120" name="SettlCurrency" type="Currency"/> <!-- Currency code supported by MarketFactory. Usually the ISO 4217 Currency code value. -->
		<field number="122" name="OrigSendingTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="126" name="ExpireTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="131" name="QuoteReqID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="132" name="BidPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="133" name="OfferPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="134" name="BidSize" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="135" name="OfferSize" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="147" name="Subject" type="int"> <!-- Categorization of the various Venue-side events that require Warning notification. -->
			<value enum="0" description="SessionRejectSentByMF"/> <!-- A Session-level Reject message was sent to the Venue by MF. -->
			<value enum="1" description="SessionRejectReceivedByMF"/> <!-- A Session-level Reject message was sent by the Venue to MF. -->
			<value enum="2" description="BusinessMessageRejectSentByMF"/> <!-- A Business-level Reject message was sent to the Venue by MF. -->
			<value enum="3" description="BusinessMessageRejectReceivedByMF"/> <!-- A Business-level Reject message was sent by the Venue to MF. -->
			<value enum="4" description="MFAPIMessageRejected"/> <!-- Client sent MF an erroneous message. -->
			<value enum="5" description="MFAPIValidationError"/> <!-- Client message has bad content. -->
			<value enum="6" description="VenueLogonError"/> <!-- Venue connection or logon attempt failed. Informational. -->
			<value enum="7" description="VenueSeqNumError"/> <!-- Venue sequence number gap (either inbound or outbound). Informational. -->
			<value enum="10" description="VenueMessageUnexpected"/> <!-- An unexpected message was received from the Venue. E.g. A QuoteRequest for an unsupported SecurityType. -->
			<value enum="8" description="MFAPIForcedDisconnect"/> <!-- MF was forced to disconnect the Client session. This will only occur in erroneous circumstances, e.g. Client is unable to keep up with message rates. -->
			<value enum="9" description="MFAPITranslationFailure"/> <!-- MF was unable to correctly translate between Client and Venue messages. This will only occur in erroneous circumstances, e.g. Hardware failure leading to a restart and loss of required caches. -->
		</field>
		<field number="150" name="ExecType" type="char"> <!-- Execution Type. -->
			<value enum="0" description="New"/>
			<value enum="4" description="Canceled"/>
			<value enum="5" description="Replaced"/>
			<value enum="6" description="PendingCancel"/>
			<value enum="8" description="Rejected"/>
			<value enum="A" description="PendingNew"/>
			<value enum="B" description="Calculated"/> <!-- For Drop-copy/STP notifications. -->
			<value enum="C" description="Expired"/>
			<value enum="E" description="PendingReplace"/>
			<value enum="F" description="Trade"/>
			<value enum="U" description="CanceledLastLook"/> <!-- Fastmatch returns an indication that the Cancel reason is that the order was rejected because of a Last Look. -->
			<value enum="V" description="PendingMatch"/> <!-- Used for Reuters and EBS when there is an execution that is awaiting validation. -->
			<value enum="Z" description="Error"/> <!-- Used for Reuters/EBS when a trade fails validation. Also used when an order goes into a bad state. Both situations require manual intervention. -->
		</field>
		<field number="167" name="SecurityType" type="String"> <!-- Defines the standard product types supported by MarketFactory. -->
			<value enum="0" description="SPT"/> <!-- FX Spot -->
			<value enum="1" description="FWD"/> <!-- FX Forward -->
			<value enum="2" description="NDF"/> <!-- FX Non-Deliverable Forward -->
			<value enum="3" description="SWP"/> <!-- FX Swap -->
			<value enum="4" description="NDS"/> <!-- FX Non-Deliverable Swap -->
			<value enum="5" description="BLK"/> <!-- FX Block -->
			<value enum="6" description="NDB"/> <!-- FX Non-Deliverable Block -->
			<value enum="7" description="FUT"/> <!-- Future -->
			<value enum="8" description="IMM"/> <!-- Money Market (Cash) -->
			<value enum="9" description="OPT"/> <!-- FX Option -->
			<value enum="10" description="CFD"/> <!-- Contract For Difference -->
		</field>
		<field number="168" name="EffectiveTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="188" name="BidSpotRate" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="189" name="BidForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="190" name="OfferSpotRate" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="191" name="OfferForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="194" name="LastSpotRate" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="210" name="MaxShow" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="211" name="PegOffsetValue" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="231" name="ContractMultiplier" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="262" name="MDReqID" type="String"/> <!-- Unique (within curent trading week) identifier to reliably link request and response messages. -->
		<field number="263" name="SubscriptionRequestType" type="char"> <!-- Market data subscription request type. -->
			<value enum="1" description="SnapshotAndUpdates"/> <!-- Subscription for all market data updates. -->
			<value enum="2" description="DisablePreviousSnapshot"/> <!-- Unsubscribe for all market data updates. -->
		</field>
		<field number="264" name="MarketDepth" type="int"/>
		<field number="268" name="NoMDEntries" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="269" name="MDEntryType" type="char"> <!-- A market data entry type. -->
			<value enum="0" description="Bid"/> <!-- Entry contains credit-screened bid details. -->
			<value enum="u" description="BestBid"/> <!-- Entry contains un-screened bid details. -->
			<value enum="1" description="Offer"/> <!-- Entry contains credit-screened offer details. -->
			<value enum="v" description="BestOffer"/> <!-- Entry contains un-screened offer details. -->
			<value enum="2" description="Trade"/> <!-- Entry contains Venue trade details. -->
			<value enum="y" description="TradePaid"/> <!-- Indicates trade where the Offer was aggressed. -->
			<value enum="x" description="WorstTradePaid"/> <!-- The worst price that was bought on EBS during a timeslice. -->
			<value enum="z" description="TradeGiven"/> <!-- Indicates trade where the Bid was aggressed. -->
			<value enum="w" description="WorstTradeGiven"/> <!-- The worst price that was sold on EBS during a timeslice. -->
			<value enum="H" description="MidPrice"/> <!-- Required for Regulatory reporting. -->
			<value enum="J" description="EmptyBook"/> <!-- Sent to indicate the book should be cleared. -->
			<value enum="B" description="TradeVolume"/> <!-- Aggregate volume during specified period. -->
		</field>
		<field number="270" name="MDEntryPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="271" name="MDEntrySize" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="273" name="MDEntryTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="278" name="MDEntryID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="279" name="MDUpdateAction" type="char"> <!-- A market data update action. -->
			<value enum="0" description="New"/>
			<value enum="1" description="Change"/>
			<value enum="2" description="Delete"/>
		</field>
		<field number="295" name="NoQuoteEntries" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="296" name="NoQuoteSets" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="299" name="QuoteEntryID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="302" name="QuoteSetID" type="int"/>
		<field number="326" name="SecurityTradingStatus" type="int"> <!-- Trading status for a specific security. -->
			<value enum="17" description="ReadyToTrade"/>
			<value enum="20" description="UnknownOrInvalid"/>
		</field>
		<field number="346" name="NumberOfOrders" type="int"/> <!-- Nullable, unsigned 16-bit integer. -->
		<field number="389" name="DiscretionOffsetValue" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="452" name="PartyRole" type="int"> <!-- Details of conditionally populated counterparty identification fields. -->
			<value enum="1" description="ExecutingFirm"/> <!-- Maker Firm responsible for filling/rejecting this Order. -->
			<value enum="59" description="ExecutingUnit"/> <!-- Maker branch/business unit under which this trade will be booked. -->
			<value enum="251" description="ExecutingUnitLocation"/> <!-- Location of the Branch responsible for the execution of the client's order. Two-character ISO 3166 Country Code. -->
			<value enum="12" description="ExecutingTrader"/> <!-- Maker Trader responsible for filling/rejecting this Order - may be human or autotrader. -->
			<value enum="253" description="ExecutingFirmLEI"/> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. A Legal Entity Identifier defined by ISO 17442 to identify the Maker Firm. -->
			<value enum="13" description="OrderOriginationFirm"/> <!-- Taker Firm responsible for submission of this Order. -->
			<value enum="250" description="OrderOriginationFirmLocation"/> <!-- Location of the Branch responsible for the submission of the client's order. Two-character ISO 3166 Country Code. -->
			<value enum="11" description="OrderOriginationTrader"/> <!-- Taker Trader responsible for submission of this Order - may be human or autotrader. -->
			<value enum="254" description="OrderOriginationFirmLEI"/> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. A Legal Entity Identifier defined by ISO 17442 to identify the Taker Firm. -->
			<value enum="17" description="ContraFirm"/> <!-- Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party. -->
			<value enum="37" description="ContraTrader"/> <!-- Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party. -->
			<value enum="252" description="ContraFirmLEI"/> <!-- Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party. A Legal Entity Identifier defined by ISO 17442 to identify the third party Firm. -->
			<value enum="73" description="ExecutionVenue"/> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. May be an LEI or MIC of the Swap Execution Facility (SEF), Multilateral Trading Facility (MTF), Organized Trading Facility (OTF) or Regulated Market (RM). -->
			<value enum="79" description="PrimeBroker"/> <!-- The counterparty Prime Broker. -->
			<value enum="116" description="ReportingEntity"/> <!-- Conditionally populated if RegulatoryBodies=SEF/EMIR/MiFID. May be an LEI or MIC, or 'ExecutingFirm', 'OrderOriginationFirm', 'ExecutionVenue', 'Unknown'. -->
		</field>
		<field number="453" name="NoPartyIDs" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="537" name="QuoteType" type="Boolean"/> <!-- Bid/Offer quote condition flags. -->
		<field number="541" name="MaturityDate" type="LocalMktDate"/> <!-- Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch. -->
		<field number="553" name="Username" type="String"/> <!-- Id given to user for logging on. -->
		<field number="554" name="Password" type="String"/> <!-- Password used to logon. -->
		<field number="555" name="NoLegs" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="556" name="LegCurrency" type="Currency"/> <!-- Currency code supported by MarketFactory. Usually the ISO 4217 Currency code value. -->
		<field number="566" name="LegPrice" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="587" name="LegSettlType" type="int"> <!-- Defines the standard Tenors supported by MarketFactory. -->
			<value enum="0" description="BKN"/> <!-- Broken Date, refer to LegSettlDate for LocalMktDate containing YYYYMMDD value. -->
			<value enum="1" description="TOD"/> <!-- Today, equivalent to T+0 -->
			<value enum="2" description="TOM"/> <!-- Tomorrow, equivalent to T+1 -->
			<value enum="3" description="SPT"/> <!-- Spot, equivalent to T+1 or T+2 (depending on the currency pair) -->
			<value enum="4" description="D1"/> <!-- One day after Spot -->
			<value enum="5" description="D2"/> <!-- Two days after Spot -->
			<value enum="6" description="D3"/> <!-- Three days after Spot -->
			<value enum="7" description="D4"/> <!-- Four days after Spot -->
			<value enum="8" description="W1"/> <!-- One Week after Spot -->
			<value enum="9" description="W2"/> <!-- Two Weeks after Spot -->
			<value enum="10" description="W3"/> <!-- Three Weeks after Spot -->
			<value enum="11" description="M1"/> <!-- One Month after Spot -->
			<value enum="12" description="M2"/> <!-- Two Months after Spot -->
			<value enum="13" description="M3"/> <!-- Three Months after Spot -->
			<value enum="14" description="M4"/> <!-- Four Months after Spot -->
			<value enum="15" description="M5"/> <!-- Five Months after Spot -->
			<value enum="16" description="M6"/> <!-- Six Months after Spot -->
			<value enum="17" description="M7"/> <!-- Seven Months after Spot -->
			<value enum="18" description="M8"/> <!-- Eight Months after Spot -->
			<value enum="19" description="M9"/> <!-- Nine Months after Spot -->
			<value enum="20" description="M10"/> <!-- Ten Months after Spot -->
			<value enum="21" description="M11"/> <!-- Eleven Months after Spot -->
			<value enum="22" description="Y1"/> <!-- One Year after Spot -->
			<value enum="23" description="M15"/> <!-- Fifteen Months after Spot -->
			<value enum="24" description="M18"/> <!-- Eighteen Months after Spot -->
			<value enum="25" description="M21"/> <!-- Twenty-one Months after Spot -->
			<value enum="26" description="Y2"/> <!-- Two Years after Spot -->
			<value enum="27" description="Y3"/> <!-- Three Years after Spot -->
			<value enum="28" description="Y4"/> <!-- Four Years after Spot -->
			<value enum="29" description="Y5"/> <!-- Five Years after Spot -->
			<value enum="30" description="Y6"/> <!-- Six Years after Spot -->
			<value enum="31" description="Y7"/> <!-- Seven Years after Spot -->
			<value enum="32" description="Y8"/> <!-- Eight Years after Spot -->
			<value enum="33" description="Y9"/> <!-- Nine Years after Spot -->
			<value enum="34" description="Y10"/> <!-- Ten Years after Spot -->
			<value enum="35" description="Y15"/> <!-- Fifteen Years after Spot -->
			<value enum="36" description="Y20"/> <!-- Twenty Years after Spot -->
			<value enum="37" description="Y25"/> <!-- Twenty-five Years after Spot -->
			<value enum="38" description="Y30"/> <!-- Thirty Years after Spot -->
			<value enum="50" description="ON"/> <!-- Overnight - TOD/TOM Single-legged Swap -->
			<value enum="51" description="TN"/> <!-- Tom-Next - TOM/SPT Single-legged Swap -->
			<value enum="52" description="SN"/> <!-- Spot-Next - SPT/D1 Single-legged Swap -->
			<value enum="53" description="T2"/> <!-- T+2 - Second day after trade date -->
			<value enum="54" description="T3"/> <!-- T+3 - Third day after trade date -->
			<value enum="55" description="T4"/> <!-- T+4 - Fourth day after trade date -->
			<value enum="56" description="T5"/> <!-- T+5 - Fifth day after trade date -->
			<value enum="60" description="IMMF"/> <!-- January Futures Expiration Date -->
			<value enum="61" description="IMMG"/> <!-- February Futures Expiration Date -->
			<value enum="62" description="IMMH"/> <!-- March Futures Expiration/IMM1 Date -->
			<value enum="63" description="IMMJ"/> <!-- April Futures Expiration Date -->
			<value enum="64" description="IMMK"/> <!-- May Futures Expiration Date -->
			<value enum="65" description="IMMM"/> <!-- June Futures Expiration/IMM2 Date -->
			<value enum="66" description="IMMN"/> <!-- July Futures Expiration Date -->
			<value enum="67" description="IMMQ"/> <!-- August Futures Expiration Date -->
			<value enum="68" description="IMMU"/> <!-- September Futures Expiration/IMM3 Date -->
			<value enum="69" description="IMMV"/> <!-- October Futures Expiration Date -->
			<value enum="70" description="IMMX"/> <!-- November Futures Expiration Date -->
			<value enum="71" description="IMMZ"/> <!-- December Futures Expiration/IMM4 Date -->
			<value enum="110" description="BOMF"/> <!-- The first business day of January. Also used to represent first working day of next Year (e.g. 360T). -->
			<value enum="111" description="BOMG"/> <!-- The first business day of February -->
			<value enum="112" description="BOMH"/> <!-- The first business day of March -->
			<value enum="113" description="BOMJ"/> <!-- The first business day of April -->
			<value enum="114" description="BOMK"/> <!-- The first business day of May -->
			<value enum="115" description="BOMM"/> <!-- The first business day of June -->
			<value enum="116" description="BOMN"/> <!-- The first business day of July -->
			<value enum="117" description="BOMQ"/> <!-- The first business day of August -->
			<value enum="118" description="BOMU"/> <!-- The first business day of September -->
			<value enum="119" description="BOMV"/> <!-- The first business day of October -->
			<value enum="120" description="BOMX"/> <!-- The first business day of November -->
			<value enum="121" description="BOMZ"/> <!-- The first business day of December -->
			<value enum="72" description="JAN"/> <!-- The first spot value date after the last business day of January -->
			<value enum="73" description="FEB"/> <!-- The first spot value date after the last business day of February -->
			<value enum="74" description="MAR"/> <!-- The first spot value date after the last business day of March -->
			<value enum="75" description="APR"/> <!-- The first spot value date after the last business day of April -->
			<value enum="76" description="MAY"/> <!-- The first spot value date after the last business day of May -->
			<value enum="77" description="JUN"/> <!-- The first spot value date after the last business day of June -->
			<value enum="78" description="JUL"/> <!-- The first spot value date after the last business day of July -->
			<value enum="79" description="AUG"/> <!-- The first spot value date after the last business day of August -->
			<value enum="80" description="SEP"/> <!-- The first spot value date after the last business day of September -->
			<value enum="81" description="OCT"/> <!-- The first spot value date after the last business day of October -->
			<value enum="82" description="NOV"/> <!-- The first spot value date after the last business day of November -->
			<value enum="83" description="DEC"/> <!-- The first spot value date after the last business day of December -->
			<value enum="84" description="EOMF"/> <!-- The last business day of January -->
			<value enum="85" description="EOMG"/> <!-- The last business day of February -->
			<value enum="86" description="EOMH"/> <!-- The last business day of March -->
			<value enum="87" description="EOMJ"/> <!-- The last business day of April -->
			<value enum="88" description="EOMK"/> <!-- The last business day of May -->
			<value enum="89" description="EOMM"/> <!-- The last business day of June -->
			<value enum="90" description="EOMN"/> <!-- The last business day of July -->
			<value enum="91" description="EOMQ"/> <!-- The last business day of August -->
			<value enum="92" description="EOMU"/> <!-- The last business day of September -->
			<value enum="93" description="EOMV"/> <!-- The last business day of October -->
			<value enum="94" description="EOMX"/> <!-- The last business day of November -->
			<value enum="95" description="EOMZ"/> <!-- The last business day of December. Also used to represent last working day of current Year (e.g. 360T). -->
			<value enum="100" description="D1M1"/> <!-- Tomorrow One Month - the M1 Tenor for tomorrow’s trade date. -->
			<value enum="101" description="EOM0"/> <!-- Last business day of current Month -->
			<value enum="102" description="EOM1"/> <!-- Last business day of next Month -->
			<value enum="250" description="YYYYMM"/> <!-- Refer to LegSettlDate for LocalMktDate used to derive YYYYMM value. Defines monthly Futures contract expiry. Consider using IMM[F-Z] for monthly expiry within the next twelve months. -->
			<value enum="251" description="YYYYWW"/> <!-- Refer to LegSettlDate for LocalMktDate used to derive YYYYWW value. Defines weekly Futures contract expiry. -->
			<value enum="252" description="YYYYMMDD"/> <!-- Refer to LegSettlDate for LocalMktDate containing YYYYMMDD value. Defines daily Futures contract expiry. Synonymous to BKN. -->
		</field>
		<field number="588" name="LegSettlDate" type="LocalMktDate"/> <!-- Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch. -->
		<field number="609" name="LegSecurityType" type="String"> <!-- Defines the standard product types supported by MarketFactory. -->
			<value enum="0" description="SPT"/> <!-- FX Spot -->
			<value enum="1" description="FWD"/> <!-- FX Forward -->
			<value enum="2" description="NDF"/> <!-- FX Non-Deliverable Forward -->
			<value enum="3" description="SWP"/> <!-- FX Swap -->
			<value enum="4" description="NDS"/> <!-- FX Non-Deliverable Swap -->
			<value enum="5" description="BLK"/> <!-- FX Block -->
			<value enum="6" description="NDB"/> <!-- FX Non-Deliverable Block -->
			<value enum="7" description="FUT"/> <!-- Future -->
			<value enum="8" description="IMM"/> <!-- Money Market (Cash) -->
			<value enum="9" description="OPT"/> <!-- FX Option -->
			<value enum="10" description="CFD"/> <!-- Contract For Difference -->
		</field>
		<field number="611" name="LegMaturityDate" type="LocalMktDate"/> <!-- Local calendar date at the market location (i.e. TK/LN/NY), as days since epoch. -->
		<field number="624" name="LegSide" type="char"> <!-- Side: Taker Buys against Maker Offer, Sells against Maker Bid. -->
			<value enum="1" description="Buy"/>
			<value enum="2" description="Sell"/>
			<value enum="7" description="TwoWay"/>
		</field>
		<field number="627" name="NoHops" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="629" name="HopSendingTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="630" name="HopRefID" type="SeqNum"/> <!-- Sequence number for detection of missed messages. -->
		<field number="631" name="MidPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="637" name="LegLastPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="670" name="NoLegAllocs" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="671" name="LegAllocAccount" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="672" name="LegIndividualAllocID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="673" name="LegAllocQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="675" name="LegSettlCurrency" type="Currency"/> <!-- Currency code supported by MarketFactory. Usually the ISO 4217 Currency code value. -->
		<field number="681" name="LegBidPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="684" name="LegOfferPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="685" name="LegOrderQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="694" name="QuoteRespType" type="int"> <!-- Reason for termination of QuoteRequest. -->
			<value enum="6" description="Pass"/> <!-- ESP/RFS Stream rejected or terminated by Taker or Maker. -->
			<value enum="8" description="TimedOut"/> <!-- RFS Stream duration ended without Order. Maker, Taker and ECN may all have individual time-outs. -->
		</field>
		<field number="789" name="NextExpectedMsgSeqNum" type="SeqNum"/> <!-- Sequence number for detection of missed messages. -->
		<field number="924" name="UserRequestType" type="int"> <!-- Venue action requested by MFAPI Client. -->
			<value enum="1" description="LogOnUser"/> <!-- Request to establish connectivity with Venue. -->
			<value enum="2" description="LogOffUser"/> <!-- Request to cease connectivity with Venue. -->
		</field>
		<field number="926" name="UserStatus" type="int"> <!-- Venue notification of MFAPI Client status. -->
			<value enum="1" description="LoggedOn"/> <!-- User connected with Venue. -->
			<value enum="2" description="LoggedOff"/> <!-- User disconnected from Venue. -->
			<value enum="251" description="PrimeBrokerLoggedOff"/> <!-- Reuters specific. The PB is logged off and therefore new orders are not able to be submitted. -->
			<value enum="252" description="CreditLow"/> <!-- Credit status. -->
			<value enum="253" description="CreditExhausted"/> <!-- Credit status. -->
			<value enum="254" description="CreditAvailable"/> <!-- Credit status. -->
		</field>
		<field number="957" name="NoStrategyParameters" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="959" name="StrategyParameterType" type="int">
			<value enum="1" description="Int"/>
			<value enum="2" description="Length"/>
			<value enum="3" description="NumInGroup"/>
			<value enum="4" description="SeqNum"/>
			<value enum="5" description="TagNum"/>
			<value enum="6" description="Float"/>
			<value enum="7" description="Qty"/>
			<value enum="8" description="Price"/>
			<value enum="9" description="PriceOffset"/>
			<value enum="10" description="Amt"/>
			<value enum="11" description="Percentage"/>
			<value enum="12" description="Char"/>
			<value enum="13" description="Boolean"/>
			<value enum="14" description="String"/>
			<value enum="15" description="MultipleCharValue"/>
			<value enum="16" description="Currency"/>
			<value enum="17" description="Exchange"/>
			<value enum="18" description="MonthYear"/>
			<value enum="19" description="UTCTimestamp"/>
			<value enum="20" description="UTCTimeOnly"/>
			<value enum="21" description="LocalMktDate"/>
			<value enum="22" description="UTCDateOnly"/>
			<value enum="23" description="Data"/>
			<value enum="24" description="MultipleStringValue"/>
			<value enum="25" description="Country"/>
			<value enum="26" description="Language"/>
			<value enum="27" description="TZTimeOnly"/>
			<value enum="28" description="TZTimestamp"/>
			<value enum="29" description="Tenor"/>
		</field>
		<field number="969" name="MinPriceIncrement" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1021" name="MDBookType" type="int"> <!-- Defines the type of a market data update group. -->
			<value enum="2" description="PriceDepth"/> <!-- Book entries are ordered by price. Associated amounts are aggregated order quantities at that price level. -->
			<value enum="3" description="OrderDepth"/> <!-- Book entries are ordered by price then amount. Each entry represents an individual order. -->
			<value enum="101" description="Spread"/> <!-- Book entries are ordered by configured price deltas from ToB. Associated amounts are aggregate order quantities available between ToB and that level. -->
			<value enum="102" description="Amount"/> <!-- Book entries are ordered by configured amounts. Associated prices are the corresponding multiple-trade VWAP from ToB. -->
			<value enum="103" description="FullAmount"/> <!-- Book entries are ordered by configured amounts. Associated prices are single-trade. -->
			<value enum="105" description="TradeTicker"/> <!-- Paid/Given feed. -->
			<value enum="106" description="NOW_WAMR"/> <!-- Currenex_NOW Weighted Average Mid-Rate with bid/offer quotes banded into confidence percentiles. -->
			<value enum="107" description="NOW_Mid"/> <!-- Currenex_NOW Mid-match activity notification feed. -->
		</field>
		<field number="1026" name="MDEntrySpotRate" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1027" name="MDEntryForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1036" name="ExecAckStatus" type="char"> <!-- Confirms or denys Maker ExecutionReport. -->
			<value enum="1" description="Accepted"/>
			<value enum="2" description="Rejected"/>
		</field>
		<field number="1067" name="LegBidForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1068" name="LegOfferForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1073" name="LegLastForwardPoints" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="1074" name="LegCalculatedCcyLastQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="1094" name="PegPriceType" type="int">
			<value enum="2" description="MidPricePeg"/> <!-- Peg to midpoint between the Bid and the Offer. -->
			<value enum="4" description="MarketPeg"/> <!-- Peg to Bid if Selling, Offer if Buying. -->
			<value enum="5" description="PrimaryPeg"/> <!-- Peg to Bid if Buying, Offer if Selling. -->
		</field>
		<field number="1151" name="SecurityGroup" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="1173" name="MDSubBookType" type="int"> <!-- TBD -->
			<value enum="0" description="CMEImpliedLiquidty"/> <!-- CME Implied Liquidity. -->
			<value enum="1" description="EBSGlobal"/> <!-- EBS Ultra Global Feed. -->
			<value enum="2" description="EBSTokyo"/> <!-- EBS Ultra Multi-Region Feed: Order submitted in Tokyo. -->
			<value enum="3" description="EBSLondon"/> <!-- EBS Ultra Multi-Region Feed: Order submitted in London. -->
			<value enum="4" description="EBSNewYork"/> <!-- EBS Ultra Multi-Region Feed: Order submitted in New York. -->
		</field>
		<field number="1177" name="NoOfSecSizes" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="1179" name="MDSecSize" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="1181" name="ApplSeqNum" type="SeqNum"/> <!-- Sequence number for detection of missed messages. -->
		<field number="1418" name="LegLastQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="1629" name="ExposureDuration" type="int"/> <!-- Nullable, unsigned 32-bit integer. -->
		<field number="1913" name="NumOfCompetitors" type="int"/> <!-- 0=Not in competition; -1=In competition (number of competitors unknown), n=In competition (Number of competitors); NULL=unknown. -->
		<field number="2115" name="NegotiationMethod" type="int"> <!-- Indicates whether QuoteRequest is for ESP or RFS. -->
			<value enum="100" description="ESP"/> <!-- Executable Streaming Prices via MassQuote. -->
			<value enum="101" description="RFS"/> <!-- Request For Stream via Quote. -->
			<value enum="102" description="RFQ"/> <!-- Request For Quote (single-shot) via Quote. -->
			<value enum="103" description="Order"/> <!-- Instruction to Venue. -->
		</field>
		<field number="2346" name="LegMidPx" type="Price"/> <!-- A number representing price. May be negative (e.g. Forward Points). -->
		<field number="2422" name="OrderRequestID" type="String"/> <!-- Fixed length string type for IDs assigned by Venues. All valid ASCII from decimal 32 to decimal 126 allowed, including "$%&'()+.;?@\^{} and excluding #!*,-/:=[]_`|~<> -->
		<field number="20005" name="HasExtendedOrderFields" type="NumInGroup"/> <!-- Conditionally populated group dimensions: 0..1. -->
		<field number="20006" name="HopNetworkTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="20007" name="HopArrivalTime" type="UTCTimestamp"/> <!-- Number of nanoseconds since epoch. -->
		<field number="20008" name="HasExtendedPriceFields" type="NumInGroup"/> <!-- Conditionally populated group dimensions: 0..1. -->
		<field number="20009" name="HasNDFFields" type="NumInGroup"/> <!-- Conditionally populated group dimensions: 0..1. -->
		<field number="20010" name="HasLegNDFFields" type="NumInGroup"/> <!-- Conditionally populated group dimensions: 0..1. -->
		<field number="20011" name="NoFixingRefs" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20012" name="Venuename" type="String"/> <!-- Id given to user for logging on. -->
		<field number="20013" name="MDFlags" type="Boolean"/>
		<field number="20015" name="LegAllocCalculatedCcyQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="20016" name="LegCumQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="20017" name="LegLeavesQty" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="20018" name="LotSize" type="Qty"/> <!-- A number representing quantity. May be negative (e.g. Allocation direction). -->
		<field number="20019" name="SessionType" type="int">
			<value enum="0" description="Pricing"/> <!-- MFAPI Client establishes a MarketData session with the Venue, CLOB or ESP MassQuotes. -->
			<value enum="1" description="Orders"/> <!-- MFAPI Client establishes a Trading session with the Venue, CLOB or ESP Orders. -->
			<value enum="2" description="RFS"/> <!-- MFAPI Client establishes a RFS/RFQ quotation negotiation session with the Venue. -->
			<value enum="3" description="DropCopy"/> <!-- MFAPI Client establishes a STP session with the Venue. -->
		</field>
		<field number="20020" name="MarketType" type="char"> <!-- Indicates whether the NDF is onshore or offshore. -->
			<value enum="0" description="Regular"/> <!-- Utilised when the NDF does not differentiate between onshore and offshore markets. -->
			<value enum="1" description="Onshore"/> <!-- Onshore pricing of the NDF. -->
			<value enum="2" description="Offshore"/> <!-- Offshore pricing of the NDF. -->
		</field>
		<field number="20021" name="RegulatoryBodies" type="Boolean"/> <!-- Allows definition of which Regulatory Fields the Order will include. -->
		<field number="20030" name="NoBodyPassthruFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20040" name="NoBodyRegulatoryFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20041" name="BodyRegulatoryKey" type="int"> <!-- Details of conditionally populated Regulatory fields. -->
			<value enum="0" description="SEFTakerIsUSPerson"/> <!-- Y/N: A legal term referring to any U.S. person or legal entity anywhere in the world that should be taxed under U.S. law. -->
			<value enum="1" description="SEFDataRepository"/> <!-- Repository for the reporting of SEF trades. -->
			<value enum="3" description="SEFIsLargeTrade"/> <!-- Y/N: Indicates whether or not part of a large trade. -->
			<value enum="4" description="SEFRequiredTransaction"/> <!-- Y/N: Indicates whether or not a required transaction (rather than permitted). -->
			<value enum="5" description="SEFClearingExempted"/> <!-- Y/N: Indicates whether or not this trade is exempted from clearing. -->
			<value enum="6" description="SEFClearer"/> <!-- Conditionally populated if SEFClearingExempted=N. Clearing House (DCO) to be used for the clearing of SEF trades. -->
			<value enum="7" description="SEFFinancialEntityDefinition"/> <!-- 'SD' (Swap Dealer), 'MSP' (Major Swap Participant), or 'ECP' (Eligible Contract Participant). -->
			<value enum="8" description="SEFCustomerTypeIndicator"/> <!-- 1/2/3/4: https://www.investopedia.com/terms/c/cti.asp -->
			<value enum="9" description="SEFIsBlock"/> <!-- Y/N: Indicates whether or not the trade is classified as a Block for SEF purposes? -->
			<value enum="20" description="EMIRDoNotUse"/> <!-- Intentionally blank. -->
			<value enum="40" description="MiFIDProductISIN"/> <!-- Product-level 12 character International Securities Identification Number http://www.anna-web.org/home/derivatives-service-bureau/. Not populated for single-legged products (refer to LegMiFIDISIN instead). -->
			<value enum="42" description="MiFIDExecutingDecisionMakerAsNaturalPerson"/> <!-- Shortcode representing the Executing Decision Maker Natural Person of message sender. -->
			<value enum="47" description="MiFIDExecutingDecisionMakerAsAlgorithm"/> <!-- Shortcode representing the Executing Decision Maker Algorithm of message sender. -->
			<value enum="43" description="MiFIDInvestmentDecisionMakerAsNaturalPerson"/> <!-- Shortcode representing the Investment Decision Maker Natural Person of message sender. -->
			<value enum="57" description="MiFIDInvestmentDecisionMakerAsAlgorithm"/> <!-- Shortcode representing the Investment Decision Maker Algorithm of message sender. -->
			<value enum="41" description="MiFIDLargeInScaleWaiver"/> <!-- Y/N: Pre-Trade Block Size waiver indicator. -->
			<value enum="44" description="MiFIDIlliquidInstrumentWaiver"/> <!-- Y/N: Pre-Trade Illiquid Instrument waiver indicator. -->
			<value enum="45" description="MiFIDSizeSpecificWaiver"/> <!-- Y/N: Pre-Trade Size-specific (trade of substantial size etc.) waiver indicator. -->
			<value enum="54" description="MiFIDLargeInScaleDeferral"/> <!-- Y/N: Post-Trade Block Size deferral indicator. -->
			<value enum="55" description="MiFIDIlliquidInstrumentDeferral"/> <!-- Y/N: Post-Trade Illiquid Instrument deferral indicator. -->
			<value enum="56" description="MiFIDSizeSpecificDeferral"/> <!-- Y/N: Post-Trade Size-specific (trade of substantial size etc.) deferral indicator. -->
			<value enum="46" description="MiFIDLiquidityProvisionFlag"/> <!-- Y/N: Indicates that the Order is part of a liquidity provision activity. -->
			<value enum="48" description="MiFIDPackageTradeFlag"/> <!-- Y/N: Indicates that the Order is considered a Package/aggregated transaction for reporting purposes. -->
			<value enum="49" description="MiFIDPackageID"/> <!-- Conditionally populated if MiFIDPackageTradeFlag=Y. Identifier assigned to a collection of trades so they may be analysed as a single unit. -->
			<value enum="50" description="MiFIDSystematicInternaliser"/> <!-- Segment MIC code (as per ISO 10383) of message sender, indicating it is a Systematic Internaliser. -->
			<value enum="51" description="MiFIDRiskReductionOrderFlag"/> <!-- Y/N: In the context of ESMA RTS 22 Article 4(2)(i), signifies whether or not the Order is a transaction 'to reduce risk in an objectively measurable way in accordance with Article 57 of Directive 2014/65/EU'. -->
			<value enum="52" description="MiFIDTradingCapacity"/> <!-- DEAL: Firm Deals on own account; MTCH: Firm trades in a matched principal capacity; AOTC: Any other trading capacity (e.g. Agency). -->
			<value enum="53" description="MiFIDNonPriceFormingTrade"/> <!-- Y/N: Transactions where the exchange of financial instruments is determined by factors other than the current market valuation of the financial instrument as listed under Article 13. -->
		</field>
		<field number="20050" name="NoLegPassthruFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20060" name="NoLegRegulatoryFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20061" name="LegRegulatoryKey" type="int"> <!-- Details of conditionally populated Regulatory fields. -->
			<value enum="0" description="LegSEFUSIPrefix"/> <!-- 10 character Unique Swap Identifier Prefix for this Leg, usually a hash of the code issueing authority’s LEI. The Maker may choose to generate their own IDs, in whhich case this value will differ from the that provided in the Order. -->
			<value enum="1" description="LegSEFUSI"/> <!-- 32 character Unique Swap Identifier (USI) for this Leg. The Maker may choose to generate their own IDs, in which case the ExecutionReport value will differ from the that provided in the Order. -->
			<value enum="20" description="LegEMIRUTIPrefix"/> <!-- 10 character Unique Trade Identifier (UTI) Prefix for this Leg, usually a hash of the code issueing authority’s LEI. -->
			<value enum="21" description="LegEMIRUTI"/> <!-- 42 character Unique Trade Identifier (UTI) for this Leg. -->
			<value enum="40" description="LegMiFIDISIN"/> <!-- 12 character International Securities Identification Number http://www.anna-web.org/home/derivatives-service-bureau/. -->
			<value enum="41" description="LegMiFIDTVTIC"/> <!-- 52 character Trading Venue Transaction Identification Code (TVTIC) for this Leg. -->
			<value enum="42" description="LegMiFIDConversionFlag"/> <!-- Y/N: Indicates whether or not this Leg is an FX conversion trade and related to a transaction which would be exempt from margining and reporting. Tenor must be less than T+5 - i.e. TOD, TOM, SPT, D1 or D2. Sometimes known as a long-dated Spot. -->
			<value enum="60" description="LegSFTRSecuritiesFinancingTransactionFlag"/> <!-- Y/N: Indicates whether or not this Leg is a transactions where securities are used to borrow cash, or vice versa. -->
		</field>
		<field number="20070" name="NoAllocPassthruFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20080" name="NoAllocRegulatoryFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
		<field number="20081" name="AllocRegulatoryKey" type="int"> <!-- Details of conditionally populated Regulatory fields. -->
			<value enum="0" description="AllocSEFUSIPrefix"/> <!-- 10 character Unique Swap Identifier Prefix for this Allocation, usually a hash of the code issueing authority’s LEI. -->
			<value enum="1" description="AllocSEFUSI"/> <!-- 32 character Unique Swap Identifier (USI) for this Allocation. -->
			<value enum="20" description="AllocEMIRUTIPrefix"/> <!-- 10 character Unique Trade Identifier (UTI) Prefix for this Allocation, usually a hash of the code issueing authority’s LEI. -->
			<value enum="21" description="AllocEMIRUTI"/> <!-- 42 character Unique Trade Identifier (UTI) for this Allocation. -->
			<value enum="41" description="AllocMiFIDTVTIC"/> <!-- 52 character Trading Venue Transaction Identification Code (TVTIC) for this Allocation -->
			<value enum="42" description="AllocMiFIDConversionFlag"/> <!-- Y/N: Indicates whether or not the Allocation is an FX conversion trade and related to a transaction which would be exempt from margining and reporting. Tenor must be less than T+5 - i.e. TOD, TOM, SPT, D1 or D2. -->
			<value enum="43" description="AllocMiFIDNonPriceFormingTrade"/> <!-- Y/N: Transactions where the exchange of financial instruments is determined by factors other than the current market valuation of the financial instrument as listed under Article 13. -->
			<value enum="44" description="AllocMiFIDLEI"/> <!-- Optionally populated if OrderOriginatonFirm is Trading on Behalf of a third party ContraFirm. A Legal Entity Identifier defined by ISO 17442 to identify the third party allocation account entity. -->
		</field>
		<field number="20090" name="NoEntryPassthruFields" type="NumInGroup"/> <!-- Repeating group dimensions: 0..n. -->
	</fields>
</fix>

Download Files

No files shared here yet.

Additional Material

Further detail is provided in the following page(s):

  • No labels