Skip to main content
All CollectionsTradingTrading Rules
What is GRVT’s approach for market maker prevention?
What is GRVT’s approach for market maker prevention?
Updated over a week ago

GRVT has set a market maker prevention logic to allow market makers to set parameters which - if and when breached - automatically pull their quotes.

Configurations

Each Market Maker can configure the parameters as follows:

  1. Limitations

Quantity Limit (num of contracts)

Net Delta Limit

BTC Perpetual

10,000

50

ETH Perpetual

10,000

500

  1. WindowTimeInSeconds (e.g., 2 seconds)

  2. FrozenTimeInSeconds (e.g., 2 seconds)

Protection Rules

  1. After the completion of an order at time t, we will check

    1. All the orders executed within [t - WindowTime, t]

    2. Compute Total Quantity

    3. Compute Net Delta

  2. Determine if either the Quantity Limit or the Net Delta Limit has been breached

    1. If yes, then MMP will be triggered

      1. All outstanding open orders will be canceled

      2. No new orders will be allowed to place within the next FrozenTime

      3. After FrozenTime, the limitation will be lifted automatically.

    2. If not, pass (MMP will not be triggered).

Key Points

  1. Regarding the quantity limit, it takes the sum of long and short orders without netting.

  2. Regarding the net Delta limit, obviously it only accounts for the net Delta of long and short orders.

  3. If the WindowTimeInSeconds is set to 0, then it means that no MMP will be triggered.

  4. If the FrozenTimeInSeconds is set to 0, the above limitation will never be lifted unless the market maker manually triggers to do so.

  5. The MMP will not interrupt the processing of any order.

Example

MM has 20 orders (each has 10 contracts, totally 200 contracts). MM has a quantity of 100. If a taker sends one order with a size of 200 contracts, then all orders from the MM will be executed.

However, if the taker sends 2 orders (each has 100 contracts), the second will not be executed since after the execution of the first order, MMP was triggered and outstanding orders of the MM will be cancelled automatically.

API

We will have the following APIs to be used by Market Makers:

  1. Config MMP: for each type (BTC or ETH perpetual), you can configure

    1. Window Time (in seconds)

    2. Frozen Time (in seconds)

    3. Quantity Limit

    4. Delta Limit

  2. Enable or disable MMP flag for an existing order: Per a specific order, you can set a flag. If false, then the MMP will not be applicable to this order.

  3. Manual Reset: Per a specific type, if the Frozen Time is 0, then once MMP is triggered, the MM needs to call this API to reset. Otherwise, the limitation will always be applied, i.e., no new order is allowed to be placed.

  4. MMP Event notification: The MM can subscribe to this channel to be notified that a MMP is triggered and the corresponding time (timestamp) until which the limitation is applied.

  5. MMP Canceled notification: In the API response, there should be one more field such that once the order gets canceled due to MMP, the field shows “MMP_Cancelled”, and can be absent otherwise.

Did this answer your question?