AKVA
Conversations
User
Signed in as
Confusion Matrix i
TP — TAKE + Win
FP — TAKE + Loss
TN — AVOID + Loss saved
FN — AVOID + Win missed
Feature Importance (SHAP) i
By Direction i
Validation Stability i
NQ CME
Timeframe
1m
5m
15m
30m
1h
4h
1D
1W
1M
Chart type
Candles
Bars
Line
Area
Baseline
Overlays
Oscillators
Saved Layouts
Chart layout
1 chart
2 charts
4 charts
NQ O H L C Vol
Loading bars…
Symbol search
Change interval
Type minutes (5), H for hours (2H), or D / W / M (1D, 1W, 1M). Enter applies.
Text
Go to date
Chart settings
Up color
Down color
Powered by TradingView · Databento CME

Signals

Signal History & Model P&L
auto-populated from paper trading
DateLongShortModel P&LLabel
Loading…

Launch Training

Configure training mode, select a strategy, and submit a new training job

Strategy
Training Mode
Manual
Snapshot
Manual selection of indicators from the indicators library.
Feature Set — Indicators Library
Select indicators to include in this training run:
13 / 13 selected
Queued…
Waiting for worker…

Training History

Loading runs...

All Runs
Strategies
Select a strategy to view details

Playback

Simulate strategy execution on historical days using tick data from S3

Setup
Strategy
Date Range
New Strategy
Fork an existing strategy or import a Python script
Any strategy in the directory can be the base — original or custom.
Journals and runs are NOT inherited. The new strategy starts fresh and accumulates its own execution data independently from the base.
i
TP
FP
TN saved
FN missed
Loading…

Library

Living documentation of the methodology in production. Working rule: every structural change to the platform must update this page in the same release.

What this platform does
The primary strategy (GFPB) decides when and which side to trade. The trained meta-model answers a different question, continuously: P(win | market state right now) — the probability that the open (or proposed) trade ends in profit, given what the market is doing at this instant. That probability drives the confidence dial (TAKE / REVIEW / AVOID) and the suggested bet size. The model never invents trades and never bets against the primary signal — it filters and manages.

The pipeline below is the machine that produces this model honestly. Its defining property: it is built to say "no edge" when there is none. Every stage exists to remove a specific source of self-deception.
Stage 1 — Market data
Single source of truth: tick-level trades from Databento (price, size, nanosecond timestamp), stored per day as compact parquet files, one folder per strategy. Everything downstream is computed from these ticks at the moment of use — there is no pre-baked OHLC layer that could hide lookahead or resampling bias. Timestamps are kept at nanosecond precision end to end (real bursts of fills share microseconds; rounding them corrupts bar identity).
Stage 2 — Event clocks & bars
A clock decides when the market gets sampled. Calendar time is a bad clock — nothing guarantees information arrives once a minute. Information-driven clocks sample when the market has actually done something:
ClockA new bar closes every…Use
time_gridN minutesbaseline / compatibility
tick_barsN tradesactivity-paced sampling
volume_barsN contracts tradedflow features, VPIN
dollar_bars$N tradednotional-paced sampling
cusumcumulative move beyond a thresholdevent-triggered decisions
Bars are always built causally: a feature computed at decision time t only ever sees bars fully closed before t. The same bar-building code serves training, replay and live — no train/live asymmetry.
Stage 3 — Snapshot dataset
For every historical trade and every decision point of the strategy clock while that trade was open, one row is created: the market-state features at that instant, plus the label — did this trade end in profit? A 3-hour trade sampled every 15 minutes yields ~12 snapshots, teaching the model what dying trades and paying trades look like mid-flight, not just at entry.

Snapshots of the same trade are near-duplicates, so each row carries a uniqueness weight: the more its lifetime overlaps other snapshots, the less it counts. Without this, one long trade would masquerade as dozens of independent observations and every statistic downstream would be overconfident.
Stage 4 — Feature grammar
Features are not hand-picked indicators; they are generated by a grammar: primitive × transform × clock. Example: signed_flow . zscore(15) @ volume_bars(4000) = "how unusual is the current net order flow, in units of its own recent variability, sampled every 4000 contracts".
Primitive (what is measured)Meaning
close / range / body_ratio / close_posprice level and bar geometry
log_returnbar-to-bar price change
volume / n_tradesactivity per bar
signed_flowbuy volume − sell volume (tick rule): net aggressor pressure
volume_imbalance|buy − sell| / total; averaged on volume bars this is VPIN (informed-trading intensity)
Transform (how it becomes a number at time t)Meaning
raw / ret(k) / mean(n)last value, k-bar change, n-bar average
zscore(n) / rank_pct(n)how unusual vs the last n bars (scale-free)
fracdiff(d)makes a price series stationary while keeping most of its memory
shannon_entropy(n) / lz_complexity(n)how random vs structured the recent up/down path is
cusum_stat(n)structural-break intensity: is the window drifting away from its own mean?
The full cartesian product is the candidate universe. Its size is recorded and later charged as the trial count in the DSR (Stage 7) — testing many features is allowed, hiding that you did is not.
Stage 5 — Validation: day-purged CV with embargo
The dataset is split into folds by whole trading days: every snapshot of a test day is scored by a model that never saw that day. Days immediately after each test block are also excluded from training (embargo) because market features are serially correlated — yesterday leaks into today. Fits use the uniqueness weights from Stage 3.

Every headline metric on this platform is out-of-fold: produced by a model that never trained on the data being scored. In-sample numbers are never reported.
Stage 6 — MDA feature gate
Before the final model is fit, each candidate feature is permuted (shuffled) in the test folds. If scrambling a feature does not hurt out-of-sample performance, the feature was noise — it is dropped. A feature survives only if permuting it hurts on average and consistently across folds (t-stat > 1). This is measured strictly out-of-sample — importance measured on the training fit (e.g. in-sample SHAP) flatters noise and is not used for selection anywhere in the pipeline.
Stage 7 — Metrics, and how they are kept honest
MetricPlain meaning
AUCpick a random winner and a random loser: probability the model ranked the winner higher. 0.50 = coin flip, 0.60 = weak-but-real, 0.70+ = suspect leakage.
Entry-gate AUCthe same, measured only at signal time — can the model pick trades before they start?
Intraday AUCmeasured across the whole life of trades — can the model tell dying trades from paying ones mid-flight?
PF vs baselineprofit factor of the filtered trades vs taking everything. Equal PF = the filter adds nothing.
PSRprobability the true Sharpe of the fired-trade stream is above zero, given skew/fat tails.
DSRthe same question, but the bar is raised to "better than the best of the N feature specs we tried". DSR ≈ 0 means: after paying for the search, indistinguishable from luck.
Stage 8 — Designation & bet sizing
P(win) is discretized with hysteresis: probability above the tuned threshold → TAKE; below the lower threshold → AVOID; between → REVIEW. Leaving a state requires crossing the band by an extra margin, so a probability jittering around a threshold cannot whipsaw the signal bar after bar.

Bet size is continuous: zero exactly at the TAKE threshold, growing with the edge, saturating near 1 (statistically: size = 2·Φ(z)−1 with z the distance of P(win) above the threshold in its own units). Suggested contracts = size × configured cap, and only while the designation is TAKE. Designation decides on/off; probability decides how much.
Stage 9 — Promote & live stream
Each completed run persists a self-contained bundle: per-side models + everything needed to reproduce its decisions (clock, features, thresholds, cap). Promoting a run makes it the active bundle: the live runner then scores every new decision point during the session with exactly the same code path used in research, and publishes the stream (probability, designation, size) that feeds the Overview dial. Replay of a day and live scoring of the same day produce identical values by construction.
When is a model actually good? The validation ladder
StepQuestionKills most candidates?
1. Training fitdid it learn the sample?never — everyone passes; means nothing
2. OOS signalstable AUC > 0.5 across purged folds and specifications?yes
3. Deflationdoes it survive the DSR after paying for every spec tried?yes
4. Economicsdoes acting on it beat costs (slippage, spread, commissions)?often
5. Live paperdoes it hold on data nothing in the pipeline ever saw, with success criteria fixed in advance?sometimes
6. Capitaldoes it survive its own execution and size, with a pre-agreed kill switch?the final judge
An edge is never proven — only not yet refuted. Monitoring never stops.
Model promotion protocol — challenger vs incumbent (pre-registered Jul 9, 2026)
The promoted run is a frozen snapshot; live days accumulate as pure out-of-sample evidence. Learning is continuous in the data and discrete in the model: candidates are periodic retrains of the same recipe, judged against the incumbent by the criteria below. These criteria were fixed before any challenger was scored and may only be revised between — never during — evaluations. Every evaluation is recorded: date, incumbent, challenger, numbers, verdict, and the decision taken.
ChallengerA retrain of the incumbent's frozen feature grammar and hyperparameters over the updated dataset. Never a fresh spec search — reopening the search reopens the trial count and would require re-deflating DSR.
TriggersLabel materiality (≥1% of rows changed or ≥5 meta-label flips), a structural-break alarm on live performance (CUSUM), or a pre-declared data milestone (+60 labeled sessions). Nothing else.
EvaluationCPCV — combinatorially purged cross-validation with embargo, producing a distribution of backtest paths. Walk-forward single-path is accepted only as a final sanity check, never as the decision basis.
C1 — SignalChallenger median intraday AUC across CPCV paths ≥ incumbent − 0.01, on both sides (L/S).
C2 — DeflationChallenger DSR ≥ incumbent DSR, computed at the inherited trial count (a frozen recipe adds no new trials).
C3 — DriversAt least half of the incumbent's top-5 MDA features remain in the challenger's top-5 per side. A radical driver shift blocks promotion pending investigation.
C4 — RobustnessNo CPCV path with AUC below 0.50 on the traded side (no path where the model is anti-predictive).
VerdictRECOMMEND only if C1–C4 all hold. Promotion is always a human decision. Promoting resets the live out-of-sample clock: the step-5 trade counter below restarts from zero.
Step-5 paper trading — pre-registered acceptance tests (sample: 40–60 live trades)
Test A — the signal exists liveTrades downgraded to AVOID mid-flight show worse remaining PnL than trades kept TAKE — the trained separation (AUC ≈ 0.60) must reappear in new data.
Test B — the signal paysPnL of the “exit on AVOID” policy ≥ holding to the original exit, net of costs, by a margin distinguishable from noise.
Test C — no pathologyNo designation whipsaw (hysteresis holds) and no gap between the nightly replay and the live stream.
Labels stay uncontaminated because the primary strategy fires regardless of the model's designation. If the model ever gates real executions, a shadow record of every signal must be kept — otherwise new labels inherit selection bias.
Macro context features — pre-registered spec v1, NQ only (approved & frozen Jul 11, 2026)
Hypothesis: macro context predicts when the primary strategy fails — regime, not direction. The 12 candidate columns below were fixed BEFORE any evaluation; windows are declared, never optimized. Sources are the training-grade series of the platform context store only (first-print vintages for macro, release-date joins, COT publication lag modeled). Revised histories are forbidden in training. This list is instrument-specific: other instruments require their own spec.
evt_high_day1 on sessions with a HIGH-impact release (CPI, FOMC, NFP) — release-day microstructure is anomalous; the continuation edge may invert.
evt_mins_to_highMinutes from the entry window to the next HIGH release (capped at 2 sessions) — liquidity dries up ahead of events; nearby entries face worse fills and stop-outs.
evt_megacap_day1 when a top-10 NDX weight reports today or after yesterday's close — an 8%-weight earnings print is an index event of FOMC caliber.
vol_vxn_pctlVXN close percentile over 60 sessions — a high-vol regime changes the effective distance of TP/SL.
vol_vix_slopeVXN − VIX spread — tech-specific fear decouples NQ from the broad tape; breakout follow-through suffers.
rate_2s10s2s10s treasury spread — the easing/tightening regime alters NQ open-session behavior.
rate_2s10s_d2020-session change of 2s10s — fast curve moves mean macro repricing in progress; trend days more likely.
pos_cot_zCFTC leveraged-funds net, z-scored over 52 weekly reports, joined with the 3-day publication lag — extreme positioning is squeeze fuel.
pos_cot_d4w4-report change of leveraged net (same lag) — fast de-grossing marks unstable regimes.
sur_nfpLatest NFP first print minus the median of the prior 12 first prints, active until the next release — labor surprises re-price rates and risk for days.
sur_cpiLatest CPI YoY first print minus the prior first print, active until the next release — inflation surprises drive the Fed path, NQ's dominant macro driver since 2022.
usd_d2020-session change of the broad USD index (first-print series) — fast dollar moves proxy global risk appetite.
EvaluationONE pre-declared run: the incumbent's frozen recipe + these columns in the MDA-gated candidate pool, judged by CPCV under the promotion protocol (C1–C4) with the inherited trial count +1. Pass → normal promotion flow. Fail → all 12 candidates are dead; no re-transformation or window tuning inside this spec.
Future intentOptions flow (put/call, 0DTE share, gamma proxies) and analyst-consensus surprises are registered as successor-spec material (v2, +1 trial), gated on a point-in-time data source.
Documentation changelog
VersionDateMethodology change documented
v4.0.71Jul 13, 2026Journal: the $/% unit toggle now also applies to the Trade Log P&L column; the CSV/PY/TRN/LIVE source filter is available on all three sub-tabs (kept in sync, and the Equity Curve now redraws when it changes); thinner Equity Curve lines (the per-trade point markers made the lines look coarse).
v4.0.70Jul 13, 2026Journal top bar now keeps a constant size across all sub-tabs and filters, matching the default Calendar "All" view: switching to Equity Curve or Trade Log no longer collapses the bar or slides the filter controls left, and the Baseline/Model filters no longer shrink it by 8px.
v4.0.69Jul 13, 2026Major performance fix: the animated globe on the login screen kept rendering invisibly after login on every page load, consuming an entire CPU core on machines without GPU acceleration (VPS/RDP) and starving the page of responsiveness. The globe now loads only while the login screen is actually visible and is fully unloaded afterwards.
v4.0.68Jul 13, 2026Instant boot: the Overview now paints the last known model snapshot from local storage synchronously at page load -- the promoted model is surface-level information and no longer waits for any network round-trip. Fresh data still loads in the background and re-renders on arrival. The footer also now reports when the browser itself is throttling the tab (seen on VPS/RDP setups), so degraded environments identify themselves on screen.
v4.0.67Jul 13, 2026Fixed the calendar P&L parsers reading the thousands separator as a decimal point: Week 1 showed -$7 instead of -$7,010 and the weekly MDL showed $6.46 instead of $6,460. Dollar amounts now parse digits-only (locale-proof); %-mode keeps decimal semantics. Also fixes week overflow sums, day-cell colouring and cached adjacent-month P&L transitively.
v4.0.66Jul 13, 2026Fixed the same missing “-” sign in the Trade Log P&L column (global fmt helper): losses rendered as “$5,050” in red with no minus sign. Audited every fmt call site — FN/TN cards and the Economics/date formatters are unaffected.
v4.0.65Jul 13, 2026Fixed the weekly card’s model (MDL) P&L: negative weeks now show the “-” sign (previously only the colour changed), and the number no longer gets clipped when the trade-detail panel narrows the WK column — it stays on one line and auto-shrinks to fit any viewport width.
v4.0.64Jul 13, 2026Removed the version flash at boot: the footer carried a hard-coded v1.93 from the v1 era and a legacy v2-era script still forced v2.01 into the same element before the real version setter ran. The static footer now renders empty until the current version is written milliseconds later -- no stale version ever appears.
v4.0.63Jul 13, 2026Fixed: the trade detail panel’s P&L header showed only the first leg of a multi-leg trade (e.g. $1,000 instead of the full $1,400) while the day cell, the weekly total and the panel’s own Legs table correctly showed the trade total. The header now sums the day’s legs, matching every other surface.
v4.0.62Jul 13, 2026Failed data requests now report their network phases (connection, send, first byte) directly in the model picker and console -- equivalent to the DevTools Timing panel, readable from a screenshot, pinpointing exactly which network layer swallowed the request.
v4.0.61Jul 13, 2026Transmitter: new Test Entry button per subscriber sends a REAL market buy signal (with confirmation) so the full signal-to-order path can be proven on a paper account; the receiver's subscription sizing decides the quantity. The plain Test stays the harmless flatten and doubles as the way to close the test position.
v4.0.60Jul 13, 2026Authentication now travels as a short-lived query parameter converted back into the standard authorization header at the CDN edge. Browsers and network stacks that stall requests carrying large headers no longer affect the platform -- every request the browser sends is now indistinguishable from a plain page asset request.
v4.0.59Jul 13, 2026Built-in boot diagnostics: if the model list request is still pending after 8 seconds, the page probes the same endpoint without credentials and with a minimal token and shows the results in the model picker, pinpointing which network layer is stalling the request.
v4.0.58Jul 13, 2026All API calls now go through the site's own domain (/api) instead of a separate API host. This removes the CORS preflight round-trip from every request -- snappier tab switches and data loads -- and makes the platform resilient to browser or network layers that mishandle cross-origin authorized requests.
v4.0.57Jul 13, 2026The browser tab is now titled simply AKVA -- the version string moved out of the tab title and remains visible in the sidebar footer.
v4.0.56Jul 13, 2026Hard timeouts on every boot-path network call: an API request that never settled used to freeze the page forever with no error shown anywhere (the in-flight deduplication then handed the same stuck request to every retry, defeating them). API calls now abort after 20 seconds and token refresh after 10, converting hangs into ordinary errors that the existing retry, re-arm and visible-error machinery handles. The model picker also shows 'Loading models...' from the first moment instead of a silent dash.
v4.0.55Jul 13, 2026Boot failures are now visible on the page: when the models fetch fails at load time, the model picker shows the actual error ('LOAD FAILED: ... - retrying') instead of a silent dash, and an empty models response -- previously treated as success, leaving the page blank forever -- is now retried every 10 seconds and labeled 'NO MODELS RETURNED - retrying'.
v4.0.54Jul 13, 2026Boot resilience: a single transient failure of the models fetch at page load used to leave the dashboard permanently empty (blank model picker, no data, no error shown). The boot loader now retries transient failures with backoff (3 attempts, 1s/3s) and, if the network is truly down, re-arms itself every 10 seconds until it succeeds -- data arrives late instead of never. Auth failures still route to the login screen immediately.
v4.0.53Jul 12, 2026Economics gained an Options (Gamma) sub-tab: NQ Call Resistance, Put Support, HVL/gamma-flip, Net GEX and 1-day expected move, computed daily by an in-house Black-76 options-gamma engine (calibrated against real MenthorQ levels) and backfilled from 2022. Same 5 metrics are also selectable as indicators on the Live Market chart and in manual training (status: experimental, declared market-structure context features per the pre-registration rule, not auto-swept by MDA).
v4.0.52Jul 12, 2026Hotfix: v4.0.51's Journal lazy-load broke the Overview's Precision/Recall/F1 (showed 0.0% even though the confusion-matrix counts were correct) -- refresh() computes those from the same trade data Journal renders, so it needs Journal's data fetched at boot even though Journal's own heavy DOM stays deferred. Journal's data now loads at boot again (cheap, JSON only); the ~72k-node calendar/chart/table build still only happens when you actually open the tab.
v4.0.51Jul 12, 2026Performance: Signals and Journal no longer render at boot for sessions that never open them -- measured 72k+ DOM nodes (86% of the page) were being built for Journal alone on every single load regardless of which tab you actually wanted. Both now initialize on first visit, same as before but only when asked for. The Signals live-confidence poll also stops when you leave the tab instead of running in the background for the rest of the session.
v4.0.50Jul 12, 2026Performance: tab switches and the initial load no longer refetch data that was already in flight or fetched moments ago. The generic API client and the Live Market bars loader now dedupe concurrent identical requests and cache GET responses for a short window, cutting the reload tax every tab click used to pay and the duplicate concurrent bars calls the boot sequence used to fire.
v4.0.49Jul 12, 2026Grid layout fix: secondary chart panes no longer stay blank (they were sized before being attached to the page). Redesigned to match TradingView's multi-chart behavior - panes show their instrument as an in-chart label instead of their own selector; clicking a pane focuses it, and the top toolbar's symbol/timeframe controls now act on whichever pane is focused. Secondary panes also retry briefly on a transient data-provider error instead of staying empty.
v4.0.48Jul 12, 2026Live Market chart layout: a new grid button (top-right toolbar) switches between 1, 2, or 4 charts side by side. The primary chart keeps every drawing tool, indicator, and execution marker unchanged. Secondary panes are independent mini-charts with their own instrument and timeframe pickers (candles + volume, refreshed periodically while the market is open) - useful for comparing instruments at a glance. Layout and each pane's selection are remembered across reloads.
v4.0.47Jul 12, 2026Live streaming now follows the selected instrument: the chosen symbol is carried on the live WebSocket connection, and the stream subscribes to it (previously the live feed always showed NQ regardless of the chart symbol). Takes effect when the market is open.
v4.0.46Jul 12, 2026Fix: switching instruments no longer leaves the previous symbol’s strategy markers on the chart while the new data loads, which had pinned the price scale to the old level; the markers are now cleared the moment you switch.
v4.0.45Jul 12, 2026The chart is no longer locked to NQ. Click the instrument at the top-left to open a TradingView-style symbol search and switch to any CME future (E-mini S&P, Dow, Russell, crude, gold, currencies, treasuries, grains, micros and more, plus free-text for any GLBX symbol). Historical data loads for the chosen instrument; strategy plots stay on NQ. Live streaming still follows NQ until the stream honors the symbol.
v4.0.44Jul 12, 2026New sidebar tab icons: Live Market (candlesticks), Kitchen (flame), Signals (signal bars), Journal (calendar) and Economics (dollar) are now line icons in the house style instead of unicode glyphs — monochrome, following the sidebar color and turning blue on the active tab.
v4.0.43Jul 12, 2026Fix: the Save button now actually turns blue when there are unsaved changes (the previous accent variable resolved to grey in this theme).
v4.0.42Jul 12, 2026Top-right toolbar matched to TradingView: Search, Settings and Fullscreen are now icon buttons (with tooltips) instead of text words, separated from the layout control by a divider; the layout dropdown is now labeled Save and turns blue when there are unsaved changes since the last saved layout.
v4.0.41Jul 12, 2026Three remaining TradingView utilities: a Zoom-in cursor (drag a box to zoom the time axis to it), an Icon tool with an emoji picker in the Annotation group (pick one, then click to place), and a Snap-to-indicators toggle in the magnet flyout so the magnet also snaps to overlay indicator values on the bar under the cursor.
v4.0.40Jul 11, 2026Patterns & Elliott pack (14 tools), closing the TradingView drawing audit: XABCD, Cypher, ABCD, Triangle, Three drives and Head-and-shoulders patterns; Elliott impulse (12345), correction (ABC), triangle (ABCDE), double combo (WXY) and triple combo (WXYXZ) waves — each a fixed-count multi-click that auto-completes with labeled vertices; plus Cyclic lines, Time cycles and Sine line. New Patterns group on the left toolbar. Every drawing tool from the TradingView left panel is now mirrored.
v4.0.39Jul 11, 2026Annotation pack (10 tools): Text, Anchored text, Note, Anchored note, Signpost, Callout, Comment, Price label, Price note and Flag mark, in a new Annotation group on the left toolbar. Clicking places the annotation and opens a text dialog (Enter confirms, Shift+Enter adds a line); Flag and Price label commit instantly. Anchored variants stay pinned to the screen through pan and zoom. Selected annotations gain an Edit button on the floating toolbar.
v4.0.38Jul 11, 2026Shapes pack, part 2: Brush and Highlighter (freehand drawing by dragging — the chart does not pan while stroking), plus Path and Polyline (click-by-click vertices; click the last point again or press Enter to finish, polyline closes with a translucent fill). Strokes are movable, clonable, persisted and undoable like every other drawing. The Shapes group now matches the TradingView inventory.
v4.0.37Jul 11, 2026Shapes pack, part 1 (12 tools): Arrow, Arrow marker, four directional arrow marks (one click), Rotated rectangle, Circle, Ellipse, Triangle, Arc (circular through three points), Curve and Double curve (bezier). Translucent fills follow the tool color; every shape gets the full live-drawing treatment. The Shapes flyout now lists Arrows and Shapes sections in TradingView order. Brush, Highlighter, Path and Polyline follow in part 2.
v4.0.36Jul 11, 2026Chart loads in two phases: the first paint requests only 3 days (seconds even when the market-data provider is slow) and the remaining history streams in through the on-demand chunk loader in the background, with executions reloaded for the full window. Fixes the long blank-chart waits caused by single large data requests hitting provider latency spikes and the API gateway 30s cap.
v4.0.35Jul 11, 2026Forecast pack: Long and Short position (one-click risk/reward boxes with target/stop zones, draggable edges and live RR label), Price range, Date range and Date-and-price range measures, and Anchored VWAP recomputed from the anchor bar on every update. New Forecast group on the left toolbar with its own flyout, placed in TradingView order (the Shapes group moved after Gann & Fib to match TV).
v4.0.34Jul 11, 2026Gann & Fibonacci pack, part 3 — Gann box, Gann square (with diagonals) and Gann square fixed (pixel-true 1:1 square). The Gann & Fib group now matches the TradingView inventory completely: 11 Fibonacci tools plus 4 Gann tools, all live drawings with the full selection/drag/clone/persistence/undo treatment.
v4.0.33Jul 11, 2026Gann & Fibonacci pack, part 2 — the curved tools: Fib circles, Fib spiral (golden logarithmic), Fib speed resistance arcs and Fib wedge. Same live-drawing treatment as every other tool: preview, selection, anchor drag, body move, clone, persistence and undo; ring hit-testing selects them anywhere on a curve. Gann & Fib group is now 12 of 15 tools; the three Gann boxes remain.
v4.0.32Jul 11, 2026Gann & Fibonacci pack, part 1 (7 new tools): Trend-based Fib extension, Fib channel, Fib time zone, Fib speed resistance fan, Trend-based Fib time, Pitchfan and Gann fan. All are live drawings: rubber-band preview, selectable with draggable anchors, movable by bar index, clonable, styleable from the floating toolbar, persisted and undoable. Time tools follow logical bar index so weekend gaps do not bend them. The Gann & Fib flyout now lists the group in TradingView order.
v4.0.31Jul 11, 2026Sign-in screen, round two: the subtitle line is gone, the platform mark is now tinted to the exact wordmark color (CSS mask over the logo), and the background hosts the Terra Girando animation — a self-contained canvas page served alongside the app and embedded behind the auth card, so it shares no code with the dashboard.
v4.0.30Jul 11, 2026Volume is no longer hardcoded: it is now a first-class indicator with its own chip (eye to hide/show, X to remove), re-addable from the top of the Indicators menu, with state persisted. It stays on by default.
v4.0.29Jul 11, 2026Daily/weekly/monthly robustness: interval unit is now inferred from the canonical values (1440=1D, 10080=1W, 43200=1M) when legacy callers such as saved layouts pick a timeframe without one, the initial-load day budget guards on the timeframe itself, and an inconsistent persisted unit is sanitized at boot. Fixes the 503 retry loop and the "24h" label seen right after v4.0.28.
v4.0.28Jul 11, 2026Hotfix for daily/weekly/monthly intervals: switching to 1D/1W/1M no longer requests months of 1-minute data in a single call (which timed out at the API gateway); it now loads the standard initial window and extends history in chunks through the same on-demand loader the range presets use. Range-preset status text also honors D/W/M labels.
v4.0.27Jul 11, 2026Sign-in screen rebranded to AKVA: the auth card now carries the platform mark and the Barlow wordmark used in the topbar. The browser tab gains a favicon — the Vector mark on a black square — and the tab title now reads AKVA Dashboard.
v4.0.26Jul 11, 2026Sidebar flyouts now scroll and clamp to the viewport on small screens instead of overflowing. The Change interval dialog and the TF menu gain daily, weekly and monthly intervals (1D/1W/1M, plus 4h) aggregated by CME trade date (the 18:00 ET session belongs to the next day; weeks start Monday, months are calendar). Top toolbar restyled to match TradingView: flat borderless buttons and curved-arrow Undo/Redo icons.
v4.0.25Jul 11, 2026The left toolbar now mirrors the original exactly: the pre-revamp standalone buttons that TradingView does not have (horizontal line, vertical line, lone rectangle, clear-all, fit) are gone — those tools live in their proper flyouts and context menus; Rectangle became the Geometric shapes group and Fib the Gann & Fibonacci group (their flyouts grow with the coming packs); and a Stay-in-drawing-mode toggle arrived with the original behavior as default: tools disarm after each drawing unless pinned. Typing any number on the chart opens the Change-interval dialog (minutes, or a number plus H for hours; live hint, Enter applies) — the fastest timeframe switch. The top toolbar was reordered to the original layout after a full re-sweep of its menus (interval list runs to 12 months, chart types to Heikin Ashi): symbol, interval, type, indicators and undo/redo on the left; platform toggles, Layouts, Search, a Settings button (the dialog was right-click only) and a new Fullscreen control on the right.
v4.0.24Jul 11, 2026Pitchforks — the audit re-check (scrolling every flyout to its true bottom this time) surfaced a PITCHFORKS section the first pass missed. The line-tools flyout now carries all four, TradingView order: Pitchfork (three clicks — handle, then the two prongs; median through the midpoint with parallel tines and a translucent fan), Schiff and Modified Schiff (shifted handle variants) and Inside pitchfork (half-width tines). Three draggable anchors each, rubber-band previews on both stages, hit-testing along all three extended lines, floating-toolbar editing, clone, persistence, layouts, undo/redo and palette entries. The trend-tools group is now truly 17/17.
v4.0.23Jul 11, 2026Signals layout: the Stream/Transmitter sub-tabs moved into the section header as a compact segmented control next to the title, removing the dedicated row added in v4.0.16 — the Stream timeline is back above the fold with no scrolling, as before.
v4.0.22Jul 11, 2026Daily-use drawing infrastructure, straight from the audit: a Measure tool (M) — two clicks show price delta, percent, bar count and duration in a direction-colored box, ephemeral by design; a Magnet with weak/strong modes that snaps drawing points to the nearest OHLC of the bar under the cursor (weak within ~12px, strong always) across creation, previews and anchor drags; Lock all drawings (existing drawings become untouchable and the chart pans over them); and Hide all drawings (everything vanishes without deleting and comes back, surviving reloads — arming any drawing tool unhides). All four live on the left toolbar with persisted state, the magnet with its own weak/strong flyout.
v4.0.21Jul 11, 2026Trend tools complete — an icon-by-icon audit of the original showed the line group with 13 tools and ours with 6; the missing seven arrived: Info line (price/percent/bars/angle label on the line), Trend angle, Horizontal ray, Regression trend (linear regression of closes over the picked range with ±2-deviation bands, recomputed live and re-rangeable by dragging its ends), Flat top/bottom and Disjoint channel (both three-click, four-anchor editing on the disjoint). The flyout now mirrors the original exactly — LINES and CHANNELS sections, TradingView order, shortcuts shown (new: C for Crossline). Every new tool has rubber-band previews, selection handles, dragging, the floating edit toolbar, clone, persistence, layout membership, undo/redo and command palette entries.
v4.0.20Jul 11, 2026The flyout arrow on the cursor and line-tool buttons is now actually visible: instead of an 8px triangle tucked into the bottom corner, hovering the button reveals a TradingView-style chevron tab attached to its right edge, vertically centered, with its own background, border and hover state.
v4.0.19Jul 11, 2026Cursor types, TradingView-style: the cursor button became a group with a hover-arrow flyout offering Cross (crosshair), Dot, Arrow and a working Eraser — clicking any drawing with the eraser deletes it (one undo step), and the chosen cursor changes the actual pointer on the chart and persists across sessions. Group buttons now morph their icon to the selected tool like the original: the cursor button shows cross/dot/arrow/eraser and the line-tools button shows trend/ray/extended/cross-line/channel, tooltips included; both flyouts gained per-tool icons.
v4.0.18Jul 11, 2026Drawings are no longer fenced in by the last bar: the chart library returns no time for the empty space to the right of the data (and no coordinate for times that are not bars), which silently blocked drawing into the future — on a weekend nothing could be placed past Friday's close. Every drawing tool now converts between time and screen position through the logical bar index, extrapolating one timeframe interval per slot beyond the edge and interpolating inside session gaps — so lines, channels, rects and fibs can be drawn, dragged and cloned into the future, drawings that land inside weekend gaps stay visible, and anchors placed in the future resolve onto real bars automatically when the market reopens.
v4.0.17Jul 11, 2026TradingView parity, pack three — drawings became draggable and the line-tool family grew. Grabbing a drawing near an anchor moves that anchor; grabbing its body moves the whole drawing (time shifts by bar index, so weekend gaps do not bend lines); horizontal lines drag by price, vertical lines by time, crosses by both — the chart never pans while a drawing is being dragged, the cursor signals grabbable drawings, and every drag is one undo step. New tools in a TradingView-style flyout on the trend-line button (hover arrow): Ray, Extended line, Cross line and Parallel channel (three clicks: base, then width), all with rubber-band previews, full editing (color/width/style), clone, persistence and palette entries. The button remembers the last line tool used.
v4.0.16Jul 11, 2026Signals gained a Transmitter sub-tab: the platform now relays live entries and exits as TradersPost-dialect webhook signals to subscriber accounts. The signal source is selectable per strategy and per subscriber — Model (only entries the promoted run's entry gate designates TAKE) or Raw (every strategy entry) — with per-contract bracket signals (TP1/TP2 + shared stop), subscriber management with permanently masked webhook URLs, a safe test fire (a flatten on a flat account is a no-op) and a per-day delivery log. Transmission is at-most-once: sessions replayed after an infrastructure restart never re-send an order.
v4.0.15Jul 11, 2026Hotfix: clicking the Search button opened the command palette and the global click-away handler closed it within the same click, so the palette never appeared from the button (the / shortcut was unaffected).
v4.0.14Jul 11, 2026TradingView parity, pack two — drawings came alive. Clicking any drawing selects it (anchor handles on the chart) and opens a floating toolbar: color palette, line width, solid/dashed, Clone, Delete; Delete/Backspace remove the selection. Drawings finally survive reloads — every mutation persists locally and saved Layouts now carry their drawings too. Undo/Redo arrived (Ctrl+Z / Ctrl+Y, toolbar buttons) covering drawing and indicator changes with a 50-step history. A command palette (Search… button or the / key) searches everything in one box: the 81 registry indicators, drawing tools, timeframes, chart types, range presets, scale modes and actions. And a Chart Settings dialog (right-click the chart) makes candle up/down colors, grid lines and an NQ watermark configurable and persistent. Dragging drawing anchors is the one piece deliberately deferred to the next pack.
v4.0.13Jul 11, 2026Global dark scrollbars: every scrollable surface (series lists, dropdowns, tables, chat, the page itself) now uses the platform identity — transparent track, dark rounded thumb and subtle arrow buttons. The native white scrollbar track is gone platform-wide (Firefox gets the thin dark variant via scrollbar-color).
v4.0.12Jul 11, 2026Economics UX round 2: Today is scroll-free with the market gauges promoted to a prominent first row, the schedule capped with a jump to the full calendar, and a compact context strip (COT + mega-caps). The Calendar now shows Prior / Forecast / Actual per event — prior and actual auto-fill from first-print vintages at release time; forecast stays manual until a consensus provider is wired. Macro Series (and every catalog sub-tab) scrolls only inside the series list — the chart stays fixed. Mega-caps is a full earnings report per ticker: next report with company guidance and street focus, last report with EPS/revenue actual vs estimate (beat/miss), highlights, market reaction and an IR link — figures manually curated from public releases, provider auto-fill pending. AVGO's next report corrected to early September. Release-time actuals are now near-real-time: a minute-tick release watcher refetches the event first-print series inside the T-1..T+45min window, and the tab itself polls every 30 seconds during that window (5 minutes otherwise) with a pulsing LIVE badge - the Actual lands on screen minutes after the official print, with no page refresh. Source floor: FRED/ALFRED publish minutes after release; second-level latency needs a paid feed.
v4.0.11Jul 11, 2026TradingView parity, pack one. A bottom bar arrives with range presets (1D 5D 1M 3M 6M) that quietly pull whatever older history the range needs before framing it, a Go-to-date dialog, a live ET clock and percent/log/auto price-scale controls. Right-click now does what chart users expect: on the chart — copy price, horizontal line at the cursor, reset view, executions toggle, clear drawings; on the price scale — regular/percent/logarithmic, invert, auto; on the time scale — reset and go to date. A bar-close countdown sits next to the OHLC legend while the market streams. The chart can render as candles, bars, line, area or baseline — switching carries over drawings, price lines, session shading and executions, and the choice persists. Panning gained inertia (kinetic scroll).
v4.0.10Jul 11, 2026Chart loading went TradingView-style: the first view always frames the last 200 bars of the active timeframe instead of squeezing the whole loaded range into the screen; every load brings at least 15 calendar days of 1-minute bars — or enough for 200 bars when the timeframe needs more — and scrolling back loads older history on demand in 15-day chunks, prefetched about 100 bars before the left edge and spliced in without moving the visible window (cold-start failures retry themselves). The old per-timeframe map that pulled up to 90 days upfront is gone, and the live gap-heal merge no longer re-fits the whole chart: pinned to the right edge stays pinned, reading history stays put.
v4.0.9Jul 11, 2026Chart menus went TradingView-style: Timeframe, Indicators and Layouts open as dialogs centered over the chart (with a dimmed scrim) instead of dropdowns hanging off the toolbar — the standard open pattern for every chart menu, including an indicator's own settings. Active-indicator chips moved up onto the OHLC legend line so they no longer take a row of their own; each chip's remove cross became an eye that hides/shows the indicator without losing it, and clicking the chip's name reopens the settings dialog pre-filled with that instance's parameters, offering Apply and Remove. Also fixed: removing an indicator whose parameters contain values with quotes (any configured instance) silently did nothing — chips now address instances by index.
v4.0.8Jul 11, 2026Macro context features spec v1 registered: 12 pre-registered candidate columns over the context store (event flags, volatility regime, curve, COT positioning, first-print surprises, USD), each with a written economic hypothesis and declared windows — approved and frozen before any evaluation. One future CPCV evaluation against the incumbent under C1–C4 with trial count +1; failure kills all candidates. NQ-scoped: other instruments get their own spec. Options flow declared as successor-spec intent.
v4.0.7Jul 10, 2026Live indicators: active chart indicators now move with the forming candle — on every websocket bar update (throttled to 2.5s) the chart sends the tail of its 1-minute cache to the canonical compute endpoint and applies each series’ last point, with a full re-sync every two minutes. Same single implementation across training, history and live; no client-side or secondary incremental math.
v4.0.6Jul 10, 2026Indicators menu is usable at 80 entries: the dropdown scrolls (62vh cap) and the parameter editor now takes over the top of the menu — it used to be appended at the bottom of a 2,300px list, far below the fold, making clicks look dead. Active-indicator chips moved inside the chart, top-left under the OHLC legend, compact — the full-width bar above the chart is gone.
v4.0.5Jul 10, 2026Initial bars load survives lambda cold starts: the single 4-second retry never outlived the cold Databento fetch on long ranges, leaving a dead chart until a manual refresh. Retries now back off at 5s, 15s and 30s — the request keeps warming the container after the gateway cut, so the last attempt lands on a warm instance virtually always. Status shows the retry count.
v4.0.4Jul 10, 2026Indicators load in about a second: the chart now sends the bars it already holds to the compute endpoint instead of the lambda re-downloading the whole range from Databento on every refresh. Each indicator opens a parameter editor before being added (every configurable input from the registry defaults), and multiple instances of the same indicator with different parameters can coexist (e.g. EMA 9 and EMA 21) — chips are labeled per instance and chart layouts persist the full parameter sets.
v4.0.3Jul 10, 2026Indicator series fetch is cache-proof (no-store): the browser could serve a stale bars response recorded before the indicators capability existed, leaving newly added indicators invisible until a hard refresh. Bars lambda memory raised to 1024MB — the pandas/numba cold start at 512MB exceeded the gateway timeout on multi-week ranges.
v4.0.2Jul 10, 2026Removed the external client-side indicator-library.js: it conflicted with the canonical registry engine (duplicate declaration broke the main script block) and violated the locked rule that indicators are computed in the backend only. The Indicators menu is now fed exclusively by the server registry.
v4.0.1Jul 10, 2026Live Market indicators go canonical: the Indicators menu now lists the 80-entry backend registry and every series is computed server-side by the same implementation the training pipeline uses (bars lambda, at the chart timeframe) — the chart never computes an indicator locally, so plot and training features cannot diverge. Overlays draw on the price pane, oscillators on a compact lower band; selections persist in chart layouts; series refresh on timeframe switches and bar reloads.
v4.0.0Jul 10, 2026Economics tab: a new sidebar section with sub-tabs (Today, Calendar, Macro Series, Rates & Curve, Volatility, Positioning, Mega-caps) fed by the platform context store — keyless public sources (CBOE implied vol, US Treasury par yields, CFTC COT for NASDAQ MINI, FRED macro) refreshed hourly by an EventBridge ingest into platform/context/ on S3. Today opens with the next high-impact release, the upcoming schedule, market gauges and the COT positioning note; every series sub-tab is a catalog with history charts, provenance and a training-grade flag (revised FRED histories stay display-only until ALFRED first-print vintages via a FRED API key). Sub-tab layouts are customizable (hide modules, pick series) and persist locally via Save layout.
v3.4.13Jul 10, 2026Playback progress, NinjaTrader-style: the progress card shows the last day completed and a live cumulative P&L curve over the days processed so far (new per-day series endpoint), refreshed every ~30s during the run. The floating toast lost its Abort button — it now offers View Progress; aborting lives only in the Playback tab. Fixed: the Results card no longer ends up empty — a rounding shortcut (382/383 → 100%) stopped the poll one day early with the running payload, which carries no metrics; completion now follows the backend terminal status only.
v3.4.12Jul 10, 2026Playback runs are timed: each run in the Runs history and its Strategy Analyzer header shows the wall-clock duration from launch to the last day result. The backend exposes duration_seconds on the playback status, listing and stats endpoints, computed from S3 write stamps — past runs are covered retroactively.
v3.4.11Jul 9, 2026Chat file attachments for Asno (panel and console): the paperclip uploads any file straight to S3 via presigned PUT; text files ride the message inline, PDFs and images as native model blocks. Attached NinjaScript sources convert via their upload key without pasting. Backend: conversion pipeline hardening (adaptive thinking with effort control, tolerant reply parsing, API error bodies surfaced on drafts).
v3.4.10Jul 9, 2026Signals P(win) timeline decluttered for the minute-cadence stream: per-minute point markers removed (values remain in the line and appear on hover); only designation-change events keep a marker (designation color + white ring). Lines, thresholds and tooltips unchanged.
v3.4.9Jul 9, 2026New-chat screen polish: the "what u cooking today?" line now uses the Pixer pixel typeface (self-hosted), sits above the artwork and is larger; artwork replaced by the transparent monkey-cooking image (no background box).
v3.4.8Jul 9, 2026Asno UX: opening the Asno tab auto-collapses the side panel; every page load starts on a blank new chat in both surfaces (history stays in the hamburger; conversations are created on first message; legacy empty conversations pruned); new-chat screen shows the beast-cooking artwork with the "what u cooking today?" line. Retired the legacy daily entry-gate signal from self-diagnosis (superseded by the confidence stream).
v3.4.7Jul 9, 2026Asno side panel: centered Asno title, hamburger opens the conversation history shared with the Asno console, plus button starts a new chat; panel replies honor the selected Asno model. Backend: full platform self-knowledge for the assistant (platform map by section; live strategy/run/storage/indicator introspection; artifact-heartbeat self-diagnosis) and the curated S3 knowledge base (knowledge/ prefix) with a daily AI-summarized index at 10:30 UTC.
v3.4.6Jul 9, 2026Overview fits without scrolling again: the Live OOS Monitor merged into the Validation Ladder card as a compact strip (it is the step-5 gauge). Step 5 now shows real progress — live trade count toward the pre-registered 40-trade paper sample.
v3.4.5Jul 9, 2026Live OOS Monitor on the Overview: one-sided CUSUM on live designation correctness against the training-period hit rate (k=0.05, h=4) plus PSR of the TAKE-only live PnL, from the new live-monitor endpoint. Statuses: OK / WATCH / ALARM / INSUFFICIENT SAMPLE; an alarm only recommends a frozen-recipe retrain under the promotion protocol.
v3.4.4Jul 9, 2026Model promotion protocol pre-registered in the Library: challengers are frozen-recipe retrains, evaluated by CPCV against criteria C1–C4 fixed before any challenger is scored; step-5 paper-trading acceptance tests A/B/C formalized (40–60 trades). Promotion stays a human decision and resets the live OOS clock.
v3.4.3Jul 8, 2026Asno: the model-selector bar spans the full console width with the hamburger on it, so the conversations panel collapses completely (no leftover rail); the new-chat + moved onto the Conversations line.
v3.4.2Jul 8, 2026Sidebar bottom spacing equalized (Settings sits right under Library, same rhythm as Analytics). Live Market retries the initial bars load once after 4s — lambda cold starts occasionally time out at the gateway and used to leave a dead chart with an error.
v3.4.1Jul 8, 2026Sidebar: the Other group (Library) moved to the bottom right above Settings. Asno: the conversations panel collapses to a slim icon rail via a hamburger button (History button removed), new-chat is a +, and the model selector is ordered by capability/cost (Fable 5, Opus 4.8, Sonnet 5, Haiku 4.5).
v3.4.0Jul 8, 2026Asno, the full-size AI console, gets its own tab below Journal (robot icon): an internal collapsible sidebar with multiple persisted conversations, a centered chat column, and a model selector (Fable 5, Sonnet 5, Opus 4.8, Haiku 4.5 — server-side allowlist). The compact right-side assistant stays as the quick companion. The Settings entry now wears a gear icon.
v3.3.1Jul 8, 2026Settings is a page: a single sidebar entry opens a section with sub-menus (User first) instead of a sidebar category. The AKVA Assistant panel now pushes the content instead of overlaying it — it joined the body flex row and animates its width exactly like the left sidebar, with charts re-measuring after the transition.
v3.3.0Jul 8, 2026AKVA Assistant: a collapsible right-side panel (~20% width, toggled by the robot button top-right) chats with an agent grounded in the project's own recorded data — Journal trades and meta-labels, the confidence stream, signal history and the promoted run's metrics — showing which sources each answer consulted; history persists locally. Layout reshuffle: the API status pill moved to the sidebar footer next to the version (its system-status popover opens there), and the user icon became a Settings nav category with a User page (signed-in account, sign out).
v3.2.14Jul 8, 2026Execution triangles are painted on the chart canvas so each tip sits exactly on the dotted connector's endpoint at the fill price (marker glyphs rendered offset). “See trade in Chart” opens in the strategy's decision timeframe (GFPB: 15m; custom strategies may declare bar_minutes), and the main chart now remembers the last timeframe used across sessions instead of always booting on 5m.
v3.2.13Jul 8, 2026The dotted execution connector is white like the entry/exit triangles, running tip to tip from the entry price to the exit price of every leg — one continuous visual per leg instead of a win/loss-colored line detached from the toggles.
v3.2.12Jul 8, 2026Execution toggles are solid white triangles: pointing right at the entry price, pointing left at the closing price — replacing the thin chevrons.
v3.2.11Jul 8, 2026Execution toggles are now chevrons — just the arrowhead, white, at the exact fill price, exit pointing the opposite way. Hovering a chevron shows a floating card with the trade's legs, prices, times and P&L plus a “See in Journal” action that lands on the Journal with the day cell visually pressed and its side panel opening — the reverse of “See trade in Chart”, whose zoom now reliably centers on the trade (the navigation-triggered refetch used to override it).
v3.2.10Jul 8, 2026Execution overlays made subtle: only the dotted entry→exit connector plus small white arrows at the exact fill prices (exit arrow points the opposite way), no text labels on the chart. The Journal day panel dropped the mini chart in favour of a “See trade in Chart” action, and the zoom-to-trade no longer gets overridden by the gap-fill auto-fit.
v3.2.9Jul 8, 2026Journal day panel polish: the decision-log section is gone (Model at entry already carries the designation), the market preview draws subtle text-free markers sized for the small chart, and the “Open full chart” action moved inline into the Market section header — it previously rendered below the fold and was effectively invisible.
v3.2.8Jul 8, 2026Journal day panel: the decision log section shows only the decision points in effect at the trade's entry moment (one per side) instead of the whole session — the full log stays in Signals — so the market preview fits without clipping.
v3.2.7Jul 8, 2026Journal day panel rebuilt: every leg with entry/exit price and time, what the model designated at the entry moment (with P(win)), the day's decision log, and a market-chart preview of the trade with an “Open full chart” click-through that lands Live Market zoomed on the trade. Executions render NinjaTrader-style everywhere: a dotted connector from entry to exit of each leg with markers anchored at the exact fill prices, replacing the bar-snapped arrow/dot pair.
v3.2.6Jul 8, 2026Signals Decision Log lists every decision point of the session — designation changes stay highlighted from→to, unchanged windows render dimmed — inside a bounded card with its own scroll and sticky header. Backend same release: the nightly paper-trading replay writes the daily Signal History record for every session day with a confidence stream (designation at the GFPB entry moment, or the day's last decision point on no-trade days), keyed to the promoted run — the v3.1 revamp had removed the old daily-signal writer, leaving the Signal History card permanently empty.
v3.2.5Jul 8, 2026Live Market never loses the middle of the day: the bars API now clamps to Databento's true availability end instead of falling back to yesterday's close when the historical feed lags past 16 minutes (that fallback silently dropped the whole current day), and the chart self-heals — while a hole remains between the loaded history and the live stream's 20-minute replay it re-queries the bars API every minute and merges the missing bars until the series is continuous on every refresh.
v3.2.4Jul 8, 2026Journal cells got their boxes back: unlabeled trade days are colored by P&L sign (Baseline visual language) while labeled days keep the meta-label colors — v3.2.3 had tied the cell container to the meta badge and unlabeled days lost their outline.
v3.2.3Jul 8, 2026The Journal never fabricates model verdicts: days without a recorded meta-label show “MDL: —” and no meta badge (the old fallback invented AVOID + FN/TN on every unlabeled day — and every day was unlabeled, because the entry gate had been failing silently on a timezone mismatch since it shipped; fixed server-side the same day and the full 2022–2026 history relabeled from real tick data).
v3.2.2Jul 7, 2026AKVA wordmark alignment: the letters are raised to sit on the hexagon icon's visual center (same size; the em-box centering left the cap-height low). Backend same release: training artifacts persist under each strategy's own prefix and the predictor loads them from there; the live runner resolves any directory strategy (scripts need detect_entry) — full multi-strategy parity across playback, backfill, training and live.
v3.2.1Jul 7, 2026Every strategy now RUNS everywhere GFPB does: playback and backfill resolve the engine per strategy — an uploaded script owning the full trade lifecycle (required contract: simulate_day; detect_entry recommended for live), or the built-in engine with the strategy's Config-tab parameter overrides applied for real (saving them also works now — the save call used a method the API rejected). Playback results, backfill journals and training data all accumulate under each strategy's own prefix; script runtime errors land in the strategy's Logs tab. Training and live-runner wiring are the next phases.
v3.2.0Jul 7, 2026Strategy creation opened up: the New Strategy modal forks from ANY strategy in the directory (base or custom, selectable — nothing hard-coded), or creates one from scratch by importing a Python script. Imported scripts are validated on upload (syntax and the detect_entry(bars_m15, trade_date, config) entry-point contract, never executed by the API) and every validation lands in the new per-strategy Logs tab with line-numbered errors — the debug surface that will also receive runtime errors, groundwork for the AI strategy-authoring engine on the roadmap. Forks now persist server-side with their lineage (base_id).
v3.1.8Jul 7, 2026Signals header condensed to a single row: the descriptive subtitle was removed and the session navigation (updated stamp, Prev/Next Day, date picker, Live, Refresh) now sits top-right on the title line.
v3.1.7Jul 7, 2026Strategies tab decluttered: the Base badge sits in the bottom-right corner of the card (only on the original, pre-fork strategy; Custom forks keep the inline badge), and the descriptive subtitles under the strategy title and under the Strategies sidebar header were removed to reclaim vertical space.
v3.1.6Jul 7, 2026Live Market clock is Eastern Time: axis tick marks, date levels and the crosshair label all render in America/New_York (bar timestamps remain true epochs — aggregation, markers and session shading are unchanged).
v3.1.5Jul 7, 2026Live Market rebuilt end to end for real time: the streamer lambda was rewritten (repo-versioned) — it builds 1-minute bars from raw trades, replays the last 20 minutes on connect (covering the 16-minute REST delay) and pushes the in-progress bar about once per second, so candles move tick by tick instead of once per minute. The chart is always on: it boots with the session and keeps streaming in the background whatever tab is active, reconnecting by itself when the market opens. It also plots the active strategy's executions: entry arrows (long/short) and per-leg exit dots with realized PnL, snapped to the active timeframe, with a Trades toolbar toggle.
v3.1.4Jul 7, 2026Journal calendar: out-of-month cells now render complete (P&L, source and meta badges, MDL row) on the first paint from the same data and template as in-month cells. The legacy patch layer that back-filled them from a navigation-dependent DOM cache is retired.
v3.1.3Jul 7, 2026Live Market streams in real time on every timeframe: the WebSocket now opens for any range (it only ran on 1D before, leaving multi-day charts frozen after the initial load), incoming 1-minute bars are folded into the active timeframe, and the connection renews itself during market hours while the tab is open.
v3.1.2Jul 7, 2026Removed the floating intraday confidence dial (v2.02 legacy) — superseded by the Signals tab, which carries the full stream, timeline, decision log and drivers.
v3.1.0Jul 7, 2026Signals rebuilt around the intraday confidence stream: per-side TAKE/REVIEW/AVOID cards with P(win), bet size and contracts; a P(win) timeline across every decision point with the tuned per-side thresholds and designation-change markers; a decision log carrying the model's top drivers at each change; a decision-factors card (local TreeSHAP, explain-only); and date navigation over recorded sessions. The daily one-shot signal, Market Conditions and the NinjaTrader journal import are gone — the stream is the signal.
v3.0.11Jul 7, 2026Strategy Analyzer counts trades, not execution legs: GFPB enters each signal with multiple legs (same entry, different targets), which are grouped into one trade before any statistic is computed — its PnL is the sum of the legs and it closes when the last leg exits. A "Total # of executions" row reports the raw leg count.
v3.0.10Jul 6, 2026Playback lifecycle: progress toasts stack dynamically from the footer and are clickable (open the owning tab); the Playback tab fully restores a running job after a page reload (fields, progress, results); playback runs can be aborted from the toast or the progress card (terminates the underlying Batch jobs).
v3.0.9Jul 6, 2026Strategies: the Runs sub-tab now records every playback launched for the strategy (training runs live in History). Clicking a playback opens the full Strategy Analyzer statistics (all/long/short), computed from the persisted simulated trades. Fields the simulator does not record (MAE, MFE, ETD, bars) and costs it does not model (commission, slippage) are shown honestly as dashes and zeros.
v3.0.8Jul 6, 2026Training History: run rows open an in-place detail drawer (Stats + Learning Signals per run) instead of navigating away. FN learning signals are now attributed to the model that actually scored the journal — trades never scored by a model no longer count as false negatives; the unattributed Learning Signals block was removed from the History page.
v3.0.2Jul 6, 2026Overview recalibrated to snapshot metrics: intraday/entry AUC + DSR headline, MDA (out-of-sample) replaces in-sample SHAP for snapshot runs, designation outcomes relabeled as out-of-fold, validation-ladder widget.
v3.0.1Jul 6, 2026Initial edition: full snapshot pipeline (stages 1–9), MDA gate, DSR, bet sizing, validation ladder.
Asno
Complete
Stats
Learning Signals