New Additions
A permanent record of every capability added to TradeRep: where it came from, its licence position, why it was added, how it was tested, what existing functionality it overlaps, and what a rollback would involve. Nothing is deleted from this ledger — a retired component keeps its entry, with the reason and the parity evidence behind any replacement.
experimental components
6 of 11 shown, newest firstThe research record was complete but only legible by opening committed JSON artifacts by hand, which is also how a program loses track of its own multiple-testing burden.
- Source
- Internal — Master Plan Reboot Phase 1
- Original implementation / inspiration
- docs/TRADE_REP_MASTER_PLAN_REBOOT.md sections 1, 2, 7, 10, 11
- TradeRep location
- lib/registry/, app/strategies/, app/bot-tester/, app/new-additions/, app/monitor/
- Licence / reuse constraints
- INTERNAL — First-party code.
- Tests performed
- · tests/integration/informationArchitecture.test.tsx — every nav route resolves, preserved surfaces stay reachable
- · tests/unit/registry/*.test.ts — registry status equals the shared roster's, metrics are quoted not recomputed, ledger drops nothing
- Overlaps with existing functionality
- /research-status card view → RETAINED — it is now a view inside the Strategies section, unchanged, at its original URL.
Rollback: Read-only surfaces over committed artifacts. Deleting app/strategies, app/bot-tester, app/new-additions, app/monitor and lib/registry removes the views and changes no research data. Navigation would need NAV_ITEMS reverted.
Give TradeRep independent invariants for event ordering, duplicate-event protection and monotonic replay so no strategy can benefit from future-confirmed state.
- Source
- Nautilus-style execution-integrity concepts (no code copied)
- Original implementation / inspiration
- research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 3
- TradeRep location
- research/external-systems/deterministicReplay.ts — missing here: research/external-systems/deterministicReplay.ts
- Licence / reuse constraints
- CLEAN_ROOM — Concepts implemented independently; no third-party source reused.
- Tests performed
- · owned by the external-bot/multi-market research lane; unit tests accompany the module in that lane
- Overlaps with existing functionality
- lib/backtest/runner (canonical replay) → HARDENING, NOT REPLACEMENT — TradeRep remains the engine; these are assertions that can be applied to it.
Rollback: Standalone helpers in the research area with no production dependents; removal affects nothing in the canonical engine.
Let a finalist be independently reimplemented so that agreement between two engines becomes evidence, and disagreement becomes an investigation trigger.
- Source
- LEAN independent replication lane concept
- Original implementation / inspiration
- research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 4
- TradeRep location
- research/external-systems/leanReplication.ts — missing here: research/external-systems/leanReplication.ts
- Licence / reuse constraints
- CLEAN_ROOM — Concept-level only.
- Tests performed
- · owned by the external-bot/multi-market research lane
- Overlaps with existing functionality
- canonical TradeRep backtest engine → REPLICATION ENGINE, NOT REPLACEMENT — engine policy: a stronger second engine is used to replicate finalists; replacing the canonical engine is a separate engineering decision requiring a parity migration.
Rollback: No dependents; removal affects nothing.
Define order-flow/volume-profile/regime research interfaces that refuse to run on data that cannot support them, instead of approximating microstructure from OHLC.
- Source
- Clean-room concepts from dearvn/tradovate-trading-bot
- Original implementation / inspiration
- research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 2
- TradeRep location
- research/external-systems/marketIntelligence.ts — missing here: research/external-systems/marketIntelligence.ts
- Licence / reuse constraints
- CLEAN_ROOM — Concepts only; no implementation code copied.
- Tests performed
- · owned by the external-bot/multi-market research lane
- Overlaps with existing functionality
- existing OHLC-derived features (ATR, VWAP, volume) → COMPLEMENTARY — these guards cover tick/trade-derived features that the canonical dataset cannot currently supply (DATA_BLOCKED).
Rollback: No dependents; removal affects nothing. The DATA_BLOCKED finding stands independently of the code.
Planned research was being read as running work. The Monitor now derives RUNNING only from a real process signal (a live workflow run, or a job row holding a fresh advisory lock) and labels everything else PLANNED, QUEUED, IDLE or UNKNOWN.
- Source
- Internal — Master Plan Reboot section 10
- Original implementation / inspiration
- docs/TRADE_REP_MASTER_PLAN_REBOOT.md section 10 ('Never display a bot as RUNNING unless there is a real live process/workflow in a running state')
- TradeRep location
- lib/registry/monitorState.ts, app/api/monitor/state/route.ts, app/monitor/page.tsx
- Licence / reuse constraints
- INTERNAL — First-party code.
- Tests performed
- · tests/unit/registry/monitorState.test.ts — a planned campaign can never be RUNNING; a stale-locked job is reported degraded, not running; an unconfigured workflow source reports UNKNOWN rather than nothing-running
- Overlaps with existing functionality
- /api/live/readiness → RETAINED — readiness answers 'is the live pipeline trustworthy'; the Monitor answers 'what is executing'. The Monitor reads the readiness endpoint rather than reimplementing it.
- /api/backtest/jobs/[id] status polling → RETAINED — per-job polling for the Jobs UI is unchanged; the Monitor aggregates across jobs using the same lock-staleness predicate (isStaleRunningJob).
Rollback: Removing app/api/monitor/state and lib/registry/monitorState.ts restores the previous behaviour (no aggregate process view). No job, workflow or live-feed behaviour is affected — the Monitor only reads.
Re-express realized shadow R at a funded-account contract policy without touching canonical R or any strategy's logic.
- Source
- Internal
- Original implementation / inspiration
- lib/liveStatus/fundedSizing.ts (funded-sim-v1-provisional)
- TradeRep location
- lib/liveStatus/fundedSizing.ts, rendered on /live/strategies and /funded-simulation
- Licence / reuse constraints
- INTERNAL — First-party code.
- Tests performed
- · tests/unit/live/fundedSizing.test.ts
- Overlaps with existing functionality
- computePositionSize / DEFAULT_ENGINE_PARAMS (V1 sizing) → DELIBERATELY SEPARATE — V1 sizing gates real trade selection; this overlay is read-time only and shares no constants or code path.
Rollback: Read-time only, nothing persisted. Removing the module removes the amber simulation bands and changes no canonical figure.
Replacement process
An independent second engine is valuable BECAUSE it is independent- 1. identify overlap
- 2. run parity / behaviour comparison
- 3. test scientific and operational assumptions
- 4. confirm no required use case is lost
- 5. migrate dependents
- 6. archive old implementation
- 7. only then remove dead code if safe
A stronger second engine is used to replicate finalists, not to automatically replace the canonical one: if both engines agree, confidence rises. Replacement is a separate engineering decision with its own parity migration.
Read from research-output/registry/new-additions.json · research-output/registry/README.md