Order Limits
 Users can’t send orders that would move the price more than 2% (for futures markets) or 25% (for spot markets) through opposite side of the book.
 Orders too far through the book get their prices capped at the limit price
 Market orders have the same price cap applied  this means that it's possible to get partially filled on a market order if liquidity is low relative to the size of the order
 Sum of open order sizes per side can’t be greater than max($1m, 1% of an ADV of the underlying coin) x (5 if the future is a perpetual, else 1).
 Can’t increase position if OMF < IMF after the order is placed
 Can’t send any orders (including orders that would decrease position) if account is below MMF (maintenance margin fraction)
Price Bands
 FTX also has price bands. On derivative markets users can’t send orders if either:
 Price is more than:
 10% from the mean Mark Price (MP) over the past 5 minutes if the futures' underlying is one of BTC, ETH, USDT, EOS, BCH, XRP, BNB, BSV, LEO, TRX, or ALT.
 Example: A user is blocked from sending an order on SOLPERP if SOLPERP is trading at 100 and the SOL spot market is trading at 90.
 Example: A user is blocked from sending an order on SOLPERP if SOLPERP is trading at 100 and the SOL spot market is trading at 90.
 20% from the mean Mark Price (MP) over the past 5 minutes
 Example: A user is blocked from sending an order on SOLPERP if the price of SOLPERP is 100, but the mean mark price over the past 5 minutes is 20% different. (120 or more or 80 or less)
 Example: A user is blocked from sending an order on SOLPERP if the price of SOLPERP is 100, but the mean mark price over the past 5 minutes is 20% different. (120 or more or 80 or less)
 50% from the mean Mark Price (MP) over the past 5 minutes if the futures' underlying is CEL, SRN, AMC, GME, BB, NOK, or WSB.
 10% from the mean Mark Price (MP) over the past 5 minutes if the futures' underlying is one of BTC, ETH, USDT, EOS, BCH, XRP, BNB, BSV, LEO, TRX, or ALT.
 Absolute value of premium is more than 5% above the absolute value of the mean premium over the past 5 minutes. For AMC, GME, BB, NOK, WSB, it is 20%.

Example: A perp market with a mean premium of 10% over the index for the last 5 minutes will be blocked from submitting buy orders on that market if the premium exceeds 15% from the index (because it is 5% above the mean premium over the last 5 minutes).
I.e., Index is trading at $100, perp market at $110, if the perp market reaches $115, users would be prevented from submitting buy orders until the mean premium of the last five minutes exceeds 10%. So if the mean premium over the last five minutes reaches to 10.1%, users could then place buy order at $115.1

 Price is more than:
 For spot markets, users will not be able to submit an order if the price is more than 20% from our approximate fair value, defined as (base currency / quote currency) using the prices from our index when applicable. Cryptocurrencies that we do not maintain an index for, the relevant FTX market price (median of bid, ask, last) will be used.
ADV: 30day volume / 30 24h before the contract first trades
Minimum Size
Minimum BTCPERP Provide Size:
The minimum provide (maker) size for BTCPerp is 0.001, this only applies when you make more than 10 orders per hour smaller than 0.001.
Minimum RUNEPERP Provide Size:
The minimum provide (maker) size for RUNEPerp is 1, this only applies when you make more than 10 orders per hour smaller than 1.
Limit orders sent that are larger than the market's quantity step but smaller than its minimum provide size are automatically turned into IOC orders.
This restriction is only applied at placement time, and only for the first 10 orders per hour (rolling). If a limit order is successfully placed, and then gets partially filled such that some amount under the minimum provide size is left, then that order remains out; the rest doesn't get cancelled.
If an account has a position whose size is smaller than the minimum provide size, reduceonly limit orders will still be rounded down to that size and successfully placed.
Clamping to step sizes
If an input size or price is not divisible by the market's size step or tick size, respectively, then we do not reject the order: we round the input, conservatively:
 Size gets rounded down to the nearest size step increment
 Price gets rounded up (if selling) or down (of buying) to the nearest price increment
__________________________________________