ramseshk
|
e0be9f4d40
|
feat: advanced microstructure — sequencer latency, dealer GEX, tick regime, triangular arb
4 new modules with 20 tests:
#22 Sequencer Latency Detector (live/monitors/sequencer_latency.py):
Detects stale-state windows between WebSocket and REST API.
- WebSocket vs REST timestamp delta tracking
- Transport latency percentiles (p50, p99)
- Liquidation-triggered stale-state detection
- Stale asset identification for cross-margin arbitrage
#25 Dealer GEX (microstructure/dealer_gex.py):
Dealer Gamma Exposure estimation via Black-Scholes.
- Per-strike gamma × OI × spot² GEX computation
- Pin level detection (strikes where dealers are long gamma)
- Net GEX aggregation
- Signal: fade_breakout (long gamma pinning) vs ride_momentum
(short gamma amplification)
- nearest_pin() for distance-to-magnet calculation
#30 Tick-Size Regime Exploitation (microstructure/tick_regime.py):
Detects when asset price approaches tick-size boundaries.
- Hyperliquid tick schedule (BTC 0.1/0.5, ETH 0.01/0.05, SOL 0.001/0.005)
- Boundary approach detection with configurable threshold
- Linear trend estimation for expected bars-to-cross
- Signal: widen_quotes or tighten_quotes with urgency classification
- Per-coin state tracking
#33 Triangular Latency Arb (live/monitors/triangular_arb.py):
Cross-venue A→B→C triangular arbitrage detection.
- Internal triangular: BTC-USDT → ETH-BTC → ETH-USDT
- Cross-venue: price discrepancy across slow/fast venues
- Latency gap detection between venue pairs
- Implied cross-rate computation vs direct quote
- Minimum spread threshold gating
|
2026-08-10 10:34:56 +08:00 |
|
ramseshk
|
5304534e38
|
feat: advanced microstructure modules — HLP, Hawkes, Whipsaw, Term Structure, Liq Waterfall, Spoof Detector
6 new modules with 46 new tests (230 total):
#21 HLP Vault Monitor (live/monitors/hlp_vault.py):
Tracks Hyperliquid's native protocol market maker at address
0xfefefe... Queries clearinghouseState + metaAndAssetCtxs.
- Delta exposure per asset (notional + PnL)
- Overextension detection (notional exceeds M threshold)
- Rebalancing signals: fade_short when HLP too short,
fade_long when HLP too long (front-run forced rebalancing)
- Toxicity score: HLP losing money = absorbing informed flow
- Historical delta tracking
#29 Hawkes Processes (microstructure/hawkes.py):
Multivariate Hawkes calibrator for limit order book dynamics.
- MLE calibration via SGD gradient descent on log-likelihood
- Branching ratio enforcement (alpha/beta < 0.99 for stationarity)
- Intensity computation λ_i(t) with cross-excitation
- Activity forecasting (expected event count in horizon)
- Synthetic event generator (Ogata thinning)
- Pure functions: hawkes_intensity, hawkes_log_likelihood,
generate_hawkes_events
#23 Funding Whipsaw Trader (live/strategies/funding_whipsaw.py):
Premium index decay trading in final 60s of funding epoch.
- Detects deterministic convergence of premium→0 at settlement
- Time-scaled position sizing (larger closer to settlement)
- Auto-close after funding epoch completes
- Confidence scoring based on premium magnitude
#32 Term Structure Monitor (live/monitors/term_structure.py):
Perp/quarterly/bi-quarterly futures basis curve trading.
- Quarterly-perp basis with z-score anomaly detection
- BiQ-quarterly curve steepness monitoring
- Fair quarterly price via interest rate parity + funding carry
- Calendar spread signals: buy_basis, sell_basis,
curve_steepener, curve_flattener
#24 Liquidation Waterfall (live/monitors/liq_waterfall.py):
Cross-margin liquidation order prediction.
- Margin ratio tracking (equity / maintenance margin)
- Danger/critical level classification
- Asset liquidation priority: maintenance / book_liquidity ratio
(least liquid asset relative to margin = dumped first)
- Strategy output: widen_spreads on target, tighten on rest
#31 Spoof Detector (microstructure/spoof_detector.py):
Adversarial ML-style spoofing pattern recognition.
- Rule 1: Large order far from mid, cancelled immediately
- Rule 2: Cancel right before trade approaches price level
- Rule 3: Oversized order with no fill within short lifetime
- Spoof probability (rolling window ratio)
- Cancel-to-fill ratio monitoring
|
2026-08-07 17:52:20 +08:00 |
|
ramseshk
|
fcfc136384
|
feat: Phase 2 — microstructure analytics + 81 tests
New microstructure/ module with pure-function analytics:
microstructure/book.py:
microprice() — depth-weighted mid price
mid_price() — simple bid/ask midpoint
order_book_imbalance() — ranged [-1, 1] volume skew
depth_imbalance() — imbalance at fixed price distance
spread_stats() — spread, spread_bps, mid, bid, ask
depth_resiliency() — bid/ask volume within impact radius
queue_depletion_prob() — Poisson fill probability at level
batch_book_stats() — aggregate stats across snapshots
microstructure/trades.py:
classify_lee_ready() — Lee-Ready aggressor classification
classify_bulk_lee_ready() — batch classification with mids/bids/asks
compute_markouts() — forward mid-price change at configurable horizons
markout_summary() — mean/std/t-stat per side per horizon
trade_volume_profile() — size bucket distribution
trade_arrival_rate() — rolling trades/sec with burst detection
microstructure/toxicity.py:
compute_vpin() — volume-synchronized informed trading probability
compute_vpin_time_series() — rolling VPIN with alarm threshold
fill_toxicity() — adverse price movement post-trade
adverse_selection_ratio() — per-side adverse selection
liquidation_clustering() — cluster detection in liquidation events
microstructure/funding.py:
funding_regime() — classify regime (neutral/positive/negative/high)
funding_predictability() — AR(1) autocorrelation analysis
funding_carry_pnl() — cumulative carry PnL estimation
basis_spread() — perp premium over spot (bps)
basis_convergence_speed() — mean-reversion half-life via AR(1)
microstructure/signals.py:
composite_signal() — weighted OBI + trade + VPIN + funding signal
SignalPipeline — stateful pipeline accumulating book/trade updates
detect_hft_regime() — regime classifier for HFT strategy selection
Bug fixes in Phase 1:
- data/latency.py: proper linear-interpolation percentiles
- data/normalizer.py: UTC timezone for naive datetimes
- data/normalizer.py: detect_sequence_gap returns gap-1 (missing count)
- microstructure/toxicity.py: consistent vpin_value key in compute_vpin
81 tests across 4 test files (store, normalizer, latency, microstructure)
|
2026-08-07 14:34:18 +08:00 |
|