Page History
| Table of Contents |
|---|
Overview
Whisperer Enterprise supports all three principle forms of Quotation Negotiation trading:
- ESP - Executable Streaming Pricing (long-lived shared subscriptions).
- RFS - Request For Stream (short-lived tailored subscriptions).
- RFQ - Request For Quote (single quote with finite life).
All quotes are good until replaced, expired or withdrawn. The MFSBE API supports the following four separate mechanisms for the management of tradeable prices by a Maker:
...
Some Venues allow the Maker to specify a finite time that an individual quote is available for. This is essential for one-shot RFQ models (e.g. to support dealer intervention), but may also acts be used act as a back-stop for ESP and RFS flows to ensure that the price is promptly removed from display, in the event of error scenarios and other edge cases.
Both Quote and MassQuote messages support the provison provision of an expiry time:
...
Quote.ValidUntilTime
...
MassQuote.NoQuoteSets[*].NoQuoteEntries[*].ValidUntilTime
The default ValidUntilTime value is set far into the future, so this field may be ignored for those customers wishing to adopt a simple model.
...
A quote may be withdrawn entirely. In a trading GUI this will result in the price immediately being removed from display. Quote withdrawal is often an integral part of a RFQ dealer intervention workflow, where the trader may wish to manually reprice, during the life of a 30s quote.
MassQuote messages may be withdrawn via the same mechanism.
...
Maker Quote Management
In ESP, Makers publish MassQuotes. Each message is a single quote, which should contain a full snapshot of your price ladder for that symbol & price bucket.
The shape and size of their ladder can vary from tick to tick. Each MassQuote completely replaces the previous. You may either publish a QuoteCancel to withdraw a previously published ladder, or publish a new empty MassQuote (zero rungs).
On the venue side, MarketFactory will handle the messages to make sure that the published liquidity matches your MassQuote.
ESP/RFS/RFQ State Transition Model
...
Whilst the Maker and Taker views are essentially symmetric, there are some important differences which are illustrated in the sequence diagrams.
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
...
Some Maker venues may support Client acknowledgement of their deal acceptance or rejection. Accordingly, the Client is encouraged to always send an ExecutionAck message to confirm the trade result, where the Venue does not use this mechanism, Whisperer will simply drop the message.
...
| Info |
|---|
At present Whisperer does not generate synthetic |
...
| Warning | ||
|---|---|---|
| ||
Should the Client receive an |
RFQ
...
| title | TODO |
|---|
...
A request for a single-shot price, delivered as a Quote, with the TTL defined in the ValidUntilTime. Possible Dealer Intervention may deliver other
...
Quote(s) prior to expiry of first. Expiry
...
terminates the workflow.
RFS
Each individual Quote is good until replaced, withdrawn or ValidUntilTime expiry.
Client as Taker
| Anchor | ||||
|---|---|---|---|---|
|
- Bilateral - Request sent to a single Maker, receives
Quotemessages. - Basket - Request sent to multiple Makers, receives
MassQuotemessages aggregating the individual MakerQuotemessages. This model is Venue dependent - currently offered by t360_tex and fxspotstream only.
In this model each QuoteSet represents a different Leg/value date, and each QuoteEntry for a given QuoteSet contains the Leg quote details provided by an individual LP, identified by reference to the "ExecutionVenue" EntryPassthruKey.
Whisperer does not apply any particular sorting across the QuoteEntries for a given QuoteSet, the Client is expected to apply their own rules for identification of "best price" etc.
When submitting an order against a Basket MassQuote, the ExecutionVenue PartyRole must be provided, in addition to the QuoteID.
In both cases, standard RFS subscription rules apply - the subscription is terminated by a deal request or a pricing duration timeout.
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Client as Maker
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
...
The standard Taker pricing message flow is illustrated in the sequence diagram below:
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Subscription Response
| Note | ||
|---|---|---|
| ||
The client will receive an immediate response to an invalid However, the client may not always receive an immediate
A Venue's response actually depends on the instrument being traded, time of day and venue-specific behaviour. The client may wish to implement a timeout mechanism to unsubscribe and then either:
|
Client as Maker
The Venue will typically issue multiple requests for each currency pair, one for each configured pricing group (aka "client bucket" etc.).
...
- Some venues are fairly unconstrained in terms of how many categories may be defined, but others (e.g. Bloomberg, CNX) have specific uniquenesses that need to be understood before decisions are made.
- Some venues may allow or mandate that ladders are used in a VWAP manner, some may preclude this.
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
...
Client as Taker
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Client as Maker
| Note | ||
|---|---|---|
| ||
The messages flows documented here illustrate a standard "Last-Look" trading model. "Firm" trading is possible on some Venues and comprises standard MassQuote provision alongside receipt of ExecutionReport messages from the Venue notifying the maker of the fills. |
| Gliffy Diagram | ||||
|---|---|---|---|---|
|