The Lab

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

Compare with Current View Page History

« Previous Version 4 Next »


Client Session Handling


Verify that all Client Timestamps are expressed as UTC in all messages

  • 52/SendingTime
  • 122/OrigSendingTime (resends only)
  • 60/TransactTime (Quote, MassQuote, ExecutionReport)

Logon

Client Logon message contains the correct values for:

  • HeartBtInt
  • SessionType = RFS
  • Username/Password - correct
  • VenueName = ?/?

Session Synchronisation

Client Logon next-expected = MF actual

Receive TestRequest, correctly send Heartbeat response.

Client Logon next-expected < MF actual

Correctly handles resent messages and/or SequenceResetGapFill messages.

Receive TestRequest, correctly send Heartbeat response.

Client Logon next-expected > MF actual

Expect disconnect.

MF LogonResponse next-expected = Client actual

Correctly sends TestRequest, wait for response (this is synchronisation complete).

MF LogonResponse next-expected < Client actual

Correctly resends messages and/or SequenceResetGapFill messages.

MF LogonResponse next-expected > Client actual

Correctly disconnects.

Logoff

All client sessions must be terminated gracefully.

Client-Initiated Logoff

Client may only issue Logoff when no Venue session is active.

Client waits for reciprocal Logoff message from MF.

MF-Initiated (e.g. on weekend restart)

Client responds to MF-issued Logoff message with reciprocal Logoff.

Session Monitoring

Client Heartbeats

In the absence of sending other messages, the Client publishes Heartbeat messages at their specified interval (Logon HeartBtInt)

Client Monitoring of MF Messaging

In the event that no message has been received from MF after the HeartBtInt, the Client

  • Correctly timesout and sends TestRequest.
  • Correctly timesout and sends Logout.
  • Correctly timesout and disconnects.

TestRequest Handling

The Client sends a Heartbeat message in response to every MF TestRequest message received.

Venue Connectivity

The sequencing matters. 

UserRequest (LogOnUser)

Client directs MF to connect to Venue.

Message only sent when the client is not currently logged on.

ErrorReport

Client receives MF notification of any connectivity problems and planned next action.

UserNotification (LoggedOn)

Client is notified when Venue connectivity is established.

UserRequest (LogOffUser)

Client directs MF to disconnect from Venue.

Message may be sent:

  • When MF is in a connection-attempt cycle, after a prior UserRequest (LogOnUser)
  • When client has been notified that they have been logged on via UserNotification (LoggedOn).

UserNotification (LoggedOff)

Client is notified when Venue connectivity is terminated.

Maker RFS Workflow

We should focus on outbound message correctness.

QuoteRequest

Client is able to receive and correctly identify all flavours of RFS requests, i.e. permutations and combinations of the following:

  • SecurityType: SPT, FWD, NDF, SWP, NDS, BLK, NDB (FXall)
  • Allocations: Single and Multiple (including zero net allocs).
  • Side: Buy/Sell/Two-Way
  • Dea;lt Currency: Base/Term ccy qtys
  • Regulatory framework: OFF/SEF/MTF

QuoteResponse

Outbound Client > Venue

Rejection

Client should be able to send different rejection reasons, e.g. Credit check failure vs unsupported pair.

Client must be aware of availability of Custom error codes for:

Timeout

Client should terminate RFSs after a period of time (e.g. 3-5m). The Client timeout may, or may not, match the Venue setting.

Inbound Venue > Client

Client must be able to handle Venue-termination of active RFS - either due to the Venue stream timeout, or because the counterparty dealt away, or because the counterparty canceled the request.

Quote

Quote messages must be generated for all the permutations and combinations of QuoteRequest above.

Checks must be made against the following attributes:

  • QuoteIDs  - Uniqueness is verified.
  • QuoteType - various combinations of Indicative/Tradeable for Bid and/or Offer.
  • Price precision - very important for Fwds. Refer to Whisperer Enterprise - Prices and Quantities.
  • Regulatory - All regulatory regimes must be explicitly declared as in or out of scope. In scope regimes must be demonstrated to populate the required regf. fields correctly:
    • MTF - EDM/IDM - missing, wrong, correct - Client must observe and understand the Venue behaviour for each scenario. Refer to Regulatory Fields FAQ.
    • SEF
    • OFF

NewOrderMultileg

Client must be able to receive orders for all the permutations and combinations of QuoteRequest above.

Execution Report


Accept
Reject (e.g. Credit Check failure)
Regulatory
SEF
MTF
OFF

https://confluence.marketfactory.com/download/attachments/11568412/RFQ_Test_Cases_Maker_03072019.xlsx
https://confluence.marketfactory.com/download/attachments/11568420/TCPITestCasesv5%200%20-SEF.xlsx


Venue side (private to MF)
Increase our sequence number
Decrease our sequence number
Decrease the sequence number we expect
Increase the sequence number we expect
Test force disconnect & automatic reconnect of session
Test regular disconnect of session



  • No labels