ramseshk
e9629b698b
Fix Hyperliquid WebSocket subscribe format: type -> method
2026-08-05 09:04:40 +00:00
ramseshk
2f74e076b4
Live L2 Order Book + Trade Tape visualization (Bookmap-style)
...
New components:
- hyperliquid-ws.ts: WebSocket hook for Hyperliquid L2 + trades
- Auto-reconnect, ring buffer (500 trades)
- Computes imbalance, total bid/ask volume, mid, spread
- Type-safe interfaces: L2Snapshot, TradeTapeEntry
- orderbook-depth-map.tsx: Dual-panel Canvas 2D visualization
- Top panel (~55%): L2 volume profile histogram
- Green bid bars (#00C853), red ask bars (#FF1744)
- Yellow mid line (#FFEB3B) with floating price labels
- Price axis, volume scale, orange mid marker
- Quant overlay system: fair value, VWAP, signals
- Bottom panel (~45%): Live trade tape
- Amber trade path (#FFAB00)
- Buy/sell markers (green/red dots sized by trade size)
- Latest trade callout with side + price
- Dark theme (#000000 ), monospace fonts, zero flicker
Integration:
- Added to all strategy detail views (live tab only)
- Renders below trade history table
- WebSocket connects on mount, reconnects on error
Visual specification per user request:
- Bid/ask bars: neon green/red on pure black
- Mid line: yellow dashed with floating labels
- Trade path: amber staircase with colored markers
- No grid clutter, professional trading terminal aesthetic
2026-08-05 07:42:27 +00:00
ramseshk
7fd289f562
3D Order Book Depth Map: Plotly subplots (bid/ask split) + remove Three.js
...
- Replaced single surface with dual synchronized 3D subplots:
Left: BID depth (green colorscale, -50 to 0 bps)
Right: ASK depth (red colorscale, 0 to +50 bps)
- Independent colorbars per side with proper labeling
- Camera sync via scene anchor mirroring
- Contour projection on both surfaces
- Live imbalance overlay centered between subplots
Data pipeline:
- l2SnapshotsToDualSurface() splits bid/ask into separate matrices
- L2RingBuffer unchanged (60 snapshots, O(1) append)
Removed:
- depth-map-three.tsx (Three.js alternative)
- Engine toggle buttons from OBI detail
- Three.js CDN loading
2026-08-05 06:24:09 +00:00
ramseshk
8855c013a6
3D Order Book Depth Map: Plotly.js + Three.js live visualization
...
Architecture:
- depth-map-utils.ts: L2RingBuffer, l2SnapshotsToSurface, computeImbalance
└─ O(1) ring buffer, 60-snapshot capacity
└─ Surface matrix: ±50 bps × 100 resolution
└─ Imbalance formula: I = (V_b-V_a)/(V_b+V_a) with wall detection
- depth-map-plotly.tsx: Plotly.js 3D Surface
└─ 7-stop warm colorscale (dark→amber→gold)
└─ contour projection, ambient+diffuse lighting
└─ Live imbalance overlay: gauge bar + formula
└─ uirevision for stable camera on updates
- depth-map-three.tsx: Three.js high-perf alternative
└─ BufferGeometry + vertex colors + OrbitControls
└─ 60fps suitable, WebGL renderer with alpha
└─ Warm gradient matching Plotly colorscale
└─ Double-sided faces, dark grid helper
- obi-detail.tsx: Combined strategy detail panel
└─ Engine toggle: Plotly.js ↔ Three.js
└─ Synthetic data generation for testing
└─ 6-stat metrics row (PnL, BTC B&H, Sharpe, Hit Rate, Max DD, Signal)
└─ Equity curve comparison + trade history table
- Page integration: OBI strategy triggers dedicated 3D view
2026-08-05 06:11:33 +00:00
ramseshk
6665d0cd2a
Multi-ticker historical backtests: ticker filter + per-coin grouping
...
- Historical cards now deduplicated by strategy+ticker (28 entries: 7×4)
- Ticker filter bar: ALL | BTC | ETH | HYPE | VVV
- Coin badge on each card
- BacktestSummary.coin now required string field
- fetchHistorical groups by strategy · coin composite key
2026-08-05 05:11:32 +00:00
ramseshk
a09954017e
Recreate Next.js source — shadcn components, chart, types, hooks
...
Source files were untracked and lost during reset. Recreated:
- page.tsx (full 3-tab dashboard), layout.tsx, globals.css (shadcn theme)
- types.ts, api.ts, utils.ts
- strategy-card.tsx, equity-chart.tsx, positions-panel.tsx
- ui/ (7 shadcn wrappers: card, badge, button, table, tabs, sheet, collapsible, select)
- Config files: next.config.ts, tsconfig.json, postcss.config.mjs, components.json
2026-08-05 05:05:26 +00:00