$ cat projects/trading-systems/log.md
Trading systems — log
DEMO
Changes to what the program can do or the rules it follows, newest first, each taken from a commit, including the decisions that ended the demo run in October 2026. Other maintenance, refactors and documentation-only commits are left out.
changes
-
Second rebuild round: no edge either
A second pre-registered round first fixed how the tester measured trades, then tested a daily trend-following rule from the research literature in 18 variants. None passed: the best did no better than a random control, and none beat simply holding gold scaled to the same volatility. The round closed under its own stopping rule; the fleet stays frozen.
-
Every running variant retired
In a full reset, the champion and the last two challengers were removed from the demo account together and their final records archived. The timers that judged and retired challengers were switched off; the system no longer trades.
-
Rebuild decision: no demonstrable edge
A rebuild whose hypotheses and stopping rule were written down before any test found no demonstrable edge. The decision record was accepted: the fleet is frozen, the optimizer is off, and the running variants are to be retired.
-
Rules adopted from TradingAgents
Brought the invariants (rules that must always hold) of the TradingAgents project, version 0.5.0, into this project's own methodology and pipeline.
-
CUSUM reset in the trading program
Implemented a CUSUM reset in the trading program (expert advisor), version 17.03, off by default. CUSUM is a cumulative-sum test that flags when a data series shifts.
-
Regime labels and ranking pre-filter
Added a scheduled script that runs 16 versioned classification models to label the current market regime (the market's prevailing condition, for example trending down). A learning-to-rank pre-filter (a model that ranks the strategies) was also connected to the trading program as a second multiplier on strategy scores; it is off by default and ignores rankings older than 48 hours. A dashboard card now shows the regime map.
-
Drift-triggered re-optimization and change-point detection
Automatic re-optimization of the strategy settings is now triggered by drift in demo performance and spaces out its runs when they produce no change. Also added change-point detection (CUSUM and BOCD, statistical tests that flag when a data series shifts), which passed its self-test within ±20 bars (price candles).
-
Regime-to-strategy map
Added a map from market regime (the market's prevailing condition) to strategy, off by default in version 17.02. Rather than switching strategies on or off, it multiplies each strategy's score by a factor set for its strategy class and the current regime, and a regime must persist for 8 fifteen-minute bars before the map changes.
-
Crypto-specific slippage limit
Found why almost all Bitcoin orders were blocked before sending: the slippage circuit breaker (a guard that pauses orders when fills land too far from the requested price) used a 30-point limit tuned for gold, while Bitcoin fills slip 33-67 points, so it tripped after 5 fills. Added a per-symbol multiplier for crypto in version 17.02; its default of 1.0 leaves behavior unchanged.
-
Order-block and fair-value-gap patterns
Added two price-action entry patterns adapted from an MIT-licensed open-source project: the order block (a price zone left by a candle that breaks the previous candle's high or low, traded when price comes back to it) and the fair value gap (a price gap across three candles). Off by default in version 0.01; the logic was checked in simulation for rising and falling markets.
-
Commitments of Traders signal
Added a weekly feed of the CFTC's Commitments of Traders report (public U.S. government data on futures positioning, no API key needed) for gold futures. When leveraged funds are unusually crowded on one side (at least 1.5 standard deviations from their 26-week average), it votes the opposite way in the committee that combines the project's signals, with weight 0.15.
-
Engulfing-zone retest rule
Added a rule adapted from an MIT-licensed open-source project: an engulfing candle (one whose range swallows the previous candle's) marks a zone; the program waits for price to leave the zone and return, and trades only if a new engulfing candle forms inside it, at most once per zone. Off by default in version 16.53 (3 bars to leave, 20 bars to retest); checked in simulation.
-
News filter uses the platform's built-in calendar
The news filter's economic calendar now defaults to the trading platform's built-in calendar instead of a web source. The web fallback broke the project's local-first rule (no dependence on outside services) and was blocked in practice, so the filter had never been active on the running demo instances; final confirmation is due at the next restart.
-
Duplicate-order guard and position reconciliation
Before each order retry, the trading program's order-execution code (version 16.86) now checks for a matching order or position from the last 60 seconds and, if one exists, does not send again, so an out-of-date error reply can no longer produce a duplicate order. Every 5 minutes it also compares open positions with its own records and logs any mismatch instead of silently adopting it.
roadmap
The phases of the written roadmap. This is the plan's structure, not a progress report.
- Optimization and Refinement of Existing Strategies (Short Term)
- Implementation of New "Quant" Strategies (Medium Term)
- Artificial Intelligence and Advanced Machine Learning (Long Term)
- Exotic Strategies and Arbitrage (Advanced)
- Expansion of the Quant Universe (Long Term - v14+)
- Complete Catalog of the 100 Quant Strategies (Reference)