This repository is an article-derived reference project based on the original MQL5 article. It does not claim to reproduce the full original source code unless files are explicitly attached.
## Overview
This project documents and reconstructs the architecture described in MQL5 article 22495. The article presents a canvas-based AI trading assistant for MetaTrader 5 that bridges the gap between free-form AI chat and executable trading actions.
The described system introduces:
- a dispatch-driven action console with 7 actions
- structured AI responses using a line-based `KEY: VALUE` protocol
- parsing of AI output into trade-ready fields
- unified routing for market and pending order placement
- chart annotations for signals and levels
- a custom canvas UI with prompt editor, popups, markdown rendering, and toast notifications
The repository should be treated as a technical reference/reconstruction unless the full article attachments are present.
## Original Article
- **Article ID:** 22495
- **Title:** Dispatch-Driven AI Trading Signals
- **Author:** Allan Munene Mutiiria
- **Publication date:** 2026.05.18
- **Category:** GUI / AI
- **URL:** https://www.mql5.com/en/articles/22495
## Repository Purpose
The purpose of this repository is to preserve the structure and implementation ideas of the article as a reusable reference for MQL5 developers.
It is primarily useful for:
- studying a modular canvas-based EA architecture
- understanding how to constrain LLM output for deterministic parsing
- reviewing a dispatch-table approach for multiple trading actions
- reconstructing an article-based Expert Advisor from its described modules
- exploring chart-linked visualization of AI-generated trading signals
## Key Concepts
- Dispatch-driven action system using stable integer action IDs
- Seven-button signal console on the chart
- Separate handlers for:
- Get Chart Data
- Twin Bars
- Quick Scalp
- Daily Signal
- Trend Read
- Key Level
- Clear Drawings
- Shared AI bar preamble defining bullish/bearish/doji semantics
- Bar formatting in descending time order
- Line-oriented `KEY: VALUE` AI response protocol
- Parser for extracting structured fields from AI output
- Unified trade execution path for market and pending orders
- Volatility-aware stop/target buffering
- Canvas-based dashboard and editor instead of standard chart controls
- Hover-code based interaction dispatch
- Search/history popups, scrollbars, toast notifications, and markdown-like text rendering
## Algorithm / Architecture Summary
The article describes a modular EA split across include files and a main `.mq5` entry point.
High-level flow:
1. User clicks an action from the signal console.
2. A central dispatcher maps the selected integer action ID to its handler.
3. The handler gathers chart bars and context for the requested analysis type.
4. A constrained AI prompt is built using:
- a shared bar-definition preamble
- time-ordered bar data
- action-specific instructions
5. The AI returns a line-based response in `KEY: VALUE` format.
6. The EA parses the response using a dedicated key-value extractor.
7. Depending on the action:
- market orders may be placed immediately
- pending orders may be derived from level type and bias
8. The result is added to chat history and rendered as chart drawings anchored to the active timeframe.
9. Drawings can later be cleared through a dedicated action.
UI architecture described in the article includes:
- theme and palette module
- canvas primitive helpers
- centralized state storage
- reusable scrollbar state
- custom multiline prompt editor
- render orchestrator for main dashboard and popups
- interaction layer for keyboard/mouse routing
- logic layer for AI requests, parsing, trades, and persistence
- shell/main EA lifecycle wrappers
## Mentioned or Attached Files
### Explicitly attached files
The article lists the following attachments:
-`AI Canvas Theme.mqh`
-`AI JSON FILE.mqh`
-`AI Canvas Primitives.mqh`
-`AI Canvas State.mqh`
-`AI Canvas Scrollbar.mqh`
-`AI Canvas Editor.mqh`
-`AI Canvas Render.mqh`
-`AI Logic.mqh`
-`AI Canvas Interact.mqh`
-`AI Canvas Shell.mqh`
-`AI EA PART 9.mq5`
-`AI EA BMP FILES.zip`
### Files mentioned in article text
-`AI ChatGPT EA Part 9.mq5` as the main Expert Advisor entry point
- Embedded bitmap resources:
-`AI MQL5.bmp`
-`AI LOGO.bmp`
-`AI NEW CHAT.bmp`
-`AI CLEAR.bmp`
-`AI HISTORY.bmp`
-`AI SEARCH.bmp`
- Icon resource:
-`1. Forex Algo-Trader.ico`
## Statistics
- **Source modules described:** 9 include modules + main EA entry point
- **Dispatch actions:** 7
- **UI approach:** Canvas-based custom interface
- **AI response format:** Line-based `KEY: VALUE`
- **Order styles described:** Market and pending orders
- **Backtesting:** Mentioned and illustrated in the article