- core/rv_scanner.py: futures basis curve and perp funding; options-implied forward vs listed
future; raw-SVI residuals per option netted against half the bid/ask in vol (Black-76 coin
inversion) and ranked by USD edge; coin-settled put-call parity with executable edge; vertical
and butterfly static-arbitrage checks on marks and at the touch; VRP vs 30d realised.
- routers/rvscan.py: GET /api/rvscan/{BTC|ETH}, Deribit public API with 60 s cache, 503 on failure.
- RV Scanner tab: carry chart, smile-residual scatter with spread bars, trade ideas, expiry ladder,
parity and static-arbitrage panel.
- Tests on a synthetic Black-76 book: parity/inversion, carry, clean book, planted mispricings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
SABR (Hagan with Obloj leading term) per Deribit expiry or from ATM/RR/BF
quotes; forward deltas under sticky strike, sticky delta, SABR and Bartlett;
backbones vs the realised spot-vol beta from DVOL/GVZ/VXSLV with a regime
call and rolling correlation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Live BTC/ETH positioning from Deribit open interest: Black-76 Greeks on each
expiry's forward, dealer gamma exposure per 1% move under switchable dealer
conventions, gamma profile and flip level, call/put walls, vanna and charm
exposure, per-expiry max pain, ATM IV and implied moves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Numpy-only deep hedging of a short call: a No-Transaction-Band network
trained by back-propagation through time and a feed-forward deep hedge,
both minimising CVaR, benchmarked out of sample against BS delta and a
tuned Whalley-Wilmott band, with regime-shift tests (vol up, crash jumps).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Importer/exporter TARFs with leverage and full/exact/no-payout targets,
priced by Monte Carlo on the forward under Black, Dupire local vol from an
arbitrage-free SSVI surface fitted to ATM/RR/BF, and Merton jumps:
zero-cost strike, model-risk spread, KO timing, expected cash flows, client
P&L tail and Greeks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Option-book market risk on joint spot x implied-vol history (DVOL, GVZ,
VXSLV or EWMA proxy): HS, filtered HS, delta-gamma Cornish-Fisher,
Student-t Monte Carlo and delta-normal VaR 99% / ES 97.5% at 1 and 10
days; stressed 250-day window; rolling FHS backtest with Kupiec and
Christoffersen tests and Basel zones; spot x vol ladder; worst-day and
what-if Greek P&L explain.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Strips FOMC/CPI/NFP variance lumps and the weekend weight out of the ATM
term structure (NNLS on total variance with a weekend-weight grid): live
Deribit fit for BTC/ETH, assumptions or broker quotes for metals/FX.
Event-implied moves, forward vols with calendar-arbitrage flags, fair vol
for any expiry, built-in 2026 FOMC/CPI/NFP calendar merged with live Forex
Factory events, and a realised day-of-week / FOMC-lump study.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Reiner-Rubinstein/Haug single barriers with rebates and Broadie-Glasserman-Kou
discrete-monitoring correction, touch ladder, smile-consistent digitals on the
vanna-volga smile, Dual Currency Investment fair-APR ladder with offer audit
(platform margin, implied vol paid), and a KO accumulator Monte Carlo with
zero-cost strike and optional Merton jumps. Validated against Haug Table 4-13
and discrete Monte Carlo.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
- core/jump_models.py: Black-76 helpers and implied vol; Merton series in
forward form (Poisson(lambda T) weights, F_n = F e^{-lambda k T}(1+k)^n);
Bates characteristic function in the 'little Heston trap' form with COS
pricing (puts + parity) and risk-neutral density; vega-weighted bounded
least-squares calibration across expiries; jump statistics (crash-jump
odds, jump share of variance) and density vs lognormal.
- GET /api/jumps/calibrate/{BTC,ETH}: fits both models to every Deribit
expiry from the Vol Lab feed (cached 30 min, 503 when Deribit is down).
- POST /api/jumps/merton: manual Merton smile/density for metals and FX
event and gap risk.
- Jump Lab tab: fit KPIs, market vs Merton vs Bates smiles per expiry,
30-day density, parameter table, and a hand-off of the calibrated jumps
to Hedge Lab (store.hedgeJump -> Hedge Lab defaults to the jump model).
- 5 tests: Black/Merton/Bates limits, parity, density mass and martingale,
exact-MC Merton and Euler-MC Bates checks, parameter recovery (clean and
noisy), Merton-vs-Bates misspecification, endpoints.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
- core/xasset.py: common-calendar returns (yields as changes), rolling and
EWMA correlation matrices, correlation-break monitor (z of 30D corr vs its
own history); gold/silver ratio stats, OU half-life, Engle-Granger ADF
cointegration (MacKinnon CVs), Kalman random-walk hedge ratio with centred
regressor and data-scaled noise; Margrabe exchange option with deltas,
ratio/leg vegas and analytic correlation sensitivity, plus an MC check.
- GET /api/xasset (yfinance, cached 30 min, 503 on failure) and
POST /api/xasset/margrabe (ATM outperformance on notional, premium vs rho).
- Cross-Asset tab: GSR KPIs, ratio chart with 1Y bands + Kalman z, heatmap,
break monitor, rolling correlations, Margrabe pricer for XAG/XAU, BTC/XAU,
ETH/BTC.
- 5 tests: Margrabe vs MC / BS limit / parity / d rho, EG power and size, OU
half-life, Kalman tracking, reports and endpoints on a synthetic market.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
- core/hedge_sim.py: vectorised Garman-Kohlhagen, self-financing delta hedge
of the whole portfolio (legs settle at their own expiries) with domestic
financing, foreign/lease carry and proportional costs; time-based or
delta-band rebalancing.
- Path models: GBM, Merton jump-diffusion at equal total variance, and a
stationary block bootstrap of the asset's own daily returns (Brownian-bridge
intraday steps); Monday-open weekend gaps for 24/5 assets.
- Benchmarks: theoretical edge V(sigma_r)-V(sigma_i), Derman-Kamal
discrete-hedging error, Leland cost; hedge-frequency sweep (risk vs cost).
- POST /api/hedge/simulate with work caps; bootstrap reuses cached history.
- Hedge Lab tab: scenario controls, 'use Vol Forecast' for realised vol,
KPIs, P&L histogram, frequency sweep, attribution, sample paths.
- 7 tests: GK parity, unbiased fair-vol hedge with Derman-Kamal sd, mean
P&L vs theoretical edge, sqrt(N) sweep, band/Leland costs, gaps/jumps
tails, endpoint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
- core/vol_forecast.py: forecasts average variance over the next 1D/1W/1M
with HAR-RV (weekend dummy for 24/7 crypto), GJR-GARCH(1,1) QMLE with a
vectorised filter, HistGradientBoosting on HAR/return/calendar features,
and EWMA as benchmark. Garman-Klass + overnight-gap proxy scaled to
close-to-close on pre-backtest data only.
- Rolling out-of-sample backtest (refit every 21 days, no look-ahead),
QLIKE / RMSE / bias per model (Patton 2011), inverse-QLIKE ensemble.
- 2-state Gaussian HMM (Baum-Welch) regime probabilities and durations.
- For BTC/ETH: ensemble forecast vs Deribit ATM implied -> rich/cheap view.
- GET /api/vol/forecast/{pair} (cached 30 min; 503 when history is short
or sources are down); scikit-learn added (models degrade gracefully
without it).
- Vol Forecast tab: KPIs, forecast term structure vs implied, HMM regime
history, OOS backtest vs realised (+DVOL), model leaderboard per horizon.
- 7 new tests on simulations with known answers (proxy bias, GARCH and HMM
parameter recovery, weekend effect, look-ahead check, endpoint).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Volatile instruments
- Add XAGUSD (SI=F, silver lease rate as r_f), BTCUSD and ETHUSD end to end:
pair metadata, live rates/OHLC/signals, CFTC positioning mappings
- Asset-class calendars: crypto annualised on 365 days, FX/metals on 252,
threaded through the signal engine
- Pair switch loads a typical ATM vol, rescales legs by moneyness, and
strategy templates use a ~1%-of-spot strike step
Vol Lab tab
- /api/vol/crypto/{BTC,ETH}: Deribit book summaries -> raw SVI fit per
expiry with Durrleman butterfly-arbitrage check, ATM / 25d RR / 25d BF
(Black-76 forward delta), DVOL, 30d constant-maturity IV, realised vol
and vol risk premium; cached 60s, 503 when Deribit is unreachable
- /api/vol/cone/{pair}: Burghardt-Lane realised-vol cone on the asset's
calendar
- UI: KPIs, cone with implied term-structure overlay, per-expiry smile
(market vs SVI), term-structure table with 'Use' to load T/sigma/RR/BF
into pricing and the Vol Smile tab
Fixes in the signal engine
- OU half-life divided by 252 twice; stationary sd used sqrt(252k) not sqrt(2k)
- Fallback realised vol returned decimals under *_pct keys
Tests: backend/tests (pytest) validate SVI recovery, exact 25d strikes,
cone calibration on both calendars and the endpoints with mocked feeds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Builds the implied-vol smile from the three standard FX market quotes
(ATM delta-neutral straddle, 25-delta risk reversal, 25-delta butterfly)
using Castagna & Mercurio's second-order Vanna-Volga approximation, and
reprices each portfolio leg off the smile vs the flat vol.
- backend: core/vanna_volga.py (delta->strike, DNS ATM, VV smile) and
POST /api/smile
- frontend: new "Vol Smile" dashboard tab with quote inputs, smile
chart, pillar table and smile-vs-flat leg repricing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpiqUMAyo4RL5DdQHMWbwE
Static auth (no DB) — users must DM on LinkedIn to get access.
Animated NEXUS login card with scanline effect, shake on wrong creds,
LinkedIn button linking to mihir-kansara-043275187 profile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- API base URL now reads from VITE_API_URL env var (frontend)
- WorldMap localhost URLs replaced with env-aware API constant
- Added httpx to backend requirements (live data proxy)
- Added Procfile for Koyeb backend deployment
- Added vercel.json for frontend SPA routing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>