Warrior_EA/System
Repository files (latest commit first)
Filename Latest commit message Latest commit date
AnimateDread a970405042 feat(pool,mi): one feature layout fleet-wide, and the keep-screen stops self-disabling on a cold start
TWO CHANGES, BOTH RETRAIN-FORCING BY INTENT.

1. SP500 was training alone, and one alt-data column was the reason.

   The alt block's width joins the model fingerprint, and the pool reader only
   adopts peer rows whose fingerprint and width match. The exporter gives each
   instrument the series that apply to it - FX 15 columns, metals/oil 14, SP500
   13 - so the fleet ran as three incompatible pools:

     EURUSD/USDJPY/USDCAD  adopt ~57-60k peer rows each
     XAUUSD/XTIUSD         adopt 6.4k / 20.3k
     SP500                 "EVERY peer file was REJECTED, so this chart is
                            training alone" - 0 rows

   SP500 therefore trained on 2279 independent observations against a 600-wide
   input with its first layer floored at 16, printing its own "expect
   overfitting" warning. It is the one chart with no pool and the worst
   capacity ratio in the fleet by a factor of three.

   Fresh models now pin ALTDATA_FLEET_COLUMNS - the 12-column intersection -
   instead of their own file header. An existing model still adopts its .cfg
   pin, so this re-keys nothing that is already trained.

   Intersection rather than union: filling an absent series with its median
   makes that column constant per instrument, which lets a pooled model
   identify the source instrument and stop learning the shared mechanism. It
   is also 6 columns narrower. Cost is six columns whose retained information
   is UNMEASURED - the keep-screen reports a bitmask nothing has mapped back
   to names.

2. The MI keep-screen disabled itself for the whole run on any cold start.

   ReportFeatureLabelInformation set m_miReportDone on ENTRY. On a cold start
   the label cache is allocated before it is filled, so BuildMiSample finds no
   row carrying a resolved label and returns 0 - a sixth exit, and the only
   one the 8c1266d instrumentation did not cover, which is why it printed
   nothing. observed then stayed -1, the permutation loop never iterated, and
   the report emitted "-1.00000 nats over 0 permutations" beside a plausible
   "strongest single feature 0.05979" that was a STALE m_miBestColumn from an
   earlier scoring call. The first ensemble member propagated the latch to
   g_ensembleChartMiReportDone and silenced every member on the chart.

   The flag now latches only once a measurement exists. A short sample is
   reported as a deferral naming the two numbers that identify it (cached bars
   vs bars carrying a resolved label) and retried, up to
   MI_REPORT_MAX_ATTEMPTS.

Build tag -> fleet-pool-v1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 17:41:14 -04:00
..
AltData.mqh feat(pool,mi): one feature layout fleet-wide, and the keep-screen stops self-disabling on a cold start 2026-08-26 17:41:14 -04:00
AltDataCatalog.mqh refactor(altdata): split CAltDataFetch's HTTP client and symbol catalog into collaborators 2026-08-24 03:32:02 -04:00
AltDataFetch.mqh refactor(altdata): split CAltDataFetch's HTTP client and symbol catalog into collaborators 2026-08-24 03:32:02 -04:00
AltDataHttpClient.mqh refactor(altdata): split CAltDataFetch's HTTP client and symbol catalog into collaborators 2026-08-24 03:32:02 -04:00
AtomicFile.mqh fix(io): stage atomic writes to a PER-CHART temp, not a shared one 2026-08-26 13:48:43 -04:00
BinomialStats.mqh fix(binomial): correct tail calculation in BinomialUpperTailP and add tests for accuracy 2026-08-25 23:37:22 -04:00
CrossAsset.mqh refactor(crossasset): dedupe the pinned-pair-set resolution in Warm/WarmBlocking 2026-08-24 01:15:44 -04:00
NewBar.mqh perf(tester): stop agents doing chart work on deinit; enforce Expert_EveryTick 2026-08-25 09:50:27 -04:00
NewsRelevance.mqh refactor(comments): stdlib comment style across the remaining in-scope files 2026-08-22 00:25:52 -04:00
PrintVerbose.mqh refactor(comments): box headers to stdlib length 2026-08-22 00:30:14 -04:00
Random.mqh refactor(comments): box headers to stdlib length 2026-08-22 00:30:14 -04:00
README.md refactor(ai): extract Layer.mqh and deduplicate AI config 2026-08-01 11:27:28 -04:00
RetryWithBackoff.mqh refactor(persistence): dedupe the exponential-backoff retry loop into RetryWithBackoff 2026-08-24 02:55:04 -04:00
SharedFileCopy.mqh refactor(persistence): dedupe the exponential-backoff retry loop into RetryWithBackoff 2026-08-24 02:55:04 -04:00
StatusLabel.mqh Enhance Feature and Topology Interfaces with Bulk Operations and Cache Management 2026-08-25 22:51:50 -04:00
TradeChecks.mqh refactor(trade): dedupe ResolveOrderType into TCResolveOrderType 2026-08-24 01:39:19 -04:00

System Subsystem (System/)

Overview

The System/ directory contains utility and infrastructure code for the Warrior EA. These modules provide essential services such as new bar detection, conditional logging, crash-safe file writes and trade validation, supporting robust and maintainable EA operation.

Key Components

NewBar.mqh

  • Function: NewBar()
  • Purpose: Detects the arrival of a new bar (candle) on the chart.
  • Logic: Compares the current bar's time with the last seen bar time. Returns true if a new bar is detected.
  • Integration: Used for event-driven logic, e.g., only executing logic once per bar.

PrintVerbose.mqh

  • Function: PrintVerbose(string message)
  • Purpose: Conditional logging based on a VerboseMode flag. Prints messages only if verbose mode is enabled.
  • Integration: Useful for debugging and development without cluttering logs in production.

Documented April 2026. For further details, see the main project documentation.