What is Market Maker Protection (MMP)?
Market Maker Protection is a set of protection mechanisms for Options Market Makers, allowing them to pull their quotes under specific conditions. For instance, if they trade above a certain quantity or delta during a certain time period.
Market Makers can set predetermined MMP Trigger parameters to cancel existing open orders (tagged as “MMP”) if the executed quantity or delta exceeds or equals to a preset limit (qtyLimit / deltaLimit ) within a preset time period (windowTimeInMilliseconds).
Once MMP is triggered, there will be a “FrozenTime” window (preset by Market Makers) where Market Makers will not be allowed to place new “MMP” orders.
This protection mechanism allows Market Makers to reduce the risk of making too many trades in a short time span. It temporarily removes their exposure from the exchange, so they can reevaluate the market and modify their order prices if needed.
MMP Parameters for Market Makers
Parameter | Description |
underlying | Options Underlying |
windowTimeInMilliseconds | Time window for Quantity calculation and net Delta calculation. Range (0,5000) |
frozenTimeInMilliseconds | No new “MMP Orders” can be placed during this “frozentime” window Note:
|
qtyLimit | quantity threshold for MMP (always > 0) |
deltaLimit | net delta threshold for MMP (always > 0) |
How does Market Maker Protection (MMP) work?
MMP Orders Rules
- Market Maker Protection only impacts orders that are tagged as MMP.
- Only Market Makers are able to place orders with MMP tags.
- When MMP is triggered, all existing Market Makers’ MMP open orders will be canceled.
- During the FrozenTime window, no new MMP orders can be placed.
MMP Monitoring & Trigger
- For all Market Makers, the matching engine will continuously monitor the total traded quantity and the net delta within the preset time window (expressed in milliseconds).
For example, a Market Maker sets windowTimeInMilliseconds = 3,000. Orders are executed at times 1,000, 2,000, 3,400, and 5,000. If the current time is 5,400, only trades in [2,400, 5,400] are included in calculation (T3 and T4).
Once the net delta or volume exceeds this threshold, Market Maker Protection (MMP) will be triggered.
All orders tagged with MMP on this underlying asset will be canceled, and this account won't be able to place new MMP orders within the frozenTimeInMilliseconds. If frozenTimeInMilliseconds is set to 0, the account is frozen until the Market Maker resets this parameter manually.
- Market Maker Protection (MMP) won't interrupt the order matching process. MMP is only triggered after the completion of an order and before a new order begins.
For example, a Market Maker sets qtyLimit = 35 and places 5 open orders of 20 SELL contracts. If a taker buys 100 contracts in a single order, all the MM’s open orders will be filled before MMP is triggered.
However, if the taker buys these 100 contracts in 2 separate orders (each order buys 50 contracts), MMP will be triggered once the first tranche of taker order is filled. Upon triggering of MMP, the remaining MM open orders will be canceled. Notably, there is a partial fill of 10 contracts on the 3rd MM open order. (Taker’s fill for BUY 50 contracts = 20 * 2 + 10)
MMP Trigger Calculation
MMP can be triggered under 2 scenarios:
1. MMP Quantity is calculated by the sum of the total traded contracts within windowTimeInMilliseconds (buy 1 contract and sell 1 contract will be counted as 2). When quantity > qtyLimit, MMP is triggered.
2. MMP Delta is calculated by the absolute value of the sum of net delta at the time of each trade and within windowTimeInMilliseconds. When delta > deltaLimit, MMP is triggered.
Quantity | Delta |
sum|qty| | |sum(qty * (delta at trade))| |
Delta Threshold and MMP Triggers
Example 1:
Delta counter will increase when long Call/short Put trade happens. Delta counter will decrease when short Call and long Put trade happen.
MM set deltaLimit = 3, windowTimeInMilliseconds= 4,000ms
MM bought 5 Call contracts (delta = 0.3), delta counter = 5 * 0.3 = 1.5
No other trades happen in the next 4,000ms
System sets delta counter to 0
Example 2:
MM set deltaLimit = 3, windowTimeInMilliseconds= 4,000ms
MM bought 5 Call contracts (delta = 0.3), delta counter = 5 * 0.3 = 1.5
After 1s, MM bought 3 Call contracts (delta=0.5), Delta counter = 1.5 + 3 * 0.5 = 3 ≥ 3, which triggers MMP and the cancellation of all MMP orders as a result. After frozenTimeInMilliseconds expires or gets manually reset, the Delta counter is reset to 0. New MMP orders will all be rejected before frozenTimeInMilliseconds expires or gets manually reset.
Quantity Threshold
Example 1:
MM set qtyLimit = 50, windowTimeInMilliseconds = 2,000ms
20 contracts were traded, quantity counter set to 20
No other trades happen in the next 2,000ms
System resets the quantity counter to 0
Example 2:
MM set qtyLimit = 50, windowTimeInMilliseconds = 2,000ms
20 contracts were traded, quantity counter set to 20
Another 40 contracts were traded in the MM's account in the next 1,000ms. The system sets the Quantity counter to 60. As 60 > 50, it triggers MMP and all the MMP orders on this underlying asset are canceled as a result. After frozenTimeInMilliseconds expires or gets manually reset, the Delta counter is reset to 0. All new MMP orders will then be rejected before frozenTimeInMilliseconds expires or gets manually reset.
How to Enroll in the Binance Options Market Makers Program?
To learn more about the enrollment process and details of the Binance Options Market Makers Program, please email us at futures-business@binance.com. The team will get back to you shortly.