HeliQuant

Self-learning

Three layers of learning — edge discovery, desk reliability, and tactical fade.

HeliQuant learns at three layers. Losses aren't wasted — they're the training signal. The system is allowed to hold an empty validated-edge registry; promoting a dead edge would be the failure.

The loop

Every closed decision feeds back into the three layers, and each layer changes how the next decision is made — what edge is trusted, which desks are weighted, and how each trade is sized, throttled, and timed.

The self-learning loop — every outcome updates three layers that shape the next decision

Layer 1 — Edge discovery ("earn the edge")

The edge_lab tests a hypothesis library (OI-change, price-momentum, funding, order-flow imbalance × contrarian/momentum) against an asset's real perp history under one gate:

  • cost-aware out-of-sample (round-trip ~20 bps: fee + spread + slippage),
  • 5-fold walk-forward,
  • outlier-robustness (drop the single best fold — the edge must still hold),
  • Benjamini–Hochberg FDR correction (kills best-of-N false positives).

An edge graduates to validated_edges.json (gates real aggression) only when earned across folds; otherwise it sits in candidate_edges.json on probation, requiring confirmation on consecutive new-data cycles. Today the validated registry is empty — on NEAR the edge lab found nothing that clears the gate (Finding #5). candidate_edges.json holds one older SUI funding-fade entry that still awaits fresh-data proof.

An edge's lifecycle — earned across folds, confirmed on new data, demoted when it decays

Layer 2 — Desk reliability

desk_performance scores the stance of the nine directional voices (all but Carry, NEAR Fundamentals and TimesFM) vs realized direction and assigns a reliability weight 0.6–1.4 (≥15 samples, else neutral). The PM weights proven desks heavily and discounts unreliable ones — fighting "too many desks = noise". Weights are an advisory prior; the gates still bind.

Layer 3 — Tactical re-map (the live floor)

The continuous campaign learns run-to-run — and it acts on what it learns by changing size, frequency, and hold-time, concentrating capital on what works and starving what bleeds:

  • cond_record — every closed trade dials a condition's throttle; a condition with a proven-losing record in that regime trades at half size (regime-aware: a short that bled in an up-market isn't penalised in a down-market).
  • failed_conditions — a losing round benches a condition with a TTL (forgiven later, so it can re-learn).
  • asset-performance ladder — capital and frequency tilt to what works: a cold asset (losing record) trades half size and opens only 1 of 3 steps; a deep-cold one is benched (periodic probe); a warm asset is boosted — 1.3× for a decent proven record (≥55% win, ≥8 trades), 1.6× for a strong one (≥66% win) — always capped below the 2× reserved for a validated edge. (A hot recent record earns more capital; it is not mistaken for an edge.)
  • calibrated TP/SL — TP/SL distances are measured per asset from realized excursions (Maximum Favourable / Adverse Excursion), not guessed. The old fixed 2.5×-ATR TP was reached by only 0–21% of trades — so a reachable, per-asset TP replaced it (scripts/95).
  • trailing stop — a trend-follow trade ratchets its stop toward price so a genuine run isn't capped at a fixed TP; contrarian/fade trades keep a fixed TP (meant to snap, not run).
  • dynamic horizon — the hold-time adapts to the setup type: a trend-follow trade gets room (HORIZON_TREND_H = 4h, with a trailing stop + near-TP lock managing the runner), a contrarian/fade is short (3h, it snaps fast or the thesis is wrong), a validated edge runs (24h).
  • clear-trend gate — the floor only trades a clear trend, aligned to it; a flat/ambiguous regime abstains, and a counter-trend signal flips to the trend-following side.
Tactical layer — each closed trade re-maps size, frequency, and hold-time per asset and condition

Learning from abstention (it learns even when it doesn't trade)

Most systems learn only from trades. HeliQuant also scores its abstentions: when the clear-trend gate declines a setup, it logs a shadow of the would-be trade and judges it at its horizon against real price — was abstaining right (the skipped trade would have lost) or wrong (it would have won)? Aggregated per gate (shadow_record, surfaced on /campaign as shadow_learning), this turns idle and cooldown time into signal: the firm measures whether its own discipline actually pays, and can tell an over-restrictive gate from a protective one. It's scored against real candles, so it isn't self-flattery.

Abstention scoring — the firm judges the trades it declined, so even saying no teaches it

The honest spine

Promote on evidence, confirm before you trust, demote when it decays. That's the line between self-learning and self-deception. New hypotheses — including ML — must out-earn the gate; none gets a free pass.

On this page