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.
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.
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.
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.
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
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/.