MMProtection Limits (MM) message can be
used to set or get the limits for Market Maker Protection (MMP) for a currency pair.
Max Quote Quantity (MQQ): The MaxQuoteQuantity parameter determines the total combined size of open MMP orders per side, per order book (instrument), that cannot be exceeded (measured in base currency).
Important Notes:
- Order book = instrument, MQQ is per instrument (not sum across instruments): “Per order book” means per instrument (not per expiry). MQQ is enforced separately for each instrument and applies independently to each instrument. The limit is NOT the sum across all instruments - each instrument has its own separate MQQ limit. When checking open orders, ensure total open MMP order sizes per side, per order book (instrument), do not exceed the MQQ - this is per instrument, not the sum across all instruments.
- MQQ limits cumulative size, not order count: For example, with MQQ of 3 BTC, you can place orders totaling 3 BTC per side per instrument
- MQQ is separate per MMP group: Each MMP group has its own independent MQQ configuration. MQQ limits are enforced separately for each MMP group.
- MQQ vs Quantity Limit relationship: You can set MQQ >
ProtectionQtyLimit. This allows quotes to be larger than the quantity limit, and enables MMP to trigger on partial fills of quotes. This decouples the MMP reserved margin from the MMP quantity limit. - Base currency: MQQ is specified and enforced in base currency
- Inverse futures: Size is calculated as Amount / Price to convert to base currency
- Inverse future spreads: Size is calculated as Amount / IndexPrice
- SM accounts: MMP orders and quotes on options and option_combos are not supported for SM accounts
- Rejections: MQQ is enforced for MMP-enabled orders and quotes.
- Individual quotes above
MaxQuoteQuantityare rejected. - MMP-enabled orders (e.g.,
DeribitMMProtection (9008)=Y) are rejected if their individual size is aboveMaxQuoteQuantity, or if accepting them would make the total open MMP size per side per instrument exceedMaxQuoteQuantity. - Non‑MMP orders are not subject to MQQ and may be larger than
MaxQuoteQuantity.
- Individual quotes above
- Precision: All MMP configuration values support maximum 4 decimal places
- Margin calculation: MMP margin reserved = max(MQQ, ProtectionQtyLimit). MQQ is used for Initial Margin calculation (3% of MQQ is taken as Initial Margin for MMP orders and quotes).
- Latency: There are no latency benefits from MQQ if you already use mass quotes.
Arguments
| Tag | Name | Type | Required | Comments |
|---|---|---|---|---|
| 20114 | ProtectionRequestID | String | Yes | Unique identifier assigned by the requestor. Will be returned in responses |
| 15 | Currency | String | Yes | First currency of the currency pair to set or get MMP for e.g. BTC, ETH |
| 5544 | SecondaryCurrency | String | No | Secondary currency of the currency pair to set or get MMP for. e.g. USD, USDC, defaults to USD if not provided |
| 20110 | ProtectionQtyLimit | float | No | Specify the limit of the total size (measured in base currency) per underlying within the exposure time interval when market maker protection is triggered. When this value is met or exceeded the system automatically removes the quotes for the instruments connected to the underlying. Maximum 4 decimal places. |
| 20111 | ProtectionDeltaLimit | float | No | The limit of the delta value per underlying within the exposure time interval when market maker protection is triggered. When this value is met or exceeded the system automatically removes the quotes for the instruments connected to the underlying. Maximum 4 decimal places. |
| 20112 | FrozenLimit | float | Yes | Time interval in seconds when quotes are rejected after market maker protection has been triggered |
| 20116 | IntervalLength | int | Yes | Interval Length in seconds |
| 20118 | ProtectionVegaLimit | float | No | The limit of the vega value per underlying within the exposure time interval when market maker protection is triggered. When this value is met or exceeded the system automatically removes the quotes for the instruments connected to the underlying. Maximum 4 decimal places. |
| 20119 | MaxQuoteQuantity | float | No | Maximum Quote Quantity (MQQ) in base currency. The total combined size of open MMP orders per side, per order book (instrument), cannot exceed MQQ. MQQ limits cumulative order size, not the number of orders. Order book = instrument, MQQ is per instrument (not sum across instruments): “Per order book” means per instrument (not per expiry). MQQ is enforced separately for each instrument and applies independently to each instrument. The limit is NOT the sum across all instruments - each instrument has its own separate MQQ limit. MQQ is separate per MMP group: Each MMP group has its own independent MQQ configuration. MQQ vs Quantity Limit: You can set MQQ > ProtectionQtyLimit. This allows quotes to be larger than the quantity limit, and enables MMP to trigger on partial fills of quotes. For inverse futures: size is calculated as Amount / Price. For inverse future spreads: size is calculated as Amount / IndexPrice. MQQ is enforced for MMP-enabled orders and quotes. Individual quotes above Max Quote Quantity are rejected. MMP-enabled orders (e.g., DeribitMMProtection (9008)=Y) are rejected if their individual size is above MaxQuoteQuantity, or if accepting them would make the total open MMP size per side per instrument exceed MaxQuoteQuantity. Non‑MMP orders are not subject to MQQ and may be larger than MaxQuoteQuantity. Maximum 4 decimal places. MMP margin reserved = max(MQQ, ProtectionQtyLimit). MQQ is used for Initial Margin calculation (3% of MQQ is taken as Initial Margin for MMP orders and quotes). |
| 9019 | MMPGroup | String | No | A custom tag of MMP Group |
- To set
MMProtection Limits, the message must contain all fields. In reply to this message, the server sendsMMProtection Limits Result/Reject(MR). - To get current
MMProtection Limits, the message must contain onlyProtectionRequestID(20114) andCurrency(15) fields (without all limits). In reply to this message, the server sendsMMProtection Limits (MM)message with filled limits.