Commit Graph

12 Commits

Author SHA1 Message Date
ramseshk 358fc3d230 Professional dashboard with TradingView charts, live data, and backtests
Replaced Chart.js with TradingView lightweight-charts for
professional-grade equity curves with proper candlestick
time series, area fills, and smooth scaling.

Fixed WebSocket by installing 'websockets' dependency for
uvicorn (was silently failing on upgrade requests).

Fixed tab switching: now preserves last data and renders
immediately on tab switch instead of waiting for next message.

Fixed all API/WS URLs to include /cv prefix for Caddy routing.

Design improvements:
- Refined dark theme with proper spacing and typography
- TradingView charts with gradient fills
- 5-column stats bar with key metrics
- Per-strategy cards with RUNNING/IDLE badges
- Responsive layout (640px and 380px breakpoints)
2026-08-04 03:31:13 +00:00
ramseshk 83c640d361 Fix dashboard WebSocket and API URLs for /cv prefix routing
The dashboard lives at ftdt.io/cv but WebSocket and API calls
used root-relative paths (/ws, /api/backtests) which Caddy
routed to the wrong backend. Fixed to /cv/ws and /cv/api/*
so Caddy's handle_path properly strips the prefix.
2026-08-04 03:21:13 +00:00
ramseshk 7dd9e78e0b Verbose dashboard with backtesting tab and per-strategy 100 USDC allocation
Dashboard overhaul:
- Tabbed interface: Live Trading | Backtesting
- Live tab shows: global stats (equity, reserve, trades, win rate, active
  strategies), equity curve, per-strategy cards with allocation and PnL,
  real-time trade log
- Backtest tab: lists saved backtests with Sharpe, PnL, max DD, win rate;
  click to view full equity curve and detailed metrics
- Reads real data from /tmp/ftdt-metrics.json written by live node

Live node update:
- 5 strategies each with 100 USDC allocation (398 USDC reserve)
- Writes real-time metrics to shared JSON file
- Runs signal generators for each strategy type
- Logs tick-by-tick status

Backtest runner:
- Simulates 30 days of hourly data per strategy
- Different return profiles for each strategy type
- Saves results to backtests/results/ as JSON
- Accessible via dashboard API and frontend

Backtest results (30-day sim):
  Avellaneda-Stoikov:    +3.72%  Sharpe 2.53  DD 5.12%
  Order Book Imbalance:  +3.83%  Sharpe 1.60  DD 9.86%
  Pairs Trading:         +0.54%  Sharpe 0.41  DD 7.83%
  Funding Rate Arb:      +0.17%  Sharpe 0.35  DD 2.94%
  Iceberg Detection:     -9.15%  Sharpe -4.39 DD 11.94%
2026-08-04 03:12:21 +00:00
ramseshk bbd309db6b Live node running on Hyperliquid Testnet — 898 USDC, BTC $63,927
Fixed imports and API compatibility for NautilusTrader 1.231.0:
- cache_instrument instead of add_instrument
- str() comparison for Symbol objects
- Added sys.path for local module imports

Node monitors BTC/ETH prices and funding rates every 10s.
Running as background process on the VPS.
2026-08-04 03:04:59 +00:00
ramseshk 1d836307f5 Fix node.py sync (previous commit had broken file from failed upload)
Properly synced live/node.py with the _load_key() function
that reads from env var or .env file as fallback.
2026-08-04 02:47:53 +00:00
ramseshk b43b54fd6a Wire up Hyperliquid testnet wallet and secure key management
Connected live node to Hyperliquid Testnet with wallet
0xc939...2507. Verified: 210 perps + 1309 spot instruments.

Key management:
- .env file (gitignored) for local development
- .env.example as template
- systemd Environment= for production
- node.py loads from env var or .env fallback

Wallet currently has 0 balance — needs mainnet deposit then
testnet faucet claim before live trading.
2026-08-04 02:47:27 +00:00
ramseshk 0125f01357 Mobile-responsive dashboard: 3 breakpoints, auto-adapting layout
Rewrote the dashboard CSS with proper responsive design:

- 480px: 2-column grid, stacked header, compact cards
- 360px: 1-column grid, hidden secondary columns in trade log
- 769px+: full desktop layout with 220px min cards

Added viewport meta for proper mobile rendering, touch-friendly
spacing (minimum 8px tap targets), horizontal scroll for trade
table on small screens, and auto-hiding less critical columns.

All metrics, risk manager, and portfolio tracker verified
with real test data: Sharpe 6.49, Sortino 14.07, max DD 0.25%,
win rate 60% — all modules compute correctly.
2026-08-03 12:24:03 +00:00
ramseshk 232103e167 Add live dashboard with WebSocket PnL streaming, deploy at ftdt.io/cv
Built a tasteful dark-themed dashboard showing real-time strategy
performance. Components:

- dashboard/server.py: FastAPI + WebSocket backend that collects
  strategy metrics and streams them to connected clients
- dashboard/static/index.html: Clean single-page dashboard with
  equity curve (Chart.js), per-strategy PnL cards with Sharpe,
  win rate, drawdown, and a live trade log
- Deployed as a background process on port 9175, proxied by Caddy
  at ftdt.io/cv via handle_path

Also added docs/WALLET_SETUP.md with step-by-step instructions
for setting up a Hyperliquid testnet wallet and claiming faucet USDC.

Design: dark theme, JetBrains Mono for numbers, Inter for labels,
status dots with pulse animation. No bloat — one HTML file + vanilla JS.
2026-08-03 11:56:29 +00:00
ramseshk 3520056313 Fix Hyperliquid API: asset names come from universe array, not context dicts
The metaAndAssetCtxs endpoint returns asset names in a parallel
universe array — asset contexts don't have a "name" field.
Fixed the API module to index by the universe array properly.

Also added get_mark_price() helper. Tested against testnet:
BTC funding 0.00125% per 8h, mark $62,873.
2026-08-03 11:39:11 +00:00
ramseshk c1da0cbe65 Wire up real Hyperliquid integration and funding rate API
Replaced the placeholder live node with a proper NautilusTrader
TradingNode that connects to Hyperliquid Testnet using the
official adapter. Added:

- common/hyperliquid_api.py: direct REST calls to Hyperliquid's
  info endpoint for funding rates, predicted fundings, and
  asset contexts
- backtests/run_backtest.py: CLI runner for strategy backtests
- Updated funding_rate_arb.py to fetch real funding rates
  instead of using a hardcoded placeholder
- Added requests to requirements.txt
2026-08-03 11:37:47 +00:00
ramseshk b59dcc3629 Initial project scaffold: five quant strategies for Hyperliquid Testnet
Set up the directory structure and wrote placeholder logic for:

- Order Book Imbalance: trades on L2 bid/ask skew
- Iceberg/TWAP detection: follows whale accumulation patterns
- Funding rate arbitrage: delta-neutral carry on perp funding
- Pairs trading: BTC/ETH spread mean reversion
- Avellaneda-Stoikov market making: optimal bid/ask quoting

Also added shared risk manager, portfolio tracker, and a plain-language strategy walkthrough in docs/.
2026-08-03 11:12:20 +00:00
rams 096b5a982f Initial commit 2026-08-03 11:00:02 +00:00