- MQL5 100%
| Article-22532-Self-Healing-Expert-SQLite-Persistence-Foundation.mqproj | ||
| README.md | ||
| SelfHealingExpert.mq5 | ||
Article-22532-Self-Healing-Expert-SQLite-Persistence-Foundation
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 the first part of a self-healing Expert Advisor architecture for MetaTrader 5. The article focuses on persistence: storing trade-management state in a local SQLite database so the EA can restore its internal state after terminal restarts, VPS interruptions, or crashes.
The implementation described in the article establishes:
- EA lifecycle scaffolding
- runtime trade-state modeling
- SQLite database initialization
- table creation
- saving active trade state
- checking whether saved state exists
- loading saved trade state back into memory
Original Article
- Article ID: 22532
- Author: Chacha Ian Maroa
- Publication date: 2026.05.29
- Category: Experts
- URL: https://www.mql5.com/en/articles/22532
Repository Purpose
This repository serves as a reference/reconstruction project for the article’s persistence layer. Its purpose is to preserve the article’s core design and code structure for:
- restart-safe EA architecture
- persistent storage of virtual trade-management state
- SQLite-backed recovery workflows in MQL5
- future extension into live recovery logic in later parts of the series
Key Concepts
- Volatile runtime memory vs persistent storage
- Recovery-sensitive trade metadata
- Local SQLite database usage in MQL5
- EA operational state machine
- Virtual SL/TP persistence
- Breakeven and trailing-stop recovery tracking
- Timer-based background continuity checks
- Rebuilding runtime state from saved database records
Algorithm / Architecture Summary
The article defines a basic Expert Advisor named SelfHealingExpert.mq5 with:
ENUM_TEST_TRADE_DIRECTIONENUM_EA_STATESTradeStatefor persistent operational trade data- global runtime variables for EA state, active trade state, and database handle
- standard event handlers:
OnInit,OnDeinit,OnTick,OnTimer
Persistence architecture described in the article:
- Open or create a local SQLite database using
DatabaseOpen. - Ensure the
trade_statestable exists withCREATE TABLE IF NOT EXISTS. - On EA startup, initialize the database and timer.
- Save active trade state with
SaveTradeState()usingINSERT OR REPLACE. - Check for saved state existence with
TradeStateExists(ticket). - Restore saved state into
STradeStatewithLoadTradeState(ticket, state). - Close the database cleanly in
OnDeinit().
The database file is described as:
MQL5/Files/self_healing_trade_manager.sqlite
The table stores fields corresponding to the runtime structure, including:
- ticket
- symbol
- magic
- direction
- volume
- entry price
- virtual SL / TP
- trailing metadata
- breakeven / trailing activation flags
- timestamps
- state marker such as
ACTIVE
Mentioned or Attached Files
Explicitly attached files
SelfHealingExpert.mq5
Mentioned in text only
- SQLite database file:
self_healing_trade_manager.sqlite
Statistics
- Series length mentioned: 5 parts
- Database tables defined in this part: 1
- Core persistence functions added in this part: 5
OpenDatabaseEnsureDatabaseTablesCloseDatabaseSaveTradeStateTradeStateExistsLoadTradeState- Event handlers present in the EA foundation: 4
OnInitOnDeinitOnTickOnTimer
Tags
MQL5 MetaTrader5 Expert-Advisor SQLite Persistence State-Recovery Trade-State Database Algorithmic-Trading
Difficulty
Intermediate
Limitations
- This repository is based on article content and should be treated as a reference/reconstruction unless the attached source file is actually present in the repository.
- The processed input does not provide the article ID, publication date, or category metadata.
- The article describes only the persistence foundation, not the full self-healing trading system.
- Live trade recovery, managed position detection, virtual SL/TP enforcement, and restart validation are stated as future parts of the series.
- No installation or deployment workflow beyond article-level guidance should be assumed.
- If the attached source file is missing from the repository, the full original source code is not available here.
Reference
Original article page: https://www.mql5.com/en/articles/22532