Market Data Handling

Subscription Requests

StepActionExpected ResultResult (if different
from expected)
Sign Off
1Client subscribes to market data on
EUR/USD from 
one feed any feed
Client receives a subscription enabled
snapshot, followed by incremental market
data.

Client is able to compare top of book prices
with MF
 
  •  
2Client subscribes to a set of currencies
(EUR/JPY, USD/JPY, GBP/USD)

Client is able to handle (subscription enabled
snapshot, followed by market data) for multiple
currency pairs

the client is able to compare the top of book
prices with MF.

MF confirms active subscriptions in the API
server

 
  •  
3Client subscribes to trading for one feed
any feed

Client receives trading subscription enabled.

MF confirms client is subscribed for trading

 
  •  

 

Snapshot Updates

Incremental Updates (Insert/Update/Delete through the book)

It is up to the subscriber to discard any order-book entries that get implicitly deleted due to insertion of new “better” levels that pushes entries outside the desired MarketDepth level. Such pushed out entries will not be explicitly deleted by MarketFactory.

Order Management

StepActionExpected ResultResult (if different
from expected)
Sign Off
1Client Places LIMIT IOC (far from top of book)Client is able to process IOC with no fill
(trade cancelled)
 
  •  
2Client places LIMIT IOCClient is able to process IOC fills 
  •  

Because this is run against labs, the test may have to be repeated multiple times

3Client places LIMIT IOC at top of bookClient is able to process a partial fill 
  •  
4Client places LIMIT GTC (far from top of book)
Client cancells GTC order
Client is able to cancel GTC order 
  •  
5Client places LIMIT GTC at top of bookClient is able to process GTC fill 
  •  

Because this is run against labs, the test may have to be repeated multiple times

6Client places LIMIT GTC at top of book for large
amount

Client cancels remainder of order
Client is able to process a partial fill for
GTC order

Client is able to cancel GTC order
 
  •  

 

Client Order ID Uniqueness Constraints

These need to be unique for a full trading week rather than a single trading day:

Feed Down/Replay

StepActionExpected ResultResult (if different
from expected)
Sign Off
1Client places LIMIT GTC far from top of book

MF forces customer to disconnect
Client receives subscription ERROR for
market data trading
 
  •  
2Client reconnects, re-subscription to trading
and request replay
Client is able to re-subscribe to trading

Client is able to request replay for the
order that was cancelled on disconnect
 
  •  

The Client will need to know the sequence number in order to call for a replay. The number could be retrieved by calling 
getSequenceID(feedID) once the Customer Application has been successfully subscribed.

The client can then request a replay for missed messages beginning with last sequence number stored. This can be done
by calling replay(X, n+1, -1), where n is the last sequence number that the Customer Application received from feed X