Warrior_EA/Variables/Variables.mqh
AnimateDread b91c7b1f7a refactor(comments): box headers to stdlib length
The //| box blocks were excluded from 0b06f8e and 5efdb48 and were what
remained: 160 of them ran to 10+ lines, the longest to 88. Compressed to their
leading topic sentences - 5 lines for a function header, 8 for a file header -
keeping the box format and the standard MQL5 name/author lines verbatim.

Verified at the BYTE level this time, across every in-scope file: the list of
non-comment lines is byte-identical to HEAD and braces balance. The first check
compared a locale-decoded 'git show' against a UTF-8 read and flagged 25 files
that had not changed at all - every BOM and every non-ASCII line mismatched.

47,696 -> 40,665 lines in scope; comment share 38% -> 26%.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 00:30:14 -04:00

40 lines
3.2 KiB
MQL5

//+------------------------------------------------------------------+
//| Warrior_EA |
//| AnimateDread |
//| |
//+------------------------------------------------------------------+
string eaName = "Warrior_EA";
//--- Version of the pattern-journaling SEMANTICS: what a row in a <Filter>_Pattern_N_<Buy|Sell> 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.
//--- Direct copies of the per-NN inputs (Variables\Inputs.mqh; the AI_CHOICE preset selector is
//--- gone since 2026-08-19). The Enable* names survive because dozens of sites read them.
//--- EnableHYBRID still names the CONVLSTM topology INSTANCE (CSignalHYBRID, State\HYBRID\) - a
//--- 2026-08-15 enum-rename artifact kept so the class and its on-disk files keep their identity.
//--- Re-derived in InitializeSignal() like before (init-order safety); same values both times.
bool EnablePAI = Use_MLP;
bool EnableCONV = Use_CONV;
bool EnableLSTM = Use_LSTM;
bool EnableHYBRID = Use_CONVLSTM; // the CONVLSTM instance; see the rename note above
bool EnableMETA = Use_MetaLabeling;
//+------------------------------------------------------------------+