MQLArticles Logo

A comprehensive collection of MQL5 implementations for risk management and position management in algorithmic trading. This repository contains the source code from articles published on MQL5.com by nique_372..

--- ## Main features > MQLArticles is not a single library: it's an ecosystem of ~13 independent modules (several used in production within the TSN ecosystem). Each folder in the table below is its own library, with its own detailed README inside the folder — this section only summarizes what each one solves. | Module | What it solves | |--------|--------------| | **[RM](./RM/README.md)** | Risk management: lot size calculation, dynamic SL/TP, OCO orders, max loss/profit limits with automatic position closing. | | **[PosMgmt](./PosMgmt/README.md)** | Open position management: breakeven (by fixed points, ATR or RRR), partial closes by volume, and partial closes conditioned on indicators (RSI, etc.). | | **[Strategy](./Strategy/README.md)** | Framework for building EAs by composition: chainable entry filters (RSI, Stochastic, Bands, SuperTrend...), a text-based logic rule engine, and time filters (day/year). | | **[Utils](./Utils/README.md)** | Core of cross-cutting utilities used by the rest of the ecosystem — see submodules below. | |  [Utils/FA](./Utils/FA/README.md) | Shared base classes: ATR, pointer auto-cleanup, bar control, simple logging, diffs, sorting. | |   [Utils/LogFile](./Utils/LogFile/README.md) | File logging system with parsing and configurable levels. | |   [Utils/SetFiles](./Utils/SetFiles/README.md) | Programmatic generation and editing of .set files (EA parameters). | |   [Utils/EnumsStr](./Utils/EnumsStr/README.md) | Automatic enum-to-string conversion (with a code generator). | |   [Utils/Bits](./Utils/Bits/README.md) | Bit manipulation, fast buffers and hashing. | |   [Utils/StrMatch](./Utils/StrMatch/README.md) | Simplified string matching (lightweight pattern matching). | |   [Utils/File](./Utils/File/README.md) | File operations and path handling. | |   [Utils/MBen](./Utils/MBen/README.md) | Benchmarking of multiple code blocks. | |   [Utils/TfI](./Utils/TfI/README.md) | Timeframe utilities. | | **[IndicatorsCts](./IndicatorsCts/README.md)** | Generic wrapper for consuming technical indicators with a reusable instance pool. | | **[Ob](./Ob/README.md)** | Order Blocks indicator + example EAs that consume it (published articles). | | **[Examples](./Examples)** | Working EAs/scripts that put the libraries above into practice (breakeven panel, risk management panel, lot size / SL test scripts). | | **[MqlCompilerBugs](./MqlCompilerBugs)** | Minimal reproductions of MQL5 compiler bugs found while building this ecosystem, each with its own README. | | **[Sets](./Sets)** | `.set` preset files used by published articles (currently the partial-close article, #19682). | | **[Defines](./Defines)** | Notes on optional `#define`s to enable extra logging/strictness in specific classes across the repo. | > Code snippets for each module (with real usage examples) now live in that folder's own README — this root README is the ecosystem map, not the class catalog. --- ## Repository Structure | Folder | Description | |---------|-------------| | **Defines** | Markdown files containing optional defines to activate or increase logging verbosity for specific classes in the repository. | | **Examples** | Basic examples that implement various libraries from the MQLArticles repository, such as risk management, position management, etc. | | **Images** | Screenshots and visual assets from repository examples (breakeven manager, lot size calculator, order blocks indicator). | | **IndicatorsCts** | Wrapper library for implementing technical indicators. | | **Ob** | Order Blocks indicator implementation and example Expert Advisors from published articles (author: nique_372). | | **PosMgmt** | Position management libraries including:
- Breakeven management
- Partial position closure
- Conditional partial closure with indicator-based conditions | | **RM** | Complete Risk Management (RM) library modules. | | **Utils** | Core utility library for EAs, indicators, and libraries. | **Sets** | Preset configuration files (.set) used in articles published by nique_372. | | **Strategy** | Strategy implementation framework for the MQLArticles ecosystem. | --- ## Examples - Examples\\GUI\\BE\\Ea.mq5 ![Imagen](./Images/breakeven_manager.png) - Examples\\GUI\\Risk_Management_Panel.mq5 ![Imagen](./Images/lot_size_calculator.png) - Ob\\Indicator\\OrderBlockIndPart2.mq5 ![Imagen](./Images/ob_ind.png) --- ## Implemented Article Series ### Risk Management | Part | Main Topic | Article Link | |-------|----------------|-------------------| | **Part 1** | Risk management fundamentals | [[EN]](https://www.mql5.com/en/articles/16820) | | **Part 2** | Lot size calculation | [[ES]](https://www.mql5.com/es/articles/16985) | | **Part 3** | Base class construction | [[ES]](https://www.mql5.com/es/articles/17249) | | **Part 4** | Completing key functions of the CRiskManagement class | [[ES]](https://www.mql5.com/es/articles/17508) | | **Part 5** | Integrating risk management into an EA (Order Block) | [[ES]](https://www.mql5.com/es/articles/17640) | > **Important Update**: The RiskManagement library has been completely renovated since the last publication (part 5). ### Position Management - Breakeven | Part | Focus | Article Link | |-------|---------|-------------------| | **Part 1** | Base class and breakeven by fixed points | [[ES]](https://www.mql5.com/es/articles/17957) | | **Part 2** | Breakeven by ATR and RRR | [[ES]](https://www.mql5.com/es/articles/18111) | ### Position Management - Partial Closes | Focus | Article Link | |-------|--------------------| | Implementation of partial closes in MQL5 | [[ES]](https://www.mql5.com/es/articles/19682) | ### Position Management - Conditional partial closure | Focus | Article Link | |-------|--------------------| | Implementation of the base class in MQL5 | [[ES]](https://www.mql5.com/es/articles/20048) | ### Order Block Indicator | Part | Focus | Article Link | |-------|---------|-------------------| | **Part 1** | Initial implementation of Order Blocks in an indicator | [[EN]](https://www.mql5.com/en/articles/15899) | | **Part 2** | Signal implementation in the Order Block indicator | [[EN]](https://www.mql5.com/en/articles/16268) | --- ## License **[Read Full License](./LICENSE)** By downloading or using this repository, you accept the license terms. --- ## Requirements See the [dependencies.json](./dependencies.json) file. --- ## Installation of repo code ```bash cd "C:\Users\YOUR USER\AppData\Roaming\MetaQuotes\Terminal\YOUR ID\MQL5\Shared Projects" tsndep install "https://forge.mql5.io/nique_372/MQLArticles.git" ``` - Using the `tsndep` command requires the `tsndep` package (available on [PyPI](https://pypi.org/project/tsndep)). This command automatically downloads all dependencies and installs every requirement from the repositories. - If any part of the system is private, the install will fail. Contact me so I can grant you access (if it's a product, you can purchase it; if you have any questions, don't hesitate to reach out). Check the dependencies.json file for more info. --- ## Contact - **Platform:** [MQL5 Community](https://www.mql5.com/es/users/nique_372) - **Profile:** https://www.mql5.com/es/users/nique_372 - **My Articles** https://www.mql5.com/es/users/nique_372/publications