Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 8 Next »

Overview

Request for quote is a control used for buying and selling bonds. The Kodiak implementation implements Directed Request for Quote where counterparties need to be selected to send the quote request to.

Server

The server validates tokens from Kodiak Token Issuer and it is necessary to include tokens from there as bearer tokens to communicate with the RFQ server.

The server contains the following operations:

GET
"/api/quotes/login/"
Sends all quote data to quotes queue for the user

POST
"/api/quotes"
Body: CreateQuoteRequestRequest
To send a new quote request

Example body:
{
  "Symbol": "HFF150434",
  "Side": 1,
  "Price": 100.0,
  "MinimumQuantity": 20000.0,
  "MaximumQuantity": 40000.0,
  "ExposureDuration": 300,
  "ClientReference": "Test quote request",
  "Counterparties": ["ISY48"]
}

DELETE
"/api/quotes/{quoteId}"
Body: CancelQuoteRequestRequest
To cancel the quote request specified by the quoteRequestId

Example body:
{
  "QuoteRequestId": 100
}

POST
"/api/quotes/{quoteRequestId}/offer_quote"
Body: CreateQuoteRequest
To send a quote to the quote request specified by the quoteRequestId

Example body:
{
  "QuoteRequestId": 100,
  "Side": 1,
  "Price": 100.0,
  "Quantity": 20000.0,
  "ClientReference": "Test quote"
}

DELETE
"api/quotes/{quoteRequestId}/offer_quote"
Body: CancelQuoteRequest
To cancel the quote sent to the quote request specified by the quoteRequestId

Example body:
{
  "QuoteRequestId": 100,
  "QuoteId": 50
}

POST
"/api/quotes/{quoteId}/accept_quote"
Body: AcceptQuoteRequest
To accept a quote for the quote. Quote offer specified in accept quote type

Example body:
{
  "QuoteRequestId": 100,
  "QuoteId": 50,
  "Side": 1,
  "Price": 100.0,
  "Quantity": 20000.0
}

Client

You can open a new quote window under Trading → Request For Quote

Flow

The initiator starts the process by creating a quote request. The required fields are Buy/Sell/Both, Symbol and a list of Counterparties. The default lifetime of a quote request is 180 seconds, but any other duration can be specified. Min Quantity will be visible to the respondent of the quote request, but price, Max Quantity and Client Reference can only be seen by the initiator.

image-20240321-142127.png

All counterparties specified in the counterparties list will receive the quote request. The amount of time they have to respond to the quote request is the lifetime specified in the quote request.

image-20240321-142626.png

The recipient can respond to the quote request with a quote. The required fields are buy/sell, quantity and price. None of the fields are limited by any of the fields specified in the initial quote. Client Reference will can only be seen by the respondent.

image-20240321-142854.png

Finally, the initiator can accept one or more of the quotes.

image-20240321-143241.png

The buy/sell side is limited to the buy/sell side of the quote. The required fields are quantity and price. The price needs to be equal to the price of the quote. The quantity must be equal to or lower than the quantity of the quote.

image-20240321-143316.png

When a quote offer is accepted, a manual trade is generated, at which point the counterparty for the quote will be visible to both sides.

image-20240321-143454.png

Trade ticker

Optionally, quotes can be displayed in the trade ticker for Genium/Inet bonds. Quotes are marked orange in the trade ticker. The trade ticker can only display quotes and generated quote trades, but not the quote requests.

image-20240117-125604.png

By default, quotes are not shown in the trade ticker, but the setting can be enabled/disabled for each trade ticker window under Trade Ticker Settings.

image-20240117-125633.png

It is also possible to enable/disable showing quotes in the trade ticker by default when opening a new trade ticker window under Tools → Settings → Market Data → Show quotes by default. The current workspace needs to be saved and the client restarted for the setting to be modified.

image-20240117-125900.png

Deployment

Jenkins:

https://jenkins.livemarketdata.com/view/.Net/view/KODIAK OMS/view/RFQ Server/

Octopus:

https://kodiak.octopus.app/app#/Spaces-1/projects/kodiak-rfq-server/deployments

Release to test

To deploy to a new tenant on a test environment, the tenant first needs to be connected to the project on Octopus Deploy.

The release to test builds use the kodiak_rfq_server_release build. For a new test build, simply copy one of the projects in the release to test folder and replace ‘tenant’ in the ‘Execute shell’ script with the correct tenant.

  • No labels