MQLArticles/README.md
Nique_372 4ebcc12123
2026-09-06 11:35:17 -05:00

161 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p align="center">
<img src="./Images/MQLArticles.png" alt="MQLArticles Logo" width="1150" height="175"/>
</p>
<p align="center">
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..
</p>
<p align="center">
<img src="https://img.shields.io/badge/Language-MQL5-1B6CA8?style=flat-square"/>
<img src="https://img.shields.io/badge/Platform-MetaTrader%205-0D1B2A?style=flat-square"/>
<img src="https://img.shields.io/badge/Author-nique__372-C9D6DF?style=flat-square&logoColor=white"/>
<img src="https://img.shields.io/badge/Articles-mql5.com-1B6CA8?style=flat-square"/>
</p>
---
## 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:<br>- Breakeven management<br>- Partial position closure<br>- 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