The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from this space and version 1.4.35

Table of Contents

Workflow

ESP Maker

Supported Instruments

Expand


Table Filter
totalrow,,,,,,,,,,,,
hidelabelsfalse
sparkNameSparkline
hidePanetrue
sparklinefalse
defaultcurrenex_esp_maker,ExecutionVenue&&Products&&OrdType (SessionType == Orders)&&TimeInForce (SessionType == Orders)&&client_role&&target_platform&&MDBookType&&MDEntryType
isFirstTimeEnterfalse
cell-width250,712
hideColumnstrue
customNoTableMsgfalse
disabledfalse
enabledInEditorfalse
globalFilterfalse
id1688375796110_1797105023
order0,1
hideControlsfalse
inversefalse,false
columnVenue
disableSavefalse
separatorPoint (.)
labelsVenue‚Hide columns
ddOperatorOR
datepatterndd M yy
updateSelectOptionsfalse
worklog365|5|8|y w d h m|y w d h m
isORAND
Table Excerpt Include
nameSupportedInstruments
merge-tablestrue
pageSupported Instruments
typepage


Please refer to Supported Instruments to view across all venues.

PartyIDs

Expand


Table Filter
hideControlstrue
inversefalse
totalrow,,,
hidelabelsfalse
sparkNameSparkline
hidePanetrue
disableSavefalse
separatorPoint (.)
sparklinefalse
labelsVenue
defaultcurrenex_esp_maker
isFirstTimeEnterfalse
cell-width150
hideColumnsfalse
userfilterVenue
datepatterndd M yy
disabledfalse
enabledInEditorfalse
globalFilterfalse
id1687345878831_993188771
updateSelectOptionsfalse
worklog5|8|w d h m|w d h m
isORAND
order0

Table Excerpt Include
copytabletrue
namePartyIDs
pagePartyIDs
typepage



Please refer to PartyIDs to view across all venues.

Regulatory Fields

Expand


Table Filter
hideControlstrue
inversefalse
totalrow,,,,,
hidelabelsfalse
sparkNameSparkline
hidePanetrue
disableSavefalse
separatorPoint (.)
sparklinefalse
labelsVenue
defaultcurrenex_esp_maker
isFirstTimeEnterfalse
cell-width150
hideColumnsfalse
userfilterVenue
datepatterndd M yy
disabledfalse
enabledInEditorfalse
globalFilterfalse
id1687345885469_-2073577401
updateSelectOptionsfalse
worklog5|8|w d h m|w d h m
isORAND
order0

Table Excerpt Include
copytabletrue
nameRegulatoryFields
pageRegulatory Fields
typepage


Please refer to Regulatory Fields to view across all venues.

Passthru Fields

Expand


Table Filter
hideControlstrue
inversefalse
totalrow,,,,,
hidelabelsfalse
sparkNameSparkline
hidePanetrue
disableSavefalse
separatorPoint (.)
sparklinefalse
labelsVenue
defaultcurrenex_esp_maker
isFirstTimeEnterfalse
cell-width150
hideColumnsfalse
userfilterVenue
datepatterndd M yy
disabledfalse
enabledInEditorfalse
globalFilterfalse
id1687345898043_-447384896
updateSelectOptionsfalse
worklog5|8|w d h m|w d h m
isORAND
order0

Table Excerpt Include
copytabletrue
namePassthruFields
pagePassthru Fields
typepage


Please refer to Passthru Fields to view across all venues.

Details

Warning
titleLogon Retry Interval

On receiving a logout, it is recommended that clients wait for a minimum of 15 seconds before retrying the logon. A faster logon attempt will be treated as spam by the venue and blocked. 

Note
  • In case of Maker receiving orders with OrdQty having decimal value, Trade will timeout if the OrderQty (38) has been changed or rounded to the nearest dollar. 
  • Execution Report sent with price/qty/etc different from order, the ExecutionReport will not be accepted and will result in Business Reject.

Quoting Model

Most Market-making venues expect the liquidity provider to provide a  complete volume ladder per subscription, typically via MassQuote or MarketDataSnapshotFullRefresh messages.

For a given instrument, there may be multiple subscriptions, in order for the maker clients to be associated with a particular pricing "Scheme" (e.g. separate subscriptions requests for Gold, Silver, Bronze pricing in EUR/USD).

In this context a small number of Schemes are bilaterally agreed between the venue and the Maker. Each Maker client is associated with a single Scheme. The Maker uses each Scheme to provide a custom combination of currency pairs, available liquidity (no. of rungs, and associated quantities), spread, granularity of pricing and so on. Each volume ladder update is complete and self-contained.


Currenex does not operate like this. Instead a larger set of "Tiers" are agreed between the Venue and the Maker. Each Tier is essentially a single bid-offer rung (i.e. not a Ladder), for an arbitrary set of currencies. Currenex can be configured to associate each Tier with a specific quantity which will be specified in the associated subscription request. If not configured, the maker may provide whatever volume they wish, from update to update. 

Maker clients are associated with arbitrary sets of Tiers, rather than a single Scheme. This has a great deal of inherent flexibility, but means that a substantial number of tiers are required in order to exactly replicate a 'standard' model on another venue. For example to deliver 5-rung Gold, Sliver, Bronze pricing across all pairs in Currenex you would need 15 separate Tiers. 

In the context of Whisperer Enterprise, this means the following:

  • Currenex makes a separate subscription request for each Tier - each of these will be forwarded to the API client. Key Currenex IDs are mapped as follows:

MFAPI-Out.QuoteRequest.SecurityGroup = FIX-In.QuoteRequest.StreamReference[7533] # Tier name e.g. "PS1"

MFAPI-Out.QuoteRequest.QuoteReqID    = FIX-In.QuoteRequest.QuoteReqID[131]


  • The API clients must respond to the subscription requests with MassQuote messages. These MassQuote messages must be for a single ccy pair for single "Tier" as per the QuoteRequest. The gateway allows NoQuoteSets = 1 and NoQuoteEntries = 1. The quoting ladder is not currently supported.
  • Quote Cancels - API clients quoting a single "Tier" per MassQuote can either use MassQuote and set the QuoteType to Indicative or send a QuoteCancel message to withdraw the Quote. 

Unlike other venues, the Maker is thus responsible for the fan-out of their standard volume-laddered quotes across individual Currenex Tiers.


Info
titleWhy Can't Whisperer 'Normalisation' Support Currenex Stacked Pricing?

MarketFactory has considered the feasibility of offering a model to allow the Maker customer to deliver a MassQuote Ladder as per other venues:

    • Additional MarketFactory configuration would be required to map between multiple Currenex Tiers (agreed between Currenex and Maker) and custom pricing Scheme names (agreed between Maker and MarketFactory).
    • The current pass-thru of Tier names and QuoteRequest IDs from Currenex to the Maker would most likely not be possible to retain - leading to increased opacity when Support team interaction is required.
    • Whisperer must accumulate the necessary Currenex subscription requests before sending a single QuoteRequestMessage to the Maker for the full Ladder. It cannot be guaranteed to correctly handle scenarios when there is a mismatch of configuration between Maker and Currenex, or the maker MassQuote contains more rungs than expected, and so on.

For these reasons we have, to date, elected not to implement this feature. However should a customer have a strong interest in the detail additional information is available, on request.


Note: Enterprise mirrors Classic implementation.


Date Roll

For NZD pairs, Currenex rolls value date forward at 7 a.m (NZST/NZDT). For all other currency pairs (except those containing NZD), Currenex rolls value date forward at 5:00 pm (EDT/EST).