//+------------------------------------------------------------------+ //| Warrior_EA | //| AnimateDread | //| | //+------------------------------------------------------------------+ string eaName = "Warrior_EA"; //--- Version of the pattern-journaling SEMANTICS: what a row in a _Pattern_N_ table //--- means, which bars produce one, and what the columns are. Folded (unconditionally) into the DB //--- filename fingerprint (ComputeDbConfigFingerprint, Warrior_EA.mq5), so bumping it re-keys every //--- database and stale rows can never feed UpdateSignalsWeights() again. BUMP THIS whenever a signal //--- class's pattern definitions change meaning (Signals\Signal*.mqh - e.g. b2069bc's Ichimoku models, //--- 8710240's Sanyaku state->event), or the journaling contract in CExpertSignalCustom::Direction() //--- changes. The config fingerprint alone cannot see code changes - it hashes inputs, and 7 months of //--- rows recorded under three different Pattern_N meanings shared one table because nothing re-keyed. //--- v3: per-side journaling (each side's own ladder match writes its own row; net vote is a data //--- column, not a drop filter) + the netVote schema column. //--- v4: a reversing signal registers its own trade after closing the opposite one (true //--- stop-and-reverse); v3 absorbed it as an exit, which one-sided the ledger for every pure event //--- pattern (strict alternators like MACD model 3 put all rows on whichever side fired first). //--- v5: the OpenLongParams/OpenShortParams gate is gone from the logger - order-placement failures //--- (stops-level, ATR warm-up, entry-mode rejection) cluster in volatility/spread conditions and //--- were non-randomly censoring those bars out of the log. The DB logs every matched ladder, //--- unconditionally on the decision layer. #define SIGNAL_DB_SEMANTICS_VERSION 5 string tableschema = "year INTEGER, month INTEGER, day INTEGER, dayOfWeek INTEGER, hour INTEGER, minutes INTEGER, pattern STRING, direction STRING, entryPrice DOUBLE, exitPrice DOUBLE, result STRING, netVote DOUBLE"; bool IsBacktesting = false; //--- EnableSessionFilter/EnableNewsFilter/EnableRiskGuard are real inputs (Variables\Inputs.mqh), //--- consistent with every other filter's on/off toggle. EnableITF and EnableMarketDepth are gone - //--- both modules were removed 2026-08-01, see the removal notes in that file. bool EnablePAI = (AIType == AI_MLP); bool EnableCONV = (AIType == AI_CONV); bool EnableLSTM = (AIType == AI_LSTM); bool EnableHYBRID = (AIType == AI_HYBRID); bool EnableMETA = (AIType == AI_META); //+------------------------------------------------------------------+