Skip to content

alexppxela/order-gatling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MarketMaking animator

Description

The function of this repository is to generate order cancel replace requests to market all the time to generate heavy load.

Code is based on fix toolbox

How does it works

At startup, tool send an OrderMassCancelRequest for all accounts / securities / sides. Cancellation at startup can be disabled with option --no-mass-cancel

After awaiting, it sends one NewOrderSingle, and it updates quantity on ExecutionReport reception. To test Quote workflow instead of order workflow, you can use option --quote

An other mode is to send NewOrderSingle periodically. No order amendment will be done, only order creation. To activate it, option --order-rate must be greater than 0.

How to build it

make build

How to launch it

dist/order-gatling

Options are:

--context        : FIX context to send orders/quotes
--symbols        : List of symbol to animate
--refprices      : List of reference prices for each symbols
--accounts       : Accounts sent in PartyIDs
--metrics        : Enable metrics
--port           : HTTP port for metrics
--no-mass-cancel : Do not send mass order cancel request
--order-rate     : Number of new order sent per second
--quote          : Use quote instead of order workflow
--update-tempo   : Duration before updating order (ms)

Examples

Order amendment 50ms after execution report acknowledge (with metrics and trace logging)

dist/order-gatling \
    --context fix-session-conf \
    --metrics --port 5011 \
    --symbols MONA_EUR,CENA_EUR \
    --refprices 101.50,100.81 \
    --accounts trader1,trader2 \
    --update-tempo 50ms \
    --no-mass-cancel \
    -vv

Quote amendment after quote status report acknowledge

dist/order-gatling \
    --context fix-session-conf \
    --symbols MONA_EUR,CENA_EUR \
    --refprices 101.50,100.81 \
    --accounts trader1,trader2 \
    --update-tempo 0ms \
    --quote
    --no-mass-cancel

Create 100 orders per second

dist/order-gatling \
    --context fix-session-conf \
    --symbols MONA_EUR,CENA_EUR \
    --refprices 101.50,100.81 \
    --accounts trader1 \
    --order-rate 100