AI Expert Advisor
  • MQL5 79%
  • Python 8.9%
  • HTML 5.5%
  • C 3.3%
  • C++ 3.1%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
AnimateDread 788115970c fix(vote): unranked members voted with the stock 25/50/75/100 ladder
Two defects behind "arrows drawn while members are still mid-era".

1. THE DRAW. The filtered overlay armed on the FIRST member to finish
   pass 3 and leaned on a 60 s rate limit to "collapse the burst",
   assuming members finish seconds apart. They do not - on USDJPY one
   member was at sample 10496 of pass 2 while another was at 2304,
   minutes apart. A member with no era-end snapshot returns false from
   SnapshotVoteAt, and the sweep's `if(!hasData) continue;` skips it
   BEFORE `den += ModuleWeight()`, so the one finished model's tier
   weight became the entire vote and was drawn as a consensus arrow.

   An abstention is a member that looked at the bar and said nothing; a
   missing snapshot is a member that has not looked. The first must
   dilute the vote, the second must suppress the draw. The arm is now a
   readiness MASK - one bit per m_ensembleIndex, set at that member's
   pass-3 completion, cleared when a sweep arms - and a sweep waits for
   every enrolled member. Bounded at 10 minutes so a member that stops
   cannot freeze the chart, and the partial draw PRINTS which members
   were missing: the be39674 lesson is that a hold must never silence
   the thing that reports it.

2. THE VOTE ITSELF, which is the worse half and is not display-only.
   Tier weights are not persisted in the .nnw - they exist only as the
   output of a completed pass 3 - so before a member's first
   RankTiersFromOos() it holds the constructor's stock 25/50/75/100.
   Since 4858507 the vote currency is a WIN RATE, so an unranked tier-3
   call enters the capability-weighted mean claiming a 100% win rate
   beside ranked members contributing ~25. Not a strong opinion: the
   wrong unit. One unranked member drags the ensemble over any
   threshold, on every fresh deploy and every resume. USDJPY has a
   measured ceiling of ~19 and was firing anyway.

   LiveVoteContribution() now abstains until self-ranked, which drops
   the member from the sum AND the divisor. One function, so live and
   the gate move together (2c443ba).

Era 0 will therefore report 0 coverage until each member completes one
era. The ensemble line says so explicitly rather than leaving it to look
like the USDJPY unreachable-threshold case - the two are identical in
the coverage number and completely different problems.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-23 08:55:04 -04:00
.claude . 2026-07-18 17:43:29 -04:00
.clinerules feat: suppress noisy performance warnings unless VerboseMode 2026-07-27 10:58:29 -04:00
AI refactor(comments): box headers to stdlib length 2026-08-22 00:30:14 -04:00
Database refactor(stdlib): adopt Math\Stat for the deploy gate's normal tail; retire the b1/b2/lr/momentum macros 2026-08-19 19:31:36 -04:00
DirectML fix: dense backprop read the weight matrix transposed - on every backend 2026-08-11 18:06:09 -04:00
docs feat(altdata): wire everything the sources serve - screens become priors, not gates 2026-08-16 17:29:22 -04:00
Enumerations refactor(comments): box headers to stdlib length 2026-08-22 00:30:14 -04:00
Expert fix(vote): unranked members voted with the stock 25/50/75/100 ladder 2026-08-23 08:55:04 -04:00
Market Descriptions Add new research scripts for trading strategy analysis 2026-08-02 12:25:20 -04:00
Marketing/Logo refactor(AI): clean up comments and add conditional compilation guards 2026-07-22 17:17:23 -04:00
Money fix: four risk-layer holes a funded account would eventually find 2026-08-11 18:14:26 -04:00
Panel refactor(comments): box headers to stdlib length 2026-08-22 00:30:14 -04:00
references feat: add SGD+momentum optimizer and input-driven hyperparameters 2026-07-18 14:56:41 -04:00
research research(altdata): H4 timeframe screen - information survives, diluted; costs 2.6x worse 2026-08-16 17:49:37 -04:00
Scripts fix(research): calendar recorder - separate LIVE from BACKFILL, fix seen-set key 2026-08-01 20:22:12 -04:00
Signals refactor(signals): AI signal files are identity + topology, nothing else 2026-08-20 08:57:54 -04:00
Structures fix(db): per-side pattern journaling + versioned journaling semantics 2026-08-12 10:37:57 -04:00
System refactor(dry): one writer for the era-resume context, one for an alt-data row 2026-08-22 00:36:36 -04:00
Trailing refactor(yagni): drop 13 accessors nothing called; unify the ATR trailing pair 2026-08-19 18:55:36 -04:00
Variables fix(vote): "0 fired" on USDJPY meant the threshold is above the highest vote the ensemble can cast 2026-08-22 08:16:11 -04:00
.gitignore chore: keep the reference PDFs out of the repository 2026-08-01 22:18:18 -04:00
AI_NETWORK.md refactor(ai): extract Layer.mqh and deduplicate AI config 2026-08-01 11:27:28 -04:00
cpu_directml.log feat(opencl): add feedback alignment support to weight update kernels 2026-07-28 15:01:40 -04:00
DATABASE.md feat: add max-pooling and convolution OpenCL kernels, clean up barrier and signal code 2026-07-13 03:23:39 -04:00
EXPERIMENTS.md feat: make batch normalization mandatory, and record the run-3 results 2026-07-30 08:51:10 -04:00
Meta_Labeling_Design.md feat(ensemble): per-NN inputs replace the preset selector - the meta head becomes the vote's gate 2026-08-19 13:01:02 -04:00
opencl.log feat(opencl): add feedback alignment support to weight update kernels 2026-07-28 15:01:40 -04:00
profiling.csv fix: handle legacy neuron classes in BlendWeightsFrom to avoid UB 2026-07-26 14:45:08 -04:00
README.md feat: Enhance README and documentation for Warrior_EA project 2026-04-20 19:28:34 -04:00
REFACTOR_NOTES.md refactor(ai): extract Layer.mqh and deduplicate AI config 2026-08-01 11:27:28 -04:00
SIGNALS.md feat(signals): add MACD/Ichimoku presets and Vote_Close disabled option 2026-07-26 18:33:12 -04:00
Warrior_EA.md feat: Enhance README and documentation for Warrior_EA project 2026-04-20 19:28:34 -04:00
Warrior_EA.mq5 fix(vote): unranked members voted with the stock 25/50/75/100 ladder 2026-08-23 08:55:04 -04:00
Warrior_EA.mqproj Add new research scripts for trading strategy analysis 2026-08-02 12:25:20 -04:00
Warrior_EA_System_Overview.md refactor(ai): extract Layer.mqh and deduplicate AI config 2026-08-01 11:27:28 -04:00

Warrior_EA Project Overview

Description

Warrior_EA is a modular, AI/ML-ready MetaTrader 5 Expert Advisor designed for robust, production-grade trading. It integrates traditional and AI-driven signals, advanced money management, trailing stops, and a database/statistics subsystem for adaptive optimization.

Key Features

  • AI/ML Integration: LSTM, PAI, and CONV neural network signals, with configurable feature pipelines and training options.
  • Traditional Signals: Modular support for classic indicators (MA, MACD, RSI, etc.) and price action patterns.
  • Money Management: Fixed lot, fixed risk, and intelligent/adaptive strategies.
  • Trailing Stops: ATR-based, MA-based, Parabolic SAR, and more.
  • Database/Statistics: Tracks trades, signals, and performance for optimization and research.
  • Configurable Inputs: All major features and strategies are user-configurable via Inputs.mqh.
  • Robust Initialization: Retry logic and error handling for all critical subsystems.
  • Production-Ready: Designed for institutional and advanced retail use, with a focus on maintainability and extensibility.

Directory Structure

  • AI/: Neural network and ML logic
  • Database/: Database and statistics management
  • Enumerations/: Enum and type definitions
  • Expert/: Main EA orchestration and custom logic
  • Money/: Money management strategies
  • Signals/: Signal generation (AI and traditional)
  • Structures/: Data structures for signals and trades
  • System/: Utility and infrastructure modules
  • Trailing/: Trailing stop strategies
  • Variables/: Global input parameters and runtime variables

Getting Started

  1. Configure your desired strategies and features in Variables/Inputs.mqh.
  2. Compile Warrior_EA.mq5 in MetaEditor.
  3. Attach to a chart and enable Algo Trading.
  4. Monitor logs and database/statistics for performance and optimization.

Modernization & AI/ML Roadmap

  • Migrate all hard-coded signals to a configurable, feature-driven pipeline.
  • Expand AI/ML subsystem with new models and training options.
  • Enhance database/statistics for deeper analytics and automated optimization.
  • Introduce unit and integration tests for all modules.

Documented April 2026. For subsystem details, see each directory's README.md and AI_NETWORK.md.