Outlier Detection - Trades - ADV Dollar
Description
This test identifies anomalies in trading activity by analyzing user-specific trading behavior against benchmarks like Average Daily Volume (ADV). This test flags trades where user volumes significantly exceed a percentage of ADV within short time intervals.
Use Cases
-
Market Manipulation Detection: Identify instances of market manipulation where users execute trades with volumes significantly higher than their ADV, helping exchanges detect potential pump-and-dump schemes or collusion.
-
Regulatory Compliance Monitoring: Ensure adherence to trading regulations by flagging unusual trading behaviors, enabling compliance teams to investigate large deviations in trading volumes that may indicate market abuse.
Required Data
Trades Data
Variable | Description |
---|---|
timestamp | Timestamp of the trade made (YYYY-MM-DD hh:mm:ss). |
user_id | User ID to identify the individual user. |
symbol_pair | The asset symbol; e.g., BTCUSDT, SHIBETH, DOGEUSDT. |
side | Whether the trade is a BUY or SELL. |
price_usd | The price of the symbol in USD. |
price | The execution price of the symbol pair. |
amount | The amount of the symbol being traded. |
Parameters
Parameter | Description | Type | Default Value | Configurable |
---|---|---|---|---|
analysis_window | The number of days over which trades are analyzed for alerts. | Integer | 1 | Yes |
historical_minimum_number_transactions | Minimum number of historical transactions required to calculate user-specific characteristics. | Integer | 5 | Yes |
historical_minimum_number_days | Minimum number of historical unique active days required to calculate user-specific characteristics. | Integer | 2 | Yes |
analysis_minimum_aggregate_dollar_threshold | Minimum aggregate dollar value of transactions per user in analysis period to be considered. | Float | 10000 | Yes |
historical_window | Number of days to consider for historical data. | Integer | 30 | Yes |
adv_window | Number of days to calculate the ADV for each asset. | Integer | 7 | Yes |
adv_minimum_symbol_dollar_volume | Minimum ADV required to include an asset in the analysis. | Float | 10000 | Yes |
analysis_adv_resampling_period | Time interval in minutes for resampling trades in analysis window for ADV-based analysis. | String | 15 | Yes |
analysis_period_to_adv_volume_percentage_threshold | Minimum ratio of volume in a analysis_adv_resampling_period relative to ADV as a percentage threshold to flag users. | Float | 0.03 (3%) | Yes |
analysis_user_volume_contribution_threshold | Minimum volume percentage contribution in ADV resampling window by a user to flag for unusual volume. | Float | 0.20 (20%) | Yes |
create_ticket | Flag to determine if tickets should be created for alerts. | Boolean | True | Yes |
Methodology
-
Historical Trading Analysis Calculate average trading volumes and standard deviations for each user based on sufficient historical data. Compare recent trading activity to these historical benchmarks, flagging users whose volumes exceed their historical average by a significant margin.
-
ADV Benchmarking Calculate the ADV for each asset using aggregated trading volumes over a defined lookback period. Compare recent group and individual trading volumes to ADV thresholds, flagging instances where volumes exceed a percentage of ADV within short time intervals.
-
Summarize Anomalies For ADV comparison, flag users contributing disproportionately to volume traded within short periods of time. Summarize these anomalies for further review or reporting.