Viridia Capital

Internal Access Only

This document is confidential and covered by NDA. Enter the access code to continue.

Viridia Capital — Internal Technical Specification

Automated Trading Pipeline
System Architecture

Five-layer end-to-end system specification covering the VCSE signal engine, signal validation, trade construction, order management, and PnL attribution. V0.5 updated for L1 productionisation, volatility surface anomaly detection, OMS routing support, and June 2026 implementation priorities. Internal use only — NDA required.

v0.5 — June 18, 2026 Linear board active BingX · Binance · Kraken · Deribit (TBD) Python + Node.js Proprietary · Confidential
00

Team & Ownership

Every deliverable in this document is assigned to a primary owner. Colour coding is used consistently throughout.

Sam Head Trader — Backend & Infra owner
Senior Quant Right-hand, leads quant research, L1 Vol Engine architecture, and L2/L3 calibration
Engineer 1 Options engine, VCSE/ML support tasks, options-related implementation, and L4 OMS order-routing support
ComponentPrimary OwnerSupportingStatus
Backend infrastructure & DevOpsSamActive
Dashboard (frontend)SamSenior QuantLive
VCSE research & methodologySamSenior QuantIn Progress
Shared data backbone (DB, event bus)SamSenior QuantBuild
Market scannerSamSenior Quant · Engineer 1Partial
L1 Signal pipeline (VCSE → event store)Senior QuantSam · Engineer 1Build
L2 Signal validation & confluence scoringSenior QuantSamBuild
L3 Trade construction engineSenior QuantSamBuild
L4 OMS & order routingSamSenior Quant · Engineer 1Build
L4 Bankroll management modelSenior QuantSamBuild
Options pricing, vol engine & surface anomaly detectionEngineer 1Senior QuantL1 public-data build
L5 PnL attribution & feedback loopSenior QuantSamBuild
Deribit integrationEngineer 1SamPending account
01

System Overview

One pipeline, five layers. A validated signal flows from detection through construction, execution, management, and close — with every event logged to a shared data backbone. The loop closes by feeding trade outcomes back into signal quality scoring.

L1
Signal Detection
VCSE · Scanner · Vol Surface
L2
Validation
Confluence scoring · Filtering
L3
Construction
Instrument · Structure · Size
L4
Management
OMS · Risk · Bankroll
L5
Close & PnL
Exit · Attribution · Loop
Design principle: Every event (signal, validation, trade plan, fill, close) is written to the shared event store with a timestamp, source, and metadata. This makes cross-layer querying trivial: "how did VCSE signals perform when confluence > 0.8?" or "avg hold time by venue this quarter?" — the data is already there without any joins across separate systems.
Operating source of truth: Linear is now the execution board. This hosted page is the readable system spec, but project status, task ownership, due dates, and dependencies should be managed in the Linear project.

Build Status Overview

ComponentStatusNotes
Dashboard (React frontend)LiveDark theme, admin routes, 5s polling, risk aggregator
BingX + Binance APIsLivePosition feeds, partial execution, real-time data
VCSE Research PaperCompletev0.1 Architecture Draft — April 2026
Jupiter–Saturn PineScript IndicatorBuiltv3.0 with 20 aspects, retrograde, projection
Planet Ingress PineScript IndicatorBuiltMFE/MAE stats per transit
Live risk aggregatorLiveLeverage, liquidation distance, VaR, VCSE overlay
VCSE ML pipelineIn ProgressResearch paper complete, XGBoost baseline underway; Engineer 1 supports feature QA, repeatable run scripts, and small model tasks
Market scannerPartialRunning in dashboard under Sam ownership; Senior Quant and Engineer 1 support signal taxonomy and schema adapter work
Shared event store (DB backbone)Active Phase 1Priority zero — blocks all other layers
L2 Confluence scoring engineBuildOwned by Senior Quant; implementation follows L1 signal contracts
L3 Trade constructionBuildDecision tree + sizing
OMS (unified order router)BuildBingX + Binance + Kraken
Bankroll management modelBuildKelly / fractional sizing
Options pricing, vol engine & surface anomaly detectionL1 BuildEngineer 1 implements public Deribit surface ingestion, IV/skew/term structure signals, and anomaly detection; Senior Quant defines calibration
Deribit integrationTBDAccount setup pending
L5 PnL attributionBuildSignal feedback loop
PX

Systems Project Index

The system is now tracked as a single Linear migration project with supporting technical subprojects. This section maps the hosted spec to the operational project board and the workstreams that matter for implementation.

Access-control note: this static page uses a hardened client-side gate with hashed validation, lockout, and session expiry, but static HTML cannot provide a real confidentiality boundary. Sensitive implementation details should live in Linear or another private, server-side controlled workspace.
Project / WorkstreamSystem RoleCurrent StatusCanonical Tracker
Viridia Automated Trading PipelineMain build roadmap and migration boardActiveLinear project
System Spec v0.5Current architecture and build-plan document, updated for L1 productionisation, Market Scanner ownership, VCSE engineering focus, and OMS routing supportCurrentLinear doc
Data Contracts and Pipeline NotesEvent flow, schema contracts, scoring thresholds and bankroll defaultsCurrentLinear doc
Hosted System SpecReadable public/static copy of the architectureMirrorGitHub repo
DashboardRisk aggregation, monitoring, approval workflow and health visibilityLive + expandingPhase 1 / Phase 2 Linear issues
VCSE Research + ML PipelinePlanetary feature generation, XGBoost baseline, calibration, feature QA, daily snapshot emission, and future Transformer stageIn ProgressVCSE and Research issues
Exchange Integration StackBingX, Binance, Kraken and future Deribit connectivityPartialExchange Integration issues
Options / Volatility EngineDeribit IV surface, skew, term structure, volatility surface anomaly detection, L1 vol signals, options construction and executionL1 BuildPhase 1 and Phase 5 Linear issues

Current Board Snapshot

Linear AreaIssuesPurpose
VIR-5Phase 1 parentActive board: data backbone and signal standardisation
VIR-10 to VIR-19Phase 1 tasksSchemas, Postgres/TimescaleDB, Redis/Celery, event bus, VCSE snapshots, scanner writes, dashboard health, runbook
VIR-20 to VIR-27Phase 2 backlogL2 confluence scoring, validated signals, conflict detection, L3 trade plans, bankroll gate, review dashboard
VIR-28 to VIR-33Phase 3 backlogOMS, order state machine, exchange adapters, active management, WebSocket fills, circuit breaker
VIR-34 to VIR-38Phase 4 backlogPnL engine, source attribution, L2 feedback job, reporting, VCSE live accuracy
VIR-39 to VIR-44Phase 5 backlogDeribit, options construction, governed automation, VCSE Transformer, auto-execution policy; L1 Vol Engine and surface anomaly detection begin earlier with public Deribit data
VIR-45 to VIR-46Spec governanceCanonical spec location and real access control for confidential architecture docs
02

Shared Data Backbone

The single most important infrastructure piece. Every layer reads from and writes to it. Build this before any other layer.

Priority zero. All five layers depend on this. Building them without it means painful retrofitting later. Sam owns infra; Senior Quant defines schemas. Active Linear milestone target: 2026-06-21.

