Engine & Learning
The rules that trade for you — and how they are allowed to change
One page, three answers: what is running today, how a change earns its place, and what has been decided so far. Every figure comes from the sealed record.
What trades for you today
- Version in use
- …
- Last verified
- …
Every change is proven on the recorded history first and never goes live on its own.
How the rules are allowed to change
Nobody edits the rules by hand. A change has to pass four steps, always with the market closed.
A proposal is written
A new version of the rules is drafted. Nothing about the live desk changes yet.
It is replayed on the history
The new rules are run over every recorded trading day, exactly as the current rules were, on the same data.
A blind exam
The most recent fifth of the history is kept aside during the work. The new rules must do better than the current ones there, where nothing was tuned.
Only then does it go live
If the blind exam is passed by a clear margin, the version is approved and switched on. If not, the record says so and nothing changes.
Never up for change: one operation a day, never overnight, 1% of the account at risk, 100% cash at the close.
What is happening now
Reading the ledger…
What has been decided so far
Every decision, newest first, sealed in the same tamper-evident record as the live executions.
Reading the ledger…
Show the full version registerHide the version register
What changed in the procedure itself, release by release, with each release's lifecycle: candidate, validated, active, rolled back.
| Area | Before (v1.2.0) | After (v1.3.0) | Benefit on the parameters |
|---|---|---|---|
| Order routing & partial fills | Limit at Bid + 25% of the spread, no partial-fill handling | Limit at Bid + min(40% of spread, 0.15 × ATR M1) with a 20 s timeout; below 30% filled the residual is cancelled and flattened, above it the reduced size is kept with stop/target re-cut to the exact quantity and a protective OCO | No position ever left unprotected after a partial fill; entry price anchored to live volatility |
| Sizing on settled liquidity | Risk base on equity with a nominal $10k / 50% account cap | R = min(settled cash, equity) × tier (1% / 1.25% / 1.5%), utilisation up to 100%, notional never above settled capital | Per-trade risk consistent with capital actually available, no implicit leverage |
| Structural stop | Fixed percentage stop per tier, blind to the breakout bar | max(tier cap, min(breakout bar low, VWAP − 0.05%)) with a 0.8 × ATR M15 floor; quantity = floor(notional / price) | Stop below the level that invalidates the setup, never inside the noise |
| Runner, stagnation and halts | Trail on the M15 low; fixed 65-minute stagnation; no halt handling | Trail = max(stop, highest high since entry − 1.5 × ATR M15, previous M15 low), up only; stagnation 50 min (entry before 10:15 NY) or 75 min; full freeze during halt/LULD | Profit protected along the trend, capital freed earlier, no order touched while the tape is frozen |
| Event and liquidity guards | Intermarket macro filter and index VWAP gate only | Earnings blackout NVDA/AMD/TSLA, −5/+10 min lockout around FOMC/CPI/NFP, gap > 1.2 × daily ATR refused, ask depth ≥ 3× the ticket, RVOL-T 09:30–09:45 NY over 20 sessions | Entries only under measurable conditions; binary events stay out of the book |
| Statistical validation | Deflated Sharpe Ratio with a fixed K = 8 trials | Dynamic K = max(50, min(150, real calibration cycles)); promotion only with DSR > 0.95 and ΔR ≥ +0.05R | Anti-overfitting filter scaled to the number of trials actually run |
Order routing & partial fills
- Before (v1.2.0)
- Limit at Bid + 25% of the spread, no partial-fill handling
- After (v1.3.0)
- Limit at Bid + min(40% of spread, 0.15 × ATR M1) with a 20 s timeout; below 30% filled the residual is cancelled and flattened, above it the reduced size is kept with stop/target re-cut to the exact quantity and a protective OCO
- Benefit on the parameters
- No position ever left unprotected after a partial fill; entry price anchored to live volatility
Sizing on settled liquidity
- Before (v1.2.0)
- Risk base on equity with a nominal $10k / 50% account cap
- After (v1.3.0)
- R = min(settled cash, equity) × tier (1% / 1.25% / 1.5%), utilisation up to 100%, notional never above settled capital
- Benefit on the parameters
- Per-trade risk consistent with capital actually available, no implicit leverage
Structural stop
- Before (v1.2.0)
- Fixed percentage stop per tier, blind to the breakout bar
- After (v1.3.0)
- max(tier cap, min(breakout bar low, VWAP − 0.05%)) with a 0.8 × ATR M15 floor; quantity = floor(notional / price)
- Benefit on the parameters
- Stop below the level that invalidates the setup, never inside the noise
Runner, stagnation and halts
- Before (v1.2.0)
- Trail on the M15 low; fixed 65-minute stagnation; no halt handling
- After (v1.3.0)
- Trail = max(stop, highest high since entry − 1.5 × ATR M15, previous M15 low), up only; stagnation 50 min (entry before 10:15 NY) or 75 min; full freeze during halt/LULD
- Benefit on the parameters
- Profit protected along the trend, capital freed earlier, no order touched while the tape is frozen
Event and liquidity guards
- Before (v1.2.0)
- Intermarket macro filter and index VWAP gate only
- After (v1.3.0)
- Earnings blackout NVDA/AMD/TSLA, −5/+10 min lockout around FOMC/CPI/NFP, gap > 1.2 × daily ATR refused, ask depth ≥ 3× the ticket, RVOL-T 09:30–09:45 NY over 20 sessions
- Benefit on the parameters
- Entries only under measurable conditions; binary events stay out of the book
Statistical validation
- Before (v1.2.0)
- Deflated Sharpe Ratio with a fixed K = 8 trials
- After (v1.3.0)
- Dynamic K = max(50, min(150, real calibration cycles)); promotion only with DSR > 0.95 and ΔR ≥ +0.05R
- Benefit on the parameters
- Anti-overfitting filter scaled to the number of trials actually run
Check it yourself
The outcomes and the sealed record are public and can be verified independently.