# MQL5 Programming for Traders Examples from the book "MQL5 Programming for Traders" - author Stanislav Korotky Репозиторий разложен в [**стандартную структуру каталога `MQL5/`**](https://www.metatrader5.com/en/metaeditor/help/structure) (Scripts / Experts / Indicators / Include / Files и т.д.) и сгруппирован по частям книги (**p1 … p7**), чтобы было удобно: - открывать проект в MetaEditor, - компилировать примеры по мере чтения книги, - запускать их в терминале MetaTrader 5 и в тестере стратегий. ![Программирование на MQL5 для трейдеров](Book-MQL5.jpg) ## Ссылки - Книга (онлайн): https://www.mql5.com/en/book - Репозиторий (Algo Forge): https://forge.mql5.io/rosh/MQL5Book Публикации в CodeBase с исходниками по частям: - Часть 1: https://www.mql5.com/en/code/45590 - Часть 2: https://www.mql5.com/en/code/45591 - Часть 3: https://www.mql5.com/en/code/45592 - Часть 4: https://www.mql5.com/en/code/45593 - Часть 5: https://www.mql5.com/en/code/45594 - Часть 6: https://www.mql5.com/en/code/45595 - Часть 7: https://www.mql5.com/en/code/45596 ## Содержание по частям > Краткое назначение частей — чтобы быстро понять, где искать примеры и что именно тренировать. - **Часть 1 — Знакомство с MQL5 и средой разработки (p1)** Первые шаги: работа в MetaEditor, редактирование/компиляция/запуск, базовые типы и переменные, выражения, массивы, отладка, вывод данных. - **Часть 2 — Основы программирования на MQL5 (p2)** Базовые «строительные блоки» языка: типы данных, идентификаторы, переменные, операторы, выражения, инструкции и построение процедурной логики. - **Часть 3 — Объектно-ориентированное программирование на MQL5 (p3)** Примеры ООП для управления сложностью: классы/объекты, шаблоны и приёмы структурирования кода. - **Часть 4 — Общеупотребительные MQL5 API (p4)** Практика работы со встроенными функциями терминала (API): от «самых простых и полезных» к более специализированным подсистемам. - **Часть 5 — Создание прикладных программ на MQL5 (p5)** Прикладные задачи: анализ/обработка данных, визуализация на графике, автоматизация действий, интерактивное взаимодействие с пользователем. - **Часть 6 — Автоматизация торговли (p6)** Всё, что нужно для торговых роботов: торговое окружение (инструменты/счёт), торговые структуры и функции, события, работа в тестере. - **Часть 7 — Расширенные средства MQL5 (p7)** Продвинутые API/интеграции: пользовательские инструменты, экономический календарь, сеть, базы данных, криптография и т.п. ## Структура репозитория Папки соответствуют стандартной раскладке каталога данных MetaTrader 5 (`…/MQL5/`): ```text MQL5Book/ ├─ Experts/ # советники (EA) — по частям (p5, p6, p7) ├─ Indicators/ # индикаторы — по частям (p5, p6, p7) ├─ Scripts/ # скрипты — по частям (p1 … p7) + Python-примеры │ ├─ p1/ │ ├─ p2/ │ ├─ p3/ │ ├─ p4/ │ ├─ p5/ │ ├─ p6/ │ ├─ p7/ │ └─ Python/ ├─ Services/ # сервисы (p4, p5, p7) ├─ Include/ # .mqh: вспомогательные классы/утилиты, используемые в примерах ├─ Libraries/ # примеры библиотек (.mq5) ├─ Files/ # файлы данных для примеров (чтение/запись, ресурсы и т.п.) ├─ Web/ # html/css/js, используемые отдельными примерами ├─ Presets/ # .set пресеты параметров (для индикаторов/советников) └─ MQL5Book.mqproj # файл проекта MetaEditor ```` ## Примечания - Примеры предназначены для обучения и экспериментов. Перед использованием на реальном счёте обязательно тестируйте в [Strategy Tester (Тестер стратегий)](https://www.metatrader5.com/ru/automated-trading/strategy-tester) и/или на демо-счёте. - Папка `Scripts/Python` содержит примеры для интеграции MetaTrader 5 с Python. Требуется включить соответствующие [настройки в терминале](https://www.metatrader5.com/ru/terminal/help/startworking/settings#ea): ## Лицензия и права Материалы относятся к книге «Программирование на MQL5 для трейдеров» и экосистеме MQL5/MetaTrader 5. Пожалуйста, учитывайте авторские права и условия использования MQL5.com/MetaQuotes при распространении/переиспользовании кода. ## Контрибьютинг * Баги/улучшения: используйте [**Issues**](https://forge.mql5.io/rosh/MQL5Book/issues). * Pull Request приветствуются: оформляйте изменения по частям (p1…p7), чтобы их было проще проверять и сопоставлять с книгой.