Core Schema

TablePurposeWritten byRead by
market_dataExchange market data and candles used for signals and backtestsExchange adaptersL1, VCSE, L5
signalsEvery signal from any source with metadataL1L2, L5
validated_signalsSignals that passed L2 with confluence scoreL2L3
trade_plansConstructed trades: instrument, size, entries, stops, targetsL3L4
ordersEvery order sent to any exchange (all states)L4L4, L5
positionsLive position state synced from exchanges every 5sL4L4, L5, Dashboard
pnl_attributionCompleted trades with full PnL, fees, funding and source attributionL5L1, L2, L5, Dashboard
system_logsAppend-only audit log of every system eventAll layersAll layers
portfolio_stateCurrent snapshot: capital, exposure, drawdown, allocationL4L3, L4, Dashboard
vcse_snapshotsDaily PSV(t) computed by ephemeris pipelineVCSE engineL1, L2
vol_surface_snapshotsDeribit public IV surface, skew, term structure, anomaly scores, and data-quality flagsVol Engine / surface anomaly detectorL1, L2, L3

Infrastructure Stack

Persistent Storage

PostgreSQL + TimescaleDB

Structured data (trades, orders, positions) in Postgres. TimescaleDB extension for time-series (signals, events, VCSE snapshots) — fast time-range queries without a separate TSDB. Primary data store for all layers.

Real-Time Cache

Redis

Current position state, live risk metrics, active alerts. This is what the dashboard polls every 5 seconds. Also serves as Celery broker for background task queuing. Sub-millisecond reads for live trading.

Task Queue

Celery

Background jobs: signal scoring, PnL calculation, VCSE ephemeris updates, model inference. Decouples heavy computation from API request cycles. Workers can be scaled horizontally.

Event Bus

Python Signals / Redis Pub-Sub

Cross-layer event emission. A validated signal emits signal_validated; L3 listens and builds a trade plan; L4 listens and stages orders. Enables async pipeline without tight coupling.

Event Flow — Full Pipeline Example

VCSE engine computes daily PSV(t)
  → writes to vcse_snapshots table
  → detects inflection window (P_inflection > 0.65)
  → writes to signals table  { source: "vcse", confidence: 0.78, direction: "short" }
  → emits event: "signal_created"

L2 listener picks up "signal_created"
  → scores confluence across all inputs
  → writes to validated_signals  { score: 0.84, recommendation: "high_conviction" }
  → emits event: "signal_validated"

L3 listener picks up "signal_validated"
  → queries portfolio_state (available capital, open exposure)
  → constructs trade plan  { instrument: "perp", exchange: "binance", size: $12k, lev: 3x }
  → writes to trade_plans
  → emits event: "trade_plan_ready"

→ TODAY: Sam reviews on dashboard and approves
→ FUTURE: auto-approve if score > 0.80 and within bankroll limits

L4 OMS sends orders to exchange
  → writes to orders table (status: "pending")
  → monitors fills → updates orders (status: "filled")
  → writes to positions table
  → updates portfolio_state and Redis cache

L5 detects position close event
  → writes to pnl_attribution with full attribution
  → computes signal source accuracy
  → updates VCSE signal quality score in signals table
  → loop feeds back into L1 confidence calibration
Owner

Sam Infrastructure

Provisions Postgres + TimescaleDB + Redis. Manages server sizing, backups, API keys, secrets management. Defines deployment environment.

Owner

Senior Quant Schema Design

Defines all table schemas, column types, indices. Writes migration scripts. Ensures schemas support all downstream query patterns across all five layers.

03

Viridia Celestial Signal Engine (VCSE)

A quantitative ML framework treating planetary positions as a structured, deterministic feature space. Not a metaphysical system — a correlational and empirical one. As of V0.5, VCSE is moving from research artifact into an L1 production component: daily snapshots, model diagnostics, feature QA, and signal-contract emission are the active engineering focus.

What Is Financial Astrology?

Financial astrology is the practice of correlating planetary cycles with market behaviour. It has been documented in academic and practitioner research for over a century — not as a mystical claim, but as the observation that planetary cycles produce measurable, recurring periodicities that overlap with cycles in human sentiment and economic activity. The mechanism hypothesis is straightforward: markets are driven by collective human psychology, and if planetary cycles correlate with recurring shifts in that psychology, they carry statistical signal regardless of the reason.

The field was formalised in the 20th century by researchers including W.D. Gann, who embedded cycle analysis into his trading methodology, and has since been extended quantitatively by Merriman, Pesavento, and Adkins, who documented statistically significant correlations between specific planetary configurations and commodity price extremes across multi-decade datasets. The VCSE is a modern, ML-native continuation of this lineage — replacing manual interpretation with a calibrated probabilistic model trained on the full history of Bitcoin.

Astrological Concepts — Engineering Primer

For engineers without an astrology background, these are the core structural concepts the system encodes:

Zodiac Signs

The 12-Sign Cycle

The ecliptic (the Sun's apparent path through the sky) is divided into 12 equal 30° sectors, each named after a constellation. Every planet moves through all 12 signs continuously — the Sun completes one full cycle per year, Saturn takes 29.5 years. A planet's sign determines its elemental quality (Fire, Earth, Air, Water) and modality (Cardinal, Fixed, Mutable), which are encoded as categorical features.

Planetary Dignity

Strength Scores

Each planet has signs where it operates at maximum strength (domicile, exaltation) and signs where it is weakened (detriment, fall). Saturn in Capricorn (domicile) is at full strength; Saturn in Cancer (detriment) is at its weakest. These dignity states are encoded as a signed integer score (−2 to +2) and represent historically significant regime transition markers — particularly when slow-moving planets like Saturn or Jupiter change dignity state.

Planetary Ingress

Sign Boundary Crossings

The moment a planet crosses a 30° sign boundary is called an ingress. For outer planets (Saturn, Jupiter, Uranus), ingresses are rare, multi-year events that historically mark macroeconomic regime shifts. For inner planets (Sun, Mercury, Venus, Mars), ingresses occur weekly to monthly and provide shorter-term timing signals. The VCSE treats ingresses as discrete regime transition events and labels them in the training data.

Aspects

Angular Relationships Between Planets

When two planets form specific angular separations as viewed from Earth, they are said to be "in aspect." The primary aspects are conjunction (0° — same position), opposition (180° — directly opposite), trine (120° — harmonious), square (90° — tension), and sextile (60° — mild support). Hard aspects (conjunction, opposition, square) correlate historically with increased volatility and trend reversals. Soft aspects (trine, sextile) correlate with smoother, lower-volatility regimes.

Retrograde Motion

Apparent Backward Movement

Due to the geometry of planetary orbits, planets periodically appear to move backward through the zodiac from Earth's perspective. Mercury goes retrograde roughly three times per year; Saturn and Jupiter retrograde annually for months at a time. Retrograde periods are encoded as binary flags and have historically correlated with increased indecision, reversals, and volatility in speculative markets — particularly Mercury retrograde overlapping with key technical levels.

Applying vs. Separating

Leading vs. Lagging Signal

An aspect is "applying" when two planets are converging toward an exact angle, and "separating" once they have passed exactness and are moving apart. Applying aspects are treated as leading indicators — the energy is building. Separating aspects are treated as lagging — the event has already peaked. This distinction allows the model to differentiate between an incoming inflection and one that has already resolved, which is critical for timing precision.


Core thesis: Markets are driven by human sentiment and collective psychology. Planetary cycles are deterministic, long-period oscillators with well-defined frequencies. The VCSE hypothesis is that these oscillators — particularly the slow outer planets (Saturn, Jupiter, Uranus) whose cycles span years to decades — correlate with recurring shifts in macroeconomic sentiment at a level a machine learning model can identify and exploit. The question is not whether the cosmos moves markets — it is whether the periodicity of planetary cycles correlates with recurring sentiment patterns at a level a model can detect and quantify. That is an empirical question, answered with data.

Why This Edge Is Structurally Defensible

Three properties make planetary data unusual as a feature set and difficult to arbitrage away:

  • Zero look-ahead bias. Planetary positions are computed from orbital mechanics and can be calculated for any future date without reference to price data. There is no data leakage by construction — the feature space is fully separable from the target variable.
  • Long cycle periods. Saturn's 29.5-year orbit means there are only ~1–2 full cycles of Bitcoin data available for training. The signal, if it exists, operates on a timescale that cannot be rapidly discovered and arb'd away by high-frequency participants.
  • Low adoption. Systematic, ML-native financial astrology is a niche practised by a small number of quant funds globally. The signal is not crowded. As the framework matures and expands to multi-asset validation, the edge becomes more defensible, not less.

Why Planetary Data Works as a Feature Set

Unlike price-derived indicators (RSI, moving averages), planetary positions are computed from orbital mechanics and carry zero look-ahead bias — they can be calculated for any future date without reference to price data. This eliminates the feature leakage that plagues most technical indicator models and provides genuine forward-looking predictive power. The feature space is also fully deterministic and reproducible: given the same date, every engineer running the pipeline will compute identical features via the Swiss Ephemeris (pyswisseph), the same VSOP87-based astronomical engine used by professional observatories.

Current Engineering Stature — V0.5

AreaCurrent StateV0.5 Focus
Research basisVCSE paper complete and treated as the canonical methodology referenceKeep methodology stable while engineering turns it into repeatable L1 outputs
Feature pipelinePlanetary state vector, ingress events, aspects, retrograde flags, and aggregate features specifiedHarden batch generation, feature completeness checks, and reproducible Parquet/Timescale writes
Model layerXGBoost / LightGBM baseline underway; Transformer remains a later stagePrioritise interpretable baseline, walk-forward validation, SHAP reports, and calibration before sequence-model expansion
L1 integrationVCSE outputs are defined but need automated daily emissionWrite vcse_snapshots, emit unified signals, and expose freshness/model diagnostics in dashboard health
Engineering supportSenior Quant owns ML design and validation; Engineer 1 supports implementation tasksEngineer 1 handles feature QA helpers, dataset hygiene scripts, batch-run ergonomics, and dashboard wiring under Senior Quant direction

The 10 Planetary Bodies

☉ SunAnnual cycle, macro sentiment backdrop
☽ Moon2.5d sign changes, short-term timing
☿ Mercury88d orbit, retrograde ~3×/year
♀ Venus225d orbit, risk appetite proxy
♂ Mars1.88yr orbit, volatility & aggression
♃ Jupiter11.86yr orbit, expansion & amplification
♄ Saturn29.5yr orbit, top historical signal
⛢ Uranus84yr orbit, regime disruption
♆ Neptune165yr orbit, long-wave background
♇ Pluto248yr orbit, generational cycles

The Planetary State Vector PSV(t)

At any bar, all 10 bodies are encoded as a structured feature vector. The concatenation of all per-planet features plus aspect and aggregate dimensions produces 200+ features total.

PSV(t) = [ f_Sun(t), f_Moon(t), f_Mercury(t), ... , f_Pluto(t), A(t), E(t) ]

where:
  f_p(t)  = per-planet feature sub-vector (sign, dignity, position, speed, retrograde)
  A(t)    = 45-pair aspect matrix (all C(10,2) unique planet pairs)
  E(t)    = elemental & modal aggregate statistics

Per-Planet Feature Set (×10 planets each)

FeatureDescriptionEncoding
sign_idxZodiac sign: 0=Aries … 11=PiscesOHE / embed
dignity_scoreDomicile +2, Exaltation +1, Detriment −1, Fall −2, neutral 0 — measures planetary strengthOrdinal int
deg_in_signDegrees elapsed in current sign (0.0 – 30.0)Continuous
pct_in_signPercent through current sign (0–100)Continuous
days_since_ingressCalendar days since last sign boundary crossingContinuous
is_retrogradePlanet moving retrograde at time t — retrograde often signals reversalsBinary
element_idxFire=0, Earth=1, Air=2, Water=3 — elemental quality of signCategorical
modality_idxCardinal=0 (initiating), Fixed=1 (sustaining), Mutable=2 (transitioning)Categorical
lon_sin / lon_cosCircular encoding of ecliptic longitude — preserves cyclical continuity across 360°Continuous ×2
speed_normDaily angular velocity normalised to planet mean speed — captures acceleration / decelerationContinuous

The Aspect Matrix A(t) — 45 Planetary Pairs

Beyond sign placement, planets form angular relationships that carry independent predictive signals. At every bar, all C(10,2) = 45 unique planet pairs are evaluated for active aspects across 13 aspect types: conjunction (0°), opposition (180°), trine (120°), square (90°), sextile (60°), and 8 minor aspects. Each pair encodes orb, applying/separating direction, and orb-as-percentage-of-max.

Applying vs. separating: An applying aspect — where two planets are converging toward an exact angle — is weighted more heavily than a separating one. Applying aspects represent incoming energy, acting as leading indicators. Separating aspects represent dissipating energy. This distinction is critical for timing accuracy.
FeatureDescriptionDim
aspect_type[i,j]0=none, 1=conjunction, 2=opposition, 3=trine, 4=square, 5=sextile, 6–13=minor aspects45 categorical
orb[i,j]Angular distance from exact aspect in degrees45 continuous
orb_pct[i,j]Orb as fraction of allowed maximum (0–1). Tighter orb = stronger signal45 continuous
applying[i,j]Boolean: planets converging toward exact angle. Weighted more heavily in model45 binary
n_active_aspectsTotal active aspects at time t across all 45 pairs1 count
n_hard / n_softHard (conj/opp/square) vs soft (trine/sextile) counts — hard aspects correlate with volatility2 count
tension_scoreWeighted sum: hard aspects +1, soft aspects −0.5 — net sky tension index1 continuous
jup_sat_angleRaw Jupiter–Saturn separation 0–180°. Historical top predictive signal in BTC backtests1 continuous
saturn_aspect_activeBoolean: Saturn in any active aspect. Saturn aspects consistently flag high-volatility windows1 binary

Ingress Events as Regime Transitions

A planetary ingress — the moment a planet crosses a 30° zodiac boundary — is treated as a discrete regime transition event. Empirically, ingresses by Saturn, Jupiter, and Mars into dignity-relevant signs (domicile or fall) show statistically elevated MFE and MAE in BTC backtests. The PineScript Ingress Indicator already built for this framework provides the full historical dataset of all ingress events with per-transit returns, MFE, MAE, retrograde status, and dignity context — forming the labelled training set for supervised models.

Validated example: Saturn ingressed Capricorn (domicile — maximum dignity) on December 17, 2017. This coincided with the exact BTC all-time high of that cycle. Used as an ephemeris validation checkpoint.

FeatureDescription
ingress_today[p]Binary: planet p ingressed on this bar
ingress_into_dignity[p]Ingress into domicile or exaltation — historically strongest signal events
ingress_into_weakness[p]Ingress into detriment or fall — also historically significant
n_ingresses_7dCount of any-planet ingresses in past 7 days — ingress clustering flags transition zones
slow_planet_ingress_90dBoolean: Saturn/Uranus/Neptune/Pluto ingressed in past 90 days — slow planet ingresses define multi-month regimes
saturn_days_in_signDays Saturn has been in current sign (0 – ~900) — position within its 2.5yr sign transit
moon_sign_idxMoon's current sign — changes every ~2.5 days, adds short-term timing layer

Elemental & Modal Aggregate Features

FeatureDescription
n_fire / n_earth / n_air / n_waterPlanet count in each element at time t — elemental dominance affects market temperament
n_cardinal / n_fixed / n_mutablePlanet count in each modality — cardinal = trend initiation, fixed = trend continuation, mutable = reversals
n_domicile / n_exaltedPlanets in strongest dignity positions — high counts indicate collectively "strong" sky
n_detriment / n_fallPlanets in weakest dignity positions — associated with disruption and volatility
dignity_sumNet celestial strength: sum of all 10 dignity scores. Range: −20 to +20
n_retrogradeTotal planets retrograde simultaneously — high counts historically correlate with confusion / reversal
mutual_receptionPairs where each planet is in the other's domicile sign — mutual support between planets
stellium_sizeLargest cluster of planets sharing one sign — stelliums concentrate energy and are historically significant

Model Architecture — Three Stages

Stage 1 — Interpretability

XGBoost / LightGBM

Tree-based models as the primary interpretability layer. Handles mixed feature types natively, robust to collinearity, produces SHAP values revealing exactly which planetary combinations drive each prediction. Objective: binary:logistic. Class balance via scale_pos_weight (inflection events are ~15% of bars). Regularisation tuned via Bayesian optimisation (Optuna). This is the layer that proves or disproves the hypothesis.

Stage 2 — Sequence Learning

Temporal Transformer

Captures long-range sequential dependencies in planetary cycles — a Saturn ingress 60 days after a Jupiter–Saturn square carries different weight than one in isolation. 60–90 day lookback window. Positional encoding seeded with known cycle periods (Saturn=29.5yr, Jupiter=11.86yr, Mars=1.88yr) rather than learned — embeds domain knowledge directly, reducing training data requirements dramatically.

Stage 3 — Production Output

Ensemble & Calibration

Stacks Stage 1 and Stage 2 using a logistic regression meta-learner trained on out-of-fold predictions. Final probabilities calibrated with isotonic regression — a predicted 70% inflection probability must correspond to an actual 70% historical hit rate. Uncalibrated probabilities cause systematic over/under-betting regardless of model accuracy. Essential for Kelly-based position sizing.


Backtesting: Walk-Forward Validation

Standard k-fold cross-validation violates the temporal structure of financial data. The VCSE uses expanding-window walk-forward validation with a 90-day purging embargo between each training cutoff and test period — preventing leakage through overlapping multi-day return windows (López de Prado, 2018).

FoldTraining PeriodEmbargoTest Period
1Oct 2013 – Dec 201690 daysMar 2017 – Dec 2017
2Oct 2013 – Dec 201790 daysMar 2018 – Dec 2018
3Oct 2013 – Dec 201890 daysMar 2019 – Dec 2019
4Oct 2013 – Dec 201990 daysMar 2020 – Dec 2020
5Oct 2013 – Dec 202090 daysMar 2021 – Dec 2021
6Oct 2013 – Dec 202190 daysMar 2022 – Dec 2022
7Oct 2013 – Dec 202290 daysMar 2023 – Dec 2023
8 (OOS)Oct 2013 – Dec 202390 daysMar 2024 – Present (live)
Non-negotiable: The 90-day purging embargo is a structural requirement, not a configuration option. Any relaxation inflates metrics that will not generalise live. Inflection labels require future bars to confirm — strict purging prevents leakage.

Evaluation Metrics

MetricWhat It Measures
AUC-ROCDiscrimination: model correctly ranks bullish vs bearish bars
Precision-Recall AUCMore informative than ROC for rare events (~15% inflection rate)
Brier ScoreCalibration: how well predicted probabilities match actual frequencies
Matthews Correlation Coeff.Balanced accuracy for binary classifiers under class imbalance
Simulated Sharpe RatioSignal-weighted P&L divided by daily return volatility
Profit FactorGross wins ÷ gross losses — directly comparable to trading edge
Max Drawdown (simulated)Worst peak-to-trough on signal-generated positions across all folds
SHAP Stability IndexConsistency of feature importance rankings across all folds

The Three Signal Outputs

All outputs are calibrated probabilities or continuous scores — not binary buy/sell signals. This supports position-sizing decisions in L3 and bankroll management in L4.

Output 1 — Primary
Inflection Point Probability
P_inflection(t) ∈ [0, 1]

Calibrated probability that bar t falls within a ±N bar window of a local price extreme (reversal or acceleration). Threshold guidance: P > 0.65 = high-conviction inflection window; 0.45–0.65 = moderate; P < 0.45 = trend regime favoured. Strongest signals historically coincide with slow-planet ingresses into dignity-relevant signs + active hard aspects between Jupiter and Saturn.

Output 2 — Directional
Directional Bias Score
B(t) ∈ [−1, +1]

Computed as B(t) = 2 × P(return > 0) − 1, where P is the calibrated probability from the direction classifier. B = +1.0 is maximum bull conviction; B = −1.0 is maximum bear. Can be used directly for exposure scaling: long exposure = max(0, B(t)), short exposure = max(0, −B(t)). Horizon: 3–30 day forward return.

Output 3 — Volatility
Volatility Regime Label
V(t) ∈ {Low, Medium, High}

Three-class label for expected volatility over the next 14 days. Low regime: favour mean-reversion, tighter stops. High regime (typically Saturn/Uranus applying squares, multiple retrogrades, Moon in cardinal signs): favour wider stops, reduced leverage, trend-following over mean reversion. Direct input to L3 trade construction decision tree.

Worked Signal Example

Configuration: Saturn ingresses Aquarius (detriment) · Jupiter applies square to Saturn · 3 planets in fire signs · Moon ingresses Aries (cardinal)

Model outputs: P_inflection = 0.72 (HIGH — window active) · B(t) = −0.41 (bearish, −41% weight) · V(t) = HIGH (elevated volatility)

Interpretation for L3: High probability of a local price extreme forming within 5–10 bars in a bearish direction. Prioritise short setups on technical confirmation. Widen stops and reduce leverage relative to normal sizing. L2 confluence scoring will confirm or attenuate this before trade construction.

Data Pipeline

StageProcessLibrariesOutput
1 IngestPull OHLCV from Kraken / Binance REST APIs. Validate gaps, outliers. Daily primary; hourly secondary for timing precision.ccxt, pandasRaw OHLCV DataFrame
2 EphemerisCompute 10-planet longitudes, speeds, retrograde flags at each timestamp. pyswisseph queried at 00:00 UTC per bar.pyswissephPlanet position array
3 IngressDetect sign changes, compute dignity, days in sign, MFE/MAE per transit.pandas, numpyIngress event table
4 AspectsEvaluate 45 pairs × 13 types: orb, applying/separating, tension score. Vectorised.numpyAspect matrix N×45×4
5 AggregatesElement/modal counts, dignity sum, mutual receptions, stellium detection.pandasAggregate feature columns
6 TargetsForward returns, vol, drawdown, MFE/MAE, inflection labels for every bar.pandas, scipyTarget variable columns
7 StoreMerge all features. Save to Parquet + TimescaleDB for fast indexed queries.pyarrow, sqlalchemyMaster feature store
8 SplitTemporal walk-forward splits with 90-day purging embargo per fold.mlfinlab, sklearnTrain / validation sets

Multi-Asset Expansion Roadmap

The pipeline is asset-agnostic — only the OHLCV source changes. Expanding to additional assets both validates the cross-market hypothesis and dramatically increases statistical power for slow-planet features where BTC history alone provides insufficient cycles.

AssetData fromWhy
ETH/USDJul 2015 – PresentShares BTC market cycle structure. Unique natal chart (Jul 30, 2015). Cross-asset validation.
Gold (XAU/USD)1975 – Present50+ years provides multiple Saturn full cycles — dramatically increases slow-planet statistical power.
S&P 500 (SPX)1950 – PresentValidates that planetary signals are not BTC-specific artifacts but reflect broader market psychology.
Crude Oil (WTI)1983 – PresentCommodity with well-documented sensitivity to Saturn–Jupiter cycles. Strong academic literature support.
DXY (USD Index)1971 – PresentMacro regime indicator. Saturn–Capricorn periods historically correlate with USD strength.
Owner

Sam Hypothesis & Methodology

Sam owns the astro research framework and signal definitions. Defines what constitutes a valid VCSE signal and how the signal should be interpreted in trading context. The research paper remains the canonical reference.

Owner

Senior Quant ML Pipeline & Validation

Leads the XGBoost baseline, walk-forward CV, SHAP analysis, calibration, and later Transformer architecture. Owns the mapping from VCSE outputs into L1 signal contracts and L2 scoring inputs.

Support

Engineer 1 VCSE / ML Implementation Support

Supports feature QA, dataset hygiene, batch-run scripts, model report generation, dashboard wiring, and implementation cleanup for VCSE outputs under Senior Quant direction.

L1

Signal Detection

Four L1 signal sources producing a unified output format. Each fires independently; confluence scoring happens in L2. All signals are written to the signals table on the shared event store. June 2026 priority is getting L1 production-grade: VCSE snapshots, scanner normalisation, public-data Vol Engine signals, and volatility surface anomaly detection must all emit comparable signals.

V0.5 L1 status: The dashboard and live risk aggregator are already operating, the Market Scanner is running but still needs schema normalisation, VCSE research has moved into the XGBoost baseline and daily-run hardening stage, and Deribit public data can support IV/skew/term-structure signals before account-level trading access is active.
In Progress

VCSE — Celestial Signal Engine

Primary signal source. Produces P_inflection, B(t), and V(t) daily from the PSV(t) feature vector. Pipeline: ccxt OHLCV → pyswisseph ephemeris → feature assembly → XGBoost/Transformer ensemble → calibrated outputs. Needs: automated daily ephemeris runner that writes to vcse_snapshots, emits signals to the event store, and publishes feature/model diagnostics for review. Engineer 1 supports small VCSE/ML implementation tasks while Senior Quant owns the research logic.

Partial

Market Scanner

Technical signal source operating independently of VCSE. Currently running in dashboard and now owned by Sam, with Senior Quant and Engineer 1 supporting taxonomy and adapter work. Gap: Output must be standardised into the unified signal schema before being written to the event store. Scope covers technical setups (breakouts, divergences) and market microstructure signals where reliable feeds are already available.

L1 Build

Options & Volatility Engine

Third signal source, implemented by Engineer 1 with Senior Quant owning signal design and calibration. Trading is blocked until Deribit account access is active, but L1 development is not blocked: Deribit's public API should feed IV surface snapshots, skew, term structure, vol regime transitions, and premium dislocation signals for use with existing perp trades.

L1 Build

Volatility Surface Anomaly Detection Engine

New L1 component built by Engineer 1 and supported by Senior Quant. Detects abnormal IV surface moves, skew kinks, term-structure inversions, expiry-local dislocations, and stale/erroneous surface prints. Outputs anomaly signals for L2 scoring and feeds the Vol Engine with surface-quality flags before any options trade construction depends on the data.

June 2026 L1 Development Tasks

TaskOwnerOutput
VCSE daily runner hardeningSenior Quant · Engineer 1Scheduled ephemeris job, stored vcse_snapshots, freshness alerts, model diagnostics
VCSE feature QA and ML report helpersEngineer 1Repeatable checks for missing features, leakage risks, train/test splits, SHAP exports
Scanner signal adapterSam · Senior Quant · Engineer 1Dashboard scanner output normalised into signals with type, direction, confidence and expiry
Public-data Vol Engine adapterEngineer 1 · Senior QuantDeribit public IV, skew, term-structure, and vol-regime signals written to L1 schema
Volatility surface anomaly detection engineEngineer 1 · Senior QuantSurface anomaly detector emitting abnormal skew, tenor, IV percentile, and data-quality signals for L2 confluence
L1 signal confidence calibrationSenior QuantPer-source confidence rules documented and compatible with L2 confluence scoring

Unified Signal Schema

{
  id:          "sig_20260417_vcse_001",
  timestamp:   "2026-04-17T00:00:00Z",
  source:      "vcse" | "scanner" | "vol_engine" | "surface_anomaly" | "manual",
  type:        "inflection" | "breakout" | "divergence" | "vol_regime" | "surface_anomaly" | "funding_extreme",
  asset:       "BTC" | "ETH" | ...,
  direction:   "long" | "short" | "neutral",
  timeframe:   "4h" | "1d" | "1w",
  confidence:  0.0 – 1.0,         // calibrated probability from model
  metadata: {
    // VCSE: P_inflection, B(t), V(t), active aspects, dignity sum, jup_sat_angle
    // Scanner: pattern type, key levels, volume context
    // Vol: IV percentile, skew, term structure shape, premium dislocation
    // Surface anomaly: anomaly score, expiry bucket, strike band, data quality flag
  },
  expires_at:  "2026-04-19T00:00:00Z"  // signals have a validity window
}
Owner

Sam Market Scanner

Owns the live scanner surface, rule intent, and dashboard workflow. Senior Quant supports signal taxonomy and confidence logic; Engineer 1 supports adapter implementation where needed.

Owner

Senior Quant Signal Adapters & L1 Vol Architecture

Defines signal contracts, confidence scoring, and calibration for raw VCSE outputs, scanner outputs, and Vol Engine outputs. Owns how the L1 Vol Engine interacts with VCSE V(t), L2 confluence, and L3 trade construction.

Owner

Engineer 1 Vol Engine & Surface Anomaly Signals

Builds IV surface computation, skew analysis, term structure signals, public Deribit ingestion, volatility surface anomaly detection, and options-related L1 adapters. Also picks up small VCSE/ML implementation tasks where Senior Quant needs support.

L2

Signal Validation & Confluence Scoring

Owned by Senior Quant. The goal is not noise filtering — it's scoring the strength of agreement across all signal sources so L3 knows how aggressively to size and structure the trade. Implementation should remain contract-driven from L1 signal schemas so VCSE, scanner, and Vol Engine sources can be added without rewiring the scoring model.

Why L2 matters even at low volume: A signal from VCSE alone with P_inflection = 0.70 is interesting. The same VCSE signal combined with a scanner breakout and vol expansion might score 0.88. L2 combines these into a single confluence score that directly drives position sizing in L3. It also checks compatibility: a VCSE bearish signal combined with a bullish scanner setup flags a contradiction worth investigating before committing capital.

Confluence Scoring Model

InputInitial WeightWhat it checks
VCSE inflection probability0.22P_inflection threshold crossed; B(t) direction aligns with proposed trade
VCSE volatility regime0.13V(t) regime compatible with trade structure (expanding for directional, contracting for mean reversion)
Scanner technical signal0.22Breakout, divergence, or setup aligns with direction and timeframe
Volatility / options signal0.13IV expanding or cheap (good for directional); skew supports direction
Volatility surface anomaly0.10Surface dislocation, skew kink, term-structure inversion, or stale surface print is actionable and data-quality checked
Funding & sentiment0.10Funding rate extreme, OI structure, liquidation cascade risk
Macro alignment0.10DXY, rates, risk-on/off environment supports trade direction
Note: Initial weights above are Sam's priors based on trading experience. The L5 feedback loop will produce empirical data over time that Senior Quant uses to recalibrate these weights toward actual historical performance per source.

Validated Signal Output Schema

{
  signal_id:         "sig_20260417_vcse_001",
  confluence_score:  0.84,
  recommendation:    "high_conviction",  // high_conviction | standard | reduced | pass
  direction_consensus: "short",          // do sources agree on direction?
  conflict_flag:     false,              // true if sources disagree on direction

  components: {
    vcse_inflection: { score: 0.78, active: true,  note: "P_inflection=0.72, B=-0.41" },
    vcse_vol:        { score: 0.75, active: true,  note: "V=HIGH, tension_score=4.2" },
    scanner:         { score: 0.82, active: true,  note: "4H breakdown below support" },
    vol_signal:      { score: 0.60, active: true,  note: "Deribit public IV proxy active" },
    surface_anomaly: { score: 0.68, active: true,  note: "Skew kink in front expiry; quality flag clean" },
    funding:         { score: 0.70, active: true,  note: "Longs overfunded at 0.08%" },
    macro:           { score: 0.65, active: true,  note: "DXY strengthening" }
  },

  sizing_suggestion: "aggressive",       // aggressive | standard | reduced | skip
  trade_structure_hint: "perp_short"     // first-pass instrument suggestion for L3
}

Automation Phases

  • Phase 1 (now): L2 scores run automatically, results displayed on dashboard for Sam to review. Sam approves or rejects before proceeding to L3.
  • Phase 2: Signals scoring above 0.75 auto-advance to L3 for trade plan generation. Sam reviews and approves the trade plan (not the signal).
  • Phase 3: High-conviction signals auto-execute within pre-set bankroll limits. Sam monitors via dashboard with kill switch available.
Owner

Senior Quant Confluence Engine

Builds and maintains the scoring engine. Implements the weight model, per-source adapters, conflict detection, and the validated_signals write path. Owns weight calibration using L5 attribution data and validates the model does not introduce leakage.

Owner

Sam Weight Priors & Approval Gates

Defines initial weights based on trading experience. Defines the score thresholds for auto-advance vs manual review. Reviews and approves trade plans that flow from validated signals.

L3

Trade Construction

Given a validated signal, determine how to express the trade: which instrument, which exchange, what structure, what size. Instrument selection is driven by the VCSE V(t) regime, B(t) directional score, and available instruments per exchange.

Available Instruments

InstrumentExchangeUse CaseStatusOwner
Perpetual futuresBingX, Binance, KrakenDirectional with leverage, delta-1 exposure, primary vehicleLiveSam
SpotKraken, BinanceBasis trades (spot + short perp), lower-risk directionalAvailableSam
OptionsDeribitVol trades, hedging, defined-risk directional, premium sellingTBDEngineer 1
Basis / cash-and-carrySpot + PerpMarket-neutral funding rate captureCan buildSenior Quant

Trade Structure Decision Tree

validated_signal arrives { direction, confluence_score, V(t), B(t) }
│
├─ HIGH CONVICTION DIRECTIONAL  (score > 0.80, |B(t)| > 0.6)
│  ├─ V(t) = HIGH   → Perp (leveraged, 3–5x) + OTM option hedge (when Deribit live)
│  ├─ V(t) = MEDIUM → Perp (moderate leverage, 2–3x) + defined stops
│  └─ V(t) = LOW    → Perp (conservative, 1–2x) or spot directional
│
├─ STANDARD CONVICTION  (score 0.65–0.80)
│  ├─ Directional   → Perp (reduced leverage), tighter sizing from bankroll module
│  └─ Neutral       → Wait for stronger confluence or vol trade when Deribit live
│
├─ VOL PLAY  (V(t) signal strong, |B(t)| < 0.3)
│  ├─ Vol cheap (IV low percentile) → Long straddle / long gamma  [Deribit]
│  ├─ Vol rich (IV high percentile) → Short premium / iron condor  [Deribit]
│  └─ Skew dislocated              → Risk reversal / collar       [Deribit]
│
└─ FUNDING / BASIS PLAY  (funding rate extreme flag from L2)
   ├─ Funding positive extreme → Long spot + short perp (earn funding)
   └─ Funding negative extreme → Short spot + long perp (earn funding)

Position Sizing — Bankroll Integration

Before constructing the trade, L3 queries portfolio_state. No trade plan is generated unless bankroll rules are satisfied.

  • Available capital: Total equity minus margin already deployed across all exchanges
  • Risk budget: Max loss per trade defined as % of equity (e.g., 1.5%). Stop distance from entry determines size.
  • Concentration check: No single position may exceed the concentration limit
  • Correlation check: Existing BTC long + new ETH long = correlated exposure, treated as additive for sizing
  • Confluence scaling: Size scales with confluence score — a 0.90 signal gets full allocation; 0.65 gets 50%

Trade Plan Output Schema

{
  signal_id:     "sig_20260417_vcse_001",
  plan_id:       "plan_20260417_001",
  created_at:    "2026-04-17T08:15:00Z",
  instrument:    "perp",
  exchange:      "binance",
  asset:         "BTC",
  direction:     "short",
  leverage:      3.0,
  size_usd:      12000,
  entry_zone:    { low: 83500, high: 84200 },
  stop_loss:     85800,
  targets:       [
    { price: 79500, exit_pct: 50, note: "first target" },
    { price: 76000, exit_pct: 50, note: "full exit / VCSE window close" }
  ],
  risk_reward:   "1:2.6",
  max_loss_usd:  600,
  max_loss_pct:  1.5,
  confluence:    0.84,
  sizing_basis:  "confluence_scaled",
  expires_at:    "2026-04-19T00:00:00Z",
  status:        "pending_approval"   // → approved → executing → active
}
Owner

Senior Quant Decision Tree Logic

Builds the instrument selection logic and sizing formulas. Backtests different structure choices against historical signal data. Owns the interaction with the bankroll module.

Owner

Engineer 1 Options Construction

Once Deribit is live: options strategy selection (straddle, collar, risk reversal), strike/expiry selection logic, and options-specific sizing (premium budget, delta target). Interfaces with vol engine outputs.

Owner

Sam Rule Definitions

Defines the bankroll parameters (max risk per trade, max portfolio heat, leverage limits) that L3 queries. Approves trade plans via dashboard before L4 executes.

L4

Trade Management

Three sub-systems: Order Management (OMS), active trade management, and bankroll management. Sam owns OMS infrastructure; Engineer 1 supports L4 order-routing implementation and exchange-specific routing work; Senior Quant owns the bankroll model.

4A — Order Management System (OMS)

Build

Unified Order Router

Single Python/Node layer abstracting BingX, Binance, Kraken (and Deribit via Engineer 1). Accepts a trade plan from L3, translates to exchange-specific params via ccxt, sends, monitors fills, handles retries. Sam owns the core OMS; Engineer 1 supports order-routing implementation, adapter edge cases, and Deribit routing. Every order is written to the orders table at every state transition.

Build

Order Type Support

Market, limit, stop-market, stop-limit, trailing stop, scaled entries (split entry across price range), bracket orders (entry + stop + TP as one unit). TWAP for larger orders. WebSocket fill monitoring for sub-second state updates across all exchanges.

4B — Active Trade Management

  • Trailing stop adjustment: ATR-based or structure-based stop movement as price moves in favour
  • Partial exits: Automated execution of TP levels from the trade plan at defined percentages
  • Dynamic hedge adjustment: If vol spikes while position is open, adjust option hedge notional (when Deribit live)
  • Signal degradation monitor: If VCSE inflection window closes while trade is open (P_inflection drops below threshold), tighten management rules automatically
  • Time-based rules: If position hasn't moved toward target within N hours, apply tighter stop to avoid capital drag
  • Exchange circuit breaker: If exchange API goes down, monitor-only mode with dashboard alert

4C — Bankroll Management

The governor on everything. No trade plan executes unless the bankroll module approves it. This is the risk officer between "good idea" and "capital deployed." All parameters are defined by Sam and enforced automatically.
RuleParameterDefault
Max risk per trade% of total equity1.5% (Sam to confirm)
Max portfolio heatTotal % of equity at risk simultaneously6% across all positions (Sam to confirm)
Max portfolio leverageAggregate weighted effective leverage≤ 5x (Sam to confirm)
Max concentrationSingle position as % of capital25% (Sam to confirm)
Drawdown circuit breaker% from equity peak10% → halt new trades 24h (Sam to confirm)
Correlation limitPairwise correlation thresholdIf two positions correlation > 0.85, size as one
Confluence scalingSize multiplier by scoreScore 0.90+ = 100%, 0.75 = 70%, 0.65 = 50%
Win streak scalingModified Kelly adjustmentScale up after edge confirmed, scale down after losses
Owner

Sam OMS Infrastructure

Builds and maintains the unified order router. Manages exchange API keys, rate limit handling, geo-routing (Binance US restrictions), WebSocket connections. Monitors OMS health via dashboard.

Support

Engineer 1 OMS Order Routing

Supports L4 routing implementation, exchange adapter behavior, retry/idempotency handling, order-state edge cases, and Deribit routing integration under Sam's OMS ownership.

Owner

Senior Quant Bankroll Model

Implements Kelly / fractional sizing formula. Backtests against Sam's trade history to find optimal parameters. Builds the drawdown circuit breaker. Updates model parameters from L5 attribution data.

Owner

Engineer 1 Options Execution

Deribit-specific order management: options order types, delta-hedge rebalancing, expiry management, exercise handling. Interfaces with the unified OMS router but owns Deribit-specific logic.

Owner

Sam Risk Parameter Definitions

Defines all bankroll parameters above. These are Sam's rules — the system enforces them. Reviewed monthly using L5 attribution data and adjusted as fund AUM grows.

L5

Trade Closing & PnL Capture

Closes positions, captures full PnL with fee and funding accounting, attributes performance to signal sources, and feeds results back into L1 and L2 to continuously improve signal quality and confluence weights.

Exit Triggers

TriggerDescriptionAction
Target hitPrice reaches TP level from trade planPartial or full exit per defined %
Stop-loss hitStop triggered by exchangeFull exit, log as loss with MFE recorded
Trailing stopDynamic stop triggered after favourable moveFull exit, capture profit vs original target
VCSE window closeP_inflection drops below 0.45 while trade is openTighten management; close if marginal P&L
Signal expiryTrade plan expires_at timestamp reachedAlert Sam; close if no new signal confirmation
Time decay rulePosition open beyond max hold time with no movementReduce or close to free capital
Manual overrideSam closes via dashboardImmediate close, flag as manual in attribution
Circuit breakerPortfolio drawdown limit hitClose all positions or reduce to target heat

PnL Attribution Schema

{
  trade_id:       "trade_20260417_001",
  signal_id:      "sig_20260417_vcse_001",
  plan_id:        "plan_20260417_001",

  // Execution data
  entry_price:    84050,
  avg_exit_price: 79800,
  size_usd:       12000,
  leverage:       3.0,
  exchange:       "binance",
  instrument:     "perp",
  direction:      "short",

  // Returns
  gross_pnl:      1530.00,
  exchange_fees:  -52.40,
  funding_paid:   -18.20,
  net_pnl:        1459.40,
  return_pct:     12.16,
  risk_adjusted:  2.43,      // net_pnl / max_adverse_excursion

  // Trade quality metrics
  hold_time_hrs:   31,
  max_favorable:   5.8,      // % max move in favour during trade
  max_adverse:    -1.4,      // % max drawdown during trade
  exit_reason:    "target_1_hit",
  entry_vs_plan:  "within_zone",

  // Attribution feedback
  confluence_at_entry: 0.84,
  vcse_p_inflection:   0.72,
  vcse_direction_correct: true,
  vcse_vol_correct:       true,
  scanner_correct:        true,
  signal_source_scores: {
    vcse:    { accurate: true,  contribution_est: 0.45 },
    scanner: { accurate: true,  contribution_est: 0.35 },
    funding: { accurate: true,  contribution_est: 0.20 }
  }
}

The Feedback Loop → L1 & L2

This is the highest long-term value component of the system. Every closed trade creates data that improves signal detection and confluence weighting:

  • VCSE signal accuracy tracking: "When P_inflection > 0.70, what % of trades captured the predicted inflection?" Over hundreds of trades, this calibrates or recalibrates the model's threshold guidance.
  • Per-source win rate: Track win rate and avg risk-adjusted return per source. L2 weights update empirically toward actual performance.
  • Regime analysis: Which V(t) regime produces the best results? Which confluence score band? Refines L2 sizing suggestions.
  • Confluence threshold optimisation: What minimum score produces positive expectancy? Adjust the auto-advance threshold in L2 accordingly.
  • VCSE planetary feature importance: Closed trade outcomes feed back into the SHAP analysis, validating whether jup_sat_angle and saturn ingress features remain the top signals over time.
Owner

Senior Quant PnL Engine & Attribution

Builds the full PnL computation (gross, fees, funding), attribution model, and feedback loop. Monthly performance reports aggregating signal source accuracy and confluence effectiveness.

Owner

Sam Fund Reporting Layer

Uses attribution data for investor updates and LP reporting. "Our astro-technical confluence model: X% hit rate, Y Sharpe, Z max drawdown." PnL attribution is the quantitative narrative for fundraising.

TS

Full Tech Stack

Built on the existing dashboard (React + Python + Node hybrid). Node serves the API/WebSocket layer to the frontend; Python handles all quantitative work, exchange connectivity, and ML.

ComponentLanguageLibraries / ToolsNotes
Frontend dashboardReact (TS)Recharts / lightweight-charts, WebSocket, TailwindCSS, Radix UILive — extends with new panels per layer
API / WebSocket serverNode.jsExpress or Fastify, ws, Redis pub-sub consumerREST + WebSocket serving the React frontend
VCSE signal enginePythonpyswisseph, pandas, numpy, XGBoost, LightGBM, PyTorch (Transformer)Core of the system. Runs as daily Celery job
Market scannerPythonccxt, TA-Lib, pandasTechnical analysis scanning + signal standardisation
Options / vol enginePythonQuantLib or py_vollib, scipy, numpy, Deribit public APIEngineer 1 implementation; Senior Quant owns L1 Vol Engine architecture and calibration
Volatility surface anomaly detectorPythonscipy, numpy, pandas, robust z-scores, surface smoothingEngineer 1 builds; Senior Quant supports anomaly definitions, thresholds, and calibration
L2 Confluence enginePythonnumpy, sklearn (future ML scoring)Senior Quant — rule engine + scoring model
L3 Trade constructorPythonCustom rule engine, ccxt (exchange instrument info)Decision tree + sizing formulas
OMS / order routerPythonccxt (unified exchange API), asyncio, WebSocket clientsSam owns core OMS; Engineer 1 supports L4 order routing and Deribit-specific routing
DatabasePostgreSQL + TimescaleDB extensionStructured + time-series. All layers read/write.
Real-time cacheRedisPosition state, live metrics, dashboard feed
Task queuePythonCelery + Redis brokerBackground jobs: VCSE daily run, PnL calc, scoring
ML interpretabilityPythonSHAP TreeExplainer, Optuna (hyperparameter search)VCSE model validation and feature importance
Feature storePythonApache Parquet (pyarrow), SQLite secondaryMaster VCSE feature DataFrame persisted to disk
Backtesting validationPythonmlfinlab (purged CV), sklearn, scipyWalk-forward with 90-day embargo
RM

Build Roadmap

Five phases tracked in Linear. Each phase produces a usable, integrated system that improves on the last. Do not start a phase until its dependencies are live.

Phase 1 — Active — Target 2026-06-21

Data Backbone + Signal Standardisation

Deliverables: Postgres + TimescaleDB deployed. Redis configured. Event bus wired. VCSE ephemeris runner automated (daily Celery job → vcse_snapshots). Market scanner output writing standardised signals to event store under Sam ownership. Public-data Vol Engine adapter emitting IV/skew/term-structure signals. Volatility surface anomaly detector emitting surface-quality and dislocation signals. Dashboard health and data freshness visible.

Owners: Sam infra + Market Scanner · Senior Quant schemas/L1 calibration · Engineer 1 VCSE/ML support + Vol Engine adapter + surface anomaly detector

Linear: VIR-5, with tasks VIR-10 to VIR-19 and governance tasks VIR-45 to VIR-46.

Result: Every signal and every position flows through one system. Dashboard reads from it.

Phase 2 — Backlog — Target 2026-07-12

Confluence Scoring + Trade Plans

Deliverables: L2 confluence scoring engine live under Senior Quant ownership. L3 trade plan generator (instrument selection, sizing, entries/stops/targets). Bankroll rules enforced. Trade plans visible on dashboard for Sam to approve.

Owners: Senior Quant L2/L3 · Sam review

Linear: VIR-6, with tasks VIR-20 to VIR-27. Blocked by Phase 1.

Result: System says "here's the trade, here's why, here's the size." Sam approves or rejects.

Phase 3 — Backlog — Target 2026-08-09

OMS + Active Management

Deliverables: Unified OMS across BingX, Binance, Kraken. Approved plans execute via API. Trailing stops, partial exits, time-based rules automated. Engineer 1 supports L4 order routing and Deribit-specific routing. Sam approves plan; system executes and manages.

Owners: Sam OMS · Engineer 1 OMS routing support + Deribit (when live)

Linear: VIR-7, with tasks VIR-28 to VIR-33. Blocked by Phase 2.

Result: You approve the plan. The system executes and manages. You monitor on dashboard.

Phase 4 — Backlog — Target 2026-08-23

PnL Attribution + Feedback Loop

Deliverables: Full PnL engine (fee + funding accounting). Signal attribution by source. Feedback loop updating L2 weights. Monthly performance reports. VCSE signal accuracy validated against live trades.

Owners: Senior Quant attribution model · Sam investor reporting

Linear: VIR-8, with tasks VIR-34 to VIR-38. Blocked by Phase 3.

Result: Every trade improves the next. Investor-grade reporting. VCSE hypothesis validated or refined empirically.

Phase 5 — Roadmap — Target 2026-09-30

Full Automation + Options

Deliverables: High-confluence signals auto-execute within bankroll limits. Manual override always available. Options strategies live on Deribit (Engineer 1). ML-based L2 weight optimisation. VCSE Transformer stage in production.

Owners: All · Engineer 1 options · Sam system oversight

Linear: VIR-9, with tasks VIR-39 to VIR-44. Blocked by Phase 4.

Result: The system trades. You manage the system. Sam shifts from operator to portfolio director.

Critical path: The data backbone (Phase 1) blocks everything. Do not start production L2, L3, or L4 coding until Postgres + TimescaleDB schemas are finalised, Redis/Celery are configured, and the event bus is wired. Senior Quant should own schema definition as the first deliverable of the active milestone.