Momentum Ignition - Downward
Description
This test is designed to detect manipulative trading behaviors where an actor attempts to artificially induce downward directional price movements in a trading pair to capitalize on the resulting market reactions. This is often achieved by submitting a large aggressive sell market order within a short time frame with the goal of triggering stop orders or other automated trading mechanisms. Once the price moves favorably, often breaking a support level, the manipulator exits their position, profiting from the induced volatility. This behavior is often characterized by sudden bursts of trading activity and abnormal price movements that deviate significantly from historical patterns.
Use Cases
-
Market Manipulation Detection: Identify trading patterns indicative of price manipulation through rapid and aggressive order submissions.
-
Prevention of Cascading Market Reactions: Flag activities designed to trigger stop orders and disrupt market equilibrium.
-
Anomaly Detection in Trading Activity: Detect abnormal bursts of activity that deviate significantly from historical trading norms.
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. |
amount | The amount of the symbol being traded. |
Parameters
Parameter | Description | Type | Default Value | Configurable |
---|---|---|---|---|
analysis_rolling_window_seconds | Duration of the rolling window for analysis and metrics computation, in seconds. | Integer | 30 | Yes |
resampling_period_seconds | Period for resampling historical data, in seconds. | Integer | 30 | Yes |
resampling_number_historical_windows | Number of historical resampling periods to calculate volume spikes. | Integer | 20 | Yes |
analysis_price_change_threshold | Threshold percentage for identifying significant price momentum. | Float | 0.03 (3%) | Yes |
historical_volume_spike_multiplier_total | Standard deviation multiplier for detecting total volume spikes relative to historical averages. | Float | 1.0 | Yes |
historical_volume_spike_multiplier_buy | Standard deviation multiplier for detecting buy volume spikes relative to historical averages. | Float | 1.0 | Yes |
historical_volume_spike_multiplier_sell | Standard deviation multiplier for detecting sell volume spikes relative to historical averages. | Float | 1.0 | Yes |
analysis_buy_direction_ratio_threshold | Minimum buy-to-total trade ratio for consistent buy direction. | Float | 0.5 (50%) | Yes |
analysis_sell_direction_ratio_threshold | Minimum sell-to-total trade ratio for consistent sell direction. | Float | 0.5 (50%) | Yes |
analysis_momentum_user_contribution_threshold | Minimum volume contribution percentage in analysis window by a user to flag for momentum ignition. | Float | 0.3 (30%) | Yes |
post_trade_window | Time window (in seconds) after the analysis period to analyze subsequent trading activity for profitability. | Integer | 300 | Yes |
momentum_ignition_filter_pnl | Flag to filter momentum ignition events based on profitability (PnL). | Boolean | True | Yes |
momentum_ignition_pnl_percentage_threshold | Minimum PnL percentage threshold for filtering momentum ignition events. | Float | 0.03 (3%) | Yes |
analysis_minimum_aggregate_dollar_threshold | Minimum dollar volume threshold in analysis window for trades to be considered. | Float | 100.0 | Yes |
Methodology
- Calculate Rolling Metrics
Compute metrics over a rolling time window (
analysis_rolling_window_seconds
), including:
- Total volume, total dollar volume, average price, start price, and end price.
- Buy and sell counts, volumes, and dollar volumes.
- Detect Price Momentum Calculate the rolling price change percentage:
- Flag trades with significant negative price changes exceeding the
analysis_price_change_threshold
.
-
Analyze Volume Spikes Identify volume spikes for total, buy, and sell volumes by comparing rolling metrics to historical averages using multipliers (
historical_volume_spike_multiplier_total
,historical_volume_spike_multiplier_buy
,historical_volume_spike_multiplier_sell
). -
Check Trade Direction Consistency Calculate the ratio of buy-to-total and sell-to-total trades within the rolling window.
- Flag trades with consistent buy directions exceeding their respective thresholds (
analysis_buy_direction_ratio_threshold
andanalysis_sell_direction_ratio_threshold
).
- Identify Users Driving Momentum Group trades by user within the rolling window to compute:
- User-specific buy/sell volumes, dollar volumes, trade counts, and volume-weighted average prices (VWAP).
- User contributions to total momentum based on their volume share compared to the rolling total.
- Flag users contributing significantly to momentum ignition (
analysis_momentum_user_contribution_threshold
).
-
Post-Trade Analysis Analyze trading activity in the
post_trade_window
to determine the impact of flagged trades on subsequent market movements. -
Profitability Filtering (Optional) Filter flagged momentum ignition events based on profitability (
momentum_ignition_filter_pnl
) by calculating the user's profit and loss (PnL) percentage relative to the trade. -
Final Flagging Trades are flagged as Negative Momentum Ignition if they meet all conditions:
- Significant price change.
- Volume spike in sell activity.
- Direction consistency.
- Significant user contribution to the momentum event.