BL-TR-004: The Risk Framework
BIJECTIVE LABS
BL-TR-004: The Risk Framework
Status: RELEASED
Classification: PUBLIC
Revision: 1
Date: 2026-09-07
1. The double lock
Two independent subsystems must both approve before an order is emitted. The alpha side hunts and the risk side gatekeeps, and neither can override the other.
The separation is structural rather than procedural. The risk side does not know what the signal was, only what position is being requested, and it declines on its own criteria.
Ten gates run in a fixed order. A rejection at any one stops the order.
2. The gates
| Order | Gate | Function |
|---|---|---|
| 1 | Kill switch | Halts all signal generation |
| 2 | Drawdown monitor | Tiered response by loss depth |
| 3 | Value at risk | 99 percent confidence, one-day horizon, historical simulation |
| 4 | Conditional value at risk | Mean loss in the worst 1 percent of scenarios |
| 5 | Position sizer | Fractional Kelly |
| 6 | Exposure matrix | Per-position, per-venue and total caps |
| 7 | Volatility regime | Size multiplier by regime |
| 8 | Correlation regime | Total exposure reduction when cross-asset correlation is high |
| 9 | Cooldown manager | Per-instrument and global pauses after losses |
| 10 | Regime classifier | Trending, ranging, volatile or unknown |
3. Parameters
Declared in configuration rather than embedded in logic.
| Parameter | Value |
|---|---|
| Maximum position, share of equity | 0.02 |
| Maximum concurrent positions | 5 |
| Daily loss limit | 0.03 |
| Total drawdown limit | 0.10 |
| Kill switch threshold | 0.15 |
| Kelly fraction | 0.25 |
| Minimum win rate for sizing | 0.35 |
| Maximum exposure per venue | 0.40 |
| Maximum total exposure | 0.80 |
| Correlation flag threshold | 0.70 |
4. The tiered drawdown response
The second gate is the one that does the most work, because it responds in proportion rather than as a switch.
| Drawdown | Response |
|---|---|
| Daily loss reaches 3 percent | Reject new signals for the remainder of the day |
| Total drawdown reaches 10 percent | Halve all position sizes |
| Total drawdown reaches 15 percent | Trigger the kill switch |
The kill switch resets only by manual intervention. An automatic reset would let a system that has just demonstrated it does not understand the market resume trading on a timer.
5. Sizing
kelly_fraction = ( win_rate * avg_win - ( 1 - win_rate ) * avg_loss ) / avg_win
position_size = 0.25 * kelly_fraction * equity * regime_multiplierQuarter Kelly rather than full. Full Kelly maximises the growth rate under the
assumption that the win rate and payoff ratio are known, and on this substrate
they are estimated from samples that BL-IS-001 shows are far smaller in
effective terms than they appear.
The regime multiplier:
| Volatility regime | Multiplier |
|---|---|
| Low | 1.2 |
| Normal | 1.0 |
| High | 0.6 |
| Extreme | 0.3 |
And a correlation override: when average cross-asset correlation exceeds 0.80, total exposure halves regardless of what the individual gates permitted. Five uncorrelated positions and five correlated ones are the same trade, and the exposure matrix alone does not see the difference.
6. Cooldowns
| Trigger | Pause |
|---|---|
| A stop fires on an instrument | 5 minutes on that instrument |
| Three consecutive losses | 15 minutes across all instruments |
Not a risk control in the statistical sense. It is a control on the failure mode where a strategy re-enters the condition that just stopped it, several times, and converts one bad read into a sequence.
7. What this framework never had to do
No strategy in this record reached live capital. The framework ran in shadow throughout, and the single live venue touch produced 823 triggers and zero fills.
This section exists so a reader does not mistake the framework's completeness for a track record. It is specified, implemented and exercised in shadow. It has never been tested by an actual drawdown against real capital, and the pre-live checklist requires each kill-switch tier to be manually exercised on a test environment before any live activation, precisely because it has not been.
That is the honest status and it is not a defect. A risk framework that has never fired in anger is what a programme looks like when its research gate is doing its job upstream.
8. Where it earned its place
Once, and not against a market.
Eight hours into a passive quoting run, position exposure reached 4,198 USD against a declared limit of 50. Two defects were responsible: no reconciliation against venue state at startup, so the system began blind to positions it already held, and a force-flatten routine that could not see those legacy positions.
The response established a rule that outlived the strategy. Risk state bootstraps from the venue rather than from local memory, with a resynchronisation loop running on a fixed interval.
A framework that trusts its own memory is a framework that has never been restarted at the wrong moment.
9. The gate that came out of research
Programme II produced one component that reached production, and it sits upstream of this framework rather than inside it.
A defensive regime gate blocks 20 percent of periods and avoids 28.4 percent of volatility expansions, a lift of 1.49 times over the base rate, with a Brier skill of +0.01251 in sample against +0.01053 out of sample on 2,356,200 observations.
Its skill score falls below the programme's own threshold of 0.02 for a
calibrated probability output. Rather than tune until it cleared, the component
was kept in binary mode: it emits pass or block, never a confidence. R-02
requires exactly that, and the restraint is the interesting part. A component
that is not calibrated well enough to express a probability should not be allowed
to express one.
Parameters are held at RESTRICTED classification.
10. Cross-references
BL-TR-001 the architecture this sits in. BL-P1-001 section 2 for the incident
in section 8. BL-P2-001 door 6 and BL-SD-049 for the regime gate.
BL-IS-001 for why quarter Kelly rather than full.
Copyright (c) 2026 Bijective Labs. All rights reserved.