161 lines
7.9 KiB
Markdown
161 lines
7.9 KiB
Markdown
<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
|
||
|
||

|
||
|
||
|
||
- Examples\\GUI\\Risk_Management_Panel.mq5
|
||
|
||

|
||
|
||
|
||
- Ob\\Indicator\\OrderBlockIndPart2.mq5
|
||
|
||

|
||
|
||
---
|
||
|
||
|
||
## 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
|
||
|