Quote Stuffing Detection Test
Description
This test identifies manipulative trading behavior involving rapid order placement and cancellation. It analyzes orders data to flag users exceeding thresholds for order count and size within a defined period. Statistical baselines and dynamic thresholds highlight significant deviations from normal activity.
Use Cases
-
Market Manipulation Detection: Identifies users engaging in quote stuffing to distort order books, creating artificial congestion and misleading other traders.
-
Regulatory Oversight: Monitors for activities that violate fair trading practices and market regulations, enabling compliance teams to investigate and report manipulative behavior.
-
Operational Efficiency: Flags excessive order placements and cancellations to mitigate risks of system inefficiencies or disruptions caused by high-frequency trading abuse.
Required Data
Orders Data
Variable | Description |
---|---|
order_start_timestamp | Timestamp of the order when created (YYYY-MM-DD hh:mm:ss). |
order_end_timestamp | Timestamp of the order at last status update (YYYY-MM-DD hh:mm:ss). |
user_id | User ID to identify the individual user. |
order_id | Unique identifier for the order placed. |
symbol_pair | The asset symbol; e.g., BTCUSDT, SHIBETH, DOGEUSDT. |
status | Whether the order was CANCELLED, FILLED, or PARTIALLY FILLED. |
price_usd | The price of the symbol in USD. |
amount | The amount of the symbol being traded. |
side | Whether the trade was a BUY or SELL. |
price | The quote currency in terms of the base currency; e.g., ETH/BTC = 0.03781. |
Parameters
Parameter | Description | Type | Default Value | Configurable |
---|---|---|---|---|
analysis_rolling_window_seconds | Time period in seconds within which orders are considered for cancellation detection. | Integer | 60 | Yes |
analysis_minimum_aggregate_dollar_threshold | Minimum aggregate dollar volume of orders per user in rolling window to be considered for analysis. | Float | 0 | Yes |
analysis_minimum_orders_count_threshold | Minimum order placement count threshold per user in rolling window to be considered. | Integer | 30 | Yes |
historical_cancellation_period_window | Historical number of days to get orders for calculating the average order cancellation period. | Integer | 5 | Yes |
mm_buy_sell_dollar_volume_threshold | Minimum buy/sell dollar volume ratio for flagging manipulative activity. | Float | 0.2 | Yes |
historical_minimum_orders_count | Minimum number of orders required in the historical period to calculate benchmarks. | Integer | 20 | Yes |
historical_number_random_samples | Number of random samples of orders from historical window for calculating the baseline order cancellation period. | Integer | 5000 | Yes |
Methodology
-
Aggregate Historical and Recent Orders Calculate total, buy, and sell orders dollar sizes for each user across the historical window and the analysis period to assess their trading activity.
-
Compute Benchmarks and Thresholds Establish average and standard deviation benchmarks for order counts and dollar volumes, and apply user-specific thresholds based on historical activity and pre-set parameters.
-
Analyze User Behavior Compare each user's order placement during the analysis period to their historical benchmarks, flagging anomalies such as unusually high order counts or dollar sizes.
-
Flag Suspicious Activity Identify users whose order placement patterns indicate potential quote stuffing, such as rapid order placements and cancellations exceeding preset thresholds.
-
Generate Alerts and Reports Create reports summarizing flagged users and their anomalous activities, saving results for compliance and further investigation.
Test Meta Data
Test Meta Label | Description |
---|---|
quote_stuffing | Test to identify manipulative behavior involving rapid order placement and cancellation, flagging users who exceed thresholds for order count, size, and speed within a defined period. |