KR — Kinetic Regimes
Band-geometry sleeves (classic BTC and variants). Includes the selective Apex variant with tighter participation filters.
Platform
How we measure performance, size portfolios, and apply risk controls — written for quants and sophisticated investors, grounded in the composer and deployment code that actually runs.
Headline figures on tearsheets, the strategy library, and the portfolio composer come from the same metric helpers in the composer engine. Unless a page says otherwise, the simulation base is $100,000 starting capital and a daily NAV series from strategy inception (typically January 2024).
Daily simple returns from the NAV series (the first anchor-to-first-day return is dropped so the sample matches trading days). Sample mean ÷ sample standard deviation, annualized by √(periods per year). Periods per year is inferred from the calendar span of the NAV series (≈365 for daily series). Risk-free rate is treated as zero.
Compound annual growth rate from first to last NAV over elapsed years using a 365.25-day year: (final / initial)^(1/years) − 1.
Peak-to-trough decline on the equity path used for risk. When an intraday-low (bar-low) NAV series exists, Max DD and Calmar use that trough path — not end-of-day close alone. That is why headline Max DD can be deeper than a chart built only from closing equity.
Public tearsheets generally report the bar-low MTM Max DD. The composer mirrors that when navLow / worst-equity series are present.
CAGR ÷ absolute value of Max DD (same Max DD definition as above). Undefined if Max DD is zero.
Sortino uses the same daily returns with MAR = 0 (downside variance includes zeros on non-negative days). BTC correlation is Pearson correlation of aligned daily portfolio returns vs BTC spot returns over the simulation window.
Each strategy exports a columnar fill ledger: open/close timestamps, entry/exit prices, notional, and realized PnL. Composer portfolio caps and trade-level overlays replay these fills in time order rather than only blending end-of-day equity.
Between open and close, open inventory is marked on the strategy’s OHLC bar stream:
Bar resolution is strategy-native (for example 45s for Kinetic Regimes sleeves, multi-minute bars for Stochastic Anchoring). Some alt / prop sleeves fall back to 1-minute exchange klines when building MTM equity. The old library one-liner that implied every strategy uses “1m bar-low” was oversimplified — bar-low MTM is real; the minute grid is not universal.
For the optional max trade-drawdown overlay, each fill carries a sparse cumulative adverse path (new lows for longs, new highs for shorts) taken from the same bar stream between entry and exit. The stop trips when unrealized drawdown from entry reaches the chosen threshold; exit PnL is capped so the overlay cannot invent alpha versus the natural fill close.
Two allocation modes:
Grove Portfolio (compound off) is a curated gross mix across the public library sleeves (excluding Momentum Cascade), with portfolio max leverage enabled at 2× and a modest BTC collateral sleeve. Grove Portfolio Compound is the companion preset with per-sleeve compounding on. Exact weights ship in the portfolio preset / historical data config used by the Performance page and composer.
Per sleeve, compounding can be off, size (scale notionals and PnL by sleeve equity / initial allocation), or legacy return mode. Flagship Grove Portfolio keeps compounding off so reported path risk stays comparable across sleeves; Compound variants reinvest sleeve PnL into size.
Portfolio NAV is USD plus optional spot collateral (BTC, ETH, and other supported assets). Strategy PnL settles into the collateral mix; optional auto-rebalance restores target percentages on a schedule. Portfolio drawdown circuit logic attributes risk to strategy NAV by subtracting passive collateral mark-to-market drift from total NAV — so holding BTC as collateral does not by itself trip the strategy DD breaker.
When a portfolio is compiled for paper or live bots, deployable quote capital is equity × USD collateral percentage. Each bot’s per-entry position size is deployable × sleeve weight (gross or normalized according to the spec).
Portfolio max leverage caps the absolute value of net signed open notional at NAV × multiplier (longs and shorts can offset). Per-strategy max leverage caps that sleeve’s open notional against its own budget (trading equity or weight × NAV). In the authoritative fill-level simulation, over-cap opens are hard-rejected — not soft-scaled — so Max DD does not silently shrink when leverage is on.
Optional per-sleeve cap on concurrent fill depth. Fills beyond the cap are rejected in simulation.
Optional per-sleeve overlay: force-close a fill when its bar-low (or bar-high for shorts) unrealized drawdown from entry hits the threshold (default 20% when enabled). This is a composer risk control on historical fills — it is not claimed to be identical to every venue stop implementation.
Optional: when strategy-attributed NAV falls a chosen percent from its peak, new opens are suppressed until the book is flat; then the peak resets. Existing lots continue to mark and close.
Question: when portfolio max exposure is nearly full and two strategies trigger buys at the same time, who receives residual capacity?
Documented behavior in the fill-level portfolio engine:
So “who wins” on historical data is deterministic but not a published fairness policy — it follows event sort order and sleeve key order, not Sharpe, weight, or priority tags.
Deployments register each bot into a shared overseer bucket using method simple_maxexposure, with a portfolio-level max_exposure USD cap derived from deployable capital × max leverage. That wiring lives in Signal Grove’s deployment compiler (live/spec_compiler.py).
Upstream prop-engine alone talks to a remote overseer-api and treats lock creation as all-or-nothing race-to-HTTP (409 → skip). Signal Grove’s controlled live path replaces that with a file-backed local overseer (SG_LOCAL_OVERSEER=1, state under the deployment overseer/ dir) that enforces the published rule below. Prop-engine patches live under live/deploy/patches/prop-engine/src/libs/core/overseer/; paper bots keep live_engine.live=false so the 13-bot paper fleet does not change execution.
Policy id fifo_weight_prorata (see live/exposure_contention.py):
Composer historical simulation remains closes-before-opens + sleeve-key all-or-nothing and is intentionally different from this live policy.
Historical composer fills assume the strategy’s historical fill model (typically signal-bar economics). Live maker TWAP can differ in fill price and timing; treat live vs historical reconciliation as expected operational work, not identity.
Public names only — no internal parameter jargon.
Band-geometry sleeves (classic BTC and variants). Includes the selective Apex variant with tighter participation filters.
Regime-adaptive sleeves that enter and exit from moving-average structure. Live library covers BTC and selected US equities.
Mid-frequency sleeves that wait for cross-market anchors to align before entering. Live library covers ETH, SOL, and XRP.
Lower-frequency lattice strategies with selective participation and controlled scaling across BTC, ETH, SOL, and XRP.
Systematic short-bias BTC sleeves (GL and GL Apex) for hedge or directional balance inside a multi-strategy book.
Event-driven cascade strategies on selected alts (ADA, DOGE) with a macro context filter. Mid-frequency, steady activity.
Figures on this site are self-reported historical simulations or live account data unless stated otherwise. See disclosures and Grove Portfolio.
Browse public tearsheets, or open the terminal composer to stress-test weights and risk toggles yourself.