mirror of
https://github.com/Mihirkansara/nexus-quant-terminal.git
synced 2026-07-28 02:57:49 +00:00
61e145a442
Full-stack forex options analytics terminal with Bloomberg-inspired UI. Backend (FastAPI + Python): - Garman-Kohlhagen options pricing engine with full Greeks - Goldman Sachs gs-quant AI signals (RSI, MACD, Bollinger, Hurst, OU) - Monte Carlo GBM simulation and volatility surface generation - CFTC COT institutional positioning + Forex Factory economic calendar - Live data proxy: OpenSky aircraft + USGS earthquakes (CORS-safe) - Multi-leg strategy library (straddle, iron condor, butterfly, spreads) Frontend (React 18 + Vite): - NEXUS animated orbital logo (3-ring SVG) + canvas favicon animation - Bloomberg terminal design: JetBrains Mono, color-mix() tokens - 11 dashboard tabs: Greeks, Chart, AI Signals, 3D Surfaces, Breakeven, Scenarios, Monte Carlo, Institutional, Calendar, Live Map, Live Feeds - Live World Map (react-leaflet): aircraft, earthquakes, weather radar - Live Feeds: CoinGecko crypto top-12 + Windy.com global webcams - Economic calendar with filters + institutional flow (CFTC COT) - Animated landing page + session-based routing - Fully responsive dark-only terminal design system Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
name: Python Check
|
|
|
|
on:
|
|
push:
|
|
branches: ["**"]
|
|
pull_request:
|
|
branches: ["**"]
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.10
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.10"
|
|
|
|
- name: Install dependencies
|
|
run: pip install -r requirements.txt
|
|
|
|
- name: Verify script executes without error
|
|
# Use a non-interactive matplotlib backend so plots don't open a window
|
|
env:
|
|
MPLBACKEND: Agg
|
|
run: |
|
|
cd src
|
|
python -c "
|
|
import sys, os
|
|
sys.path.insert(0, os.path.abspath('.'))
|
|
from config import *
|
|
from greeks import portfolio_greeks
|
|
from surface import risk_surface, pnl_surface
|
|
import numpy as np
|
|
|
|
S_range = np.linspace(SPOT_LOW, SPOT_HIGH, 10)
|
|
sigma_range = np.linspace(VOL_LOW, VOL_HIGH, 10)
|
|
D, G, V, Th = risk_surface(EXAMPLE_PORTFOLIO, S_range, sigma_range, DEFAULT_TIME_TO_EXPIRY, DEFAULT_RISK_FREE_RATE)
|
|
P = pnl_surface(EXAMPLE_PORTFOLIO, S_range, sigma_range, DEFAULT_TIME_TO_EXPIRY, DEFAULT_RISK_FREE_RATE, DEFAULT_SPOT, DEFAULT_VOLATILITY)
|
|
assert D.shape == (10, 10), 'Delta surface shape mismatch'
|
|
assert G.shape == (10, 10), 'Gamma surface shape mismatch'
|
|
assert V.shape == (10, 10), 'Vega surface shape mismatch'
|
|
assert Th.shape == (10, 10), 'Theta surface shape mismatch'
|
|
assert P.shape == (10, 10), 'PnL surface shape mismatch'
|
|
print('All checks passed.')
|
|
"
|