Статьи по программированию на языках MQL4 и MQL5

icon

Изучайте язык программирования торговых стратегий MQL5 по опубликованным здесь статьям, большая часть которых написана вами - членами сообщества. Все статьи разделены на категории для быстрого поиска ответа по тому или иному аспекту программирования: "Интеграция", "Тестер", "Торговые стратегии" и многое другое.

Следите за новыми публикациями и участвуйте в их обсуждении на форуме!

Новая статья
последние | лучшие
preview
Моделирование рынка: Position View (XVII)

Моделирование рынка: Position View (XVII)

В предыдущей статье мы сделали так, чтобы индикатор отображал финансовый результат. Однако не всем нравится использовать этот режим отображения. Причины могут различаться от трейдера к трейдеру, хотя в некоторых случаях они кажутся мне вполне разумными и оправданными. Адаптировать код, чтобы предоставить такую возможность, — отнюдь не одна из самых сложных задач. На самом деле это довольно просто. В этой статье мы рассмотрим, как это сделать.
preview
Машинное обучение и Data Science (Часть 48): Насколько важны трансформеры для трейдинга?

Машинное обучение и Data Science (Часть 48): Насколько важны трансформеры для трейдинга?

От ChatGPT до Gemini и множества других инструментов на базе искусственного интеллекта для генерации текста, изображений и видео – трансформеры произвели фурор в мире искусственного интеллекта. Но применимы ли они в финансовой сфере, в частности в трейдинге? Постараемся разобраться.
preview
Изучение стандартной библиотеки MQL5 (Часть 12): Мультитаймфреймный дашборд на основе составного показателя

Изучение стандартной библиотеки MQL5 (Часть 12): Мультитаймфреймный дашборд на основе составного показателя

В статье реализован CMultiTimeframeMatrix, переиспользуемый дашборд, который сопоставляет символы с таймфреймами и отображает числовой показатель с цветовой кодировкой. Показатель объединяет тренд и импульс с вычетом волатильности, обновляется по таймеру и учитывает ограничения производительности. Вы узнаете, как создавать пользовательский интерфейс с помощью CAppDialog/CLabel, вычислять метрики с помощью CMatrixDouble и встраивать компонент в простой советник для получения целостной картины рынка в реальном времени.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OpenCL примитивы)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OpenCL примитивы)

Статья продолжает практическую реализацию фреймворка OMPB для адаптации прогнозных моделей к смене рыночного режима. Рассматриваем вычислительную декомпозицию фреймворка и реализуем недостающие OpenCL-примитивы: ограниченный Disagreement, распространение градиента Mismatch и поэлементный расчёт KL-дивергенции для байесовского слоя. Полученные компоненты образуют параллельную GPU-основу без переноса больших промежуточных тензоров на CPU и подготавливают сборку полноценного OMPB-слоя в библиотеке нейронных сетей MQL5.
preview
От начального до среднего уровня: Очереди, списки и деревья (VIII)

От начального до среднего уровня: Очереди, списки и деревья (VIII)

В этой статье мы рассмотрим, как реализовать алгоритм балансировки дерева. Здесь я представлю свой вариант реализации этого алгоритма. Существует множество других алгоритмов с той же целью. Тем не менее, у каждого из них есть свои преимущества и недостатки. Вам, мой дорогой читатель, предстоит изучить их и найти тот, который лучше всего соответствует вашим потребностям.
preview
От начального до среднего уровня: Перегрузка операторов (V)

От начального до среднего уровня: Перегрузка операторов (V)

В этой статье мы рассмотрим, как изменить код, чтобы реализовать решение, совершенно отличающееся от того, что многие считают возможным в MQL5. Важное замечание: чтобы правильно понять данный материал, необходимо хорошо усвоить понятия, рассмотренные в предыдущих статьях.
preview
Создание HTML-дашборда для Тестера стратегий и анализа проп-фирменных испытаний в MQL5

Создание HTML-дашборда для Тестера стратегий и анализа проп-фирменных испытаний в MQL5

В этой статье показано, как создать многоразовый модуль оценки проп-фирм для советников MQL5 и экспортировать результаты на HTML-дашборд. Модуль отслеживает баланс и капитал во время тестирования стратегий на исторических данных, имитирует одиночные или скользящие серии испытаний, проверяет целевую прибыль, дневную и общую просадку, а также минимальное количество торговых дней, после чего выводит как итоговый отчет, так и отчет в HTML-формате, который можно открыть в браузере.
preview
От начального до среднего уровня: Перегрузка операторов (II)

От начального до среднего уровня: Перегрузка операторов (II)

Поначалу эта статья может показаться довольно запутанной из-за материала, который я собираюсь в ней изложить. Тем не менее я постарался изложить всё как можно проще и доступнее. Надеюсь, вы поймёте то, что я здесь покажу, и это когда-нибудь вам пригодится.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 91): Использование списков с пропусками и сети Хопфилда в пользовательском классе трейлинга

Возможности Мастера MQL5, которые вам нужно знать (Часть 91): Использование списков с пропусками и сети Хопфилда в пользовательском классе трейлинга

В следующем исследовании идей, тестируемых с помощью Мастера MQL5, рассмотрим, могут ли списки с пропусками и сеть Хопфилда сформировать стратегию трейлинга, направленную на защиту прибыли. Как уже отмечалось, управлению трейлинг-стопом в торговых системах часто уделяется меньше внимания, чем сигналам входа или управлению капиталом. Трейлинг-стопы могут сыграть решающую роль, например на трендовых рынках, поэтому данный подход тестируется на GBPJPY.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 84): Использование паттернов стохастического осциллятора и FrAMA – Окончание

Возможности Мастера MQL5, которые вам нужно знать (Часть 84): Использование паттернов стохастического осциллятора и FrAMA – Окончание

Стохастический осциллятор и фрактальная адаптивная скользящая средняя образуют пару взаимодополняющих индикаторов, которую можно использовать в советнике MQL5. Эту пару индикаторов мы представили в предыдущей статье, а теперь завершим ее рассмотрение, разобрав оставшиеся пять сигнальных паттернов. Как и прежде, для создания советника и проверки потенциала этой пары индикаторов используем Мастер MQL5.
preview
Мастер-класс по созданию пользовательских индикаторов (Часть 2): Разработка практического советника Supertrend на MQL5

Мастер-класс по созданию пользовательских индикаторов (Часть 2): Разработка практического советника Supertrend на MQL5

Узнайте, как с нуля создать советник на основе индикатора Supertrend на языке MQL5. В статье рассматриваются встраивание индикатора в качестве ресурса, считывание значений его буферов на закрытых барах, обнаружение подтвержденных смен направления, приведение позиций в соответствие с сигналом и переворот позиций, а также настройка режимов стоп-лосса и размера позиции. В заключение рассматриваются настройка Тестера стратегий и проведение воспроизводимых тестов. В результате получается настраиваемый советник и четкая основа для дальнейших исследований и доработок.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 89): Использование побитовой векторизации с перцептронными классификаторами

Возможности Мастера MQL5, которые вам нужно знать (Часть 89): Использование побитовой векторизации с перцептронными классификаторами

В этой статье представлен пользовательский класс сигнала на языке MQL5 CSignalBitwisePerceptron для сверхлегкой логики входа. Он упаковывает 64 бара в одно значение uint64 с помощью побитовой векторизации и оценивает их перцептроном, который суммирует соответствующие веса лишь для битов, равных 1. Двухуровневая схема – алгоритмическая битовая карта и нейронный порог – сводит к минимуму перебор массивов и сложные вычисления. Читатели получают практический шаблон для сокращения задержек и повышения точности подтверждения входа.
preview
Разработка самовосстанавливающегося советника в MQL5 (Часть 2): Виртуальная защита сделок, устойчивая к перезапуску

Разработка самовосстанавливающегося советника в MQL5 (Часть 2): Виртуальная защита сделок, устойчивая к перезапуску

Постройте уровень виртуальной защиты, устойчивый к перезапускам, поверх механизма персистентности SQLite из Части 1. Советник восстанавливает скрытые стоп-лосс и тейк-профит после перезапуска, сверяет текущую цену с восстановленными уровнями выхода и в зависимости от результата либо закрывает позиции, либо продолжает ими управлять. В результате формируется согласованный сценарий восстановления, который обнаруживает управляемые позиции и обеспечивает безопасное управление во время выполнения.
preview
Изучение стандартной библиотеки MQL5 (Часть 13): Применение библиотеки математических решателей в торговле

Изучение стандартной библиотеки MQL5 (Часть 13): Применение библиотеки математических решателей в торговле

Мы представляем полный рабочий процесс для адаптивной фильтрации в MQL5 с использованием решателя CNlEq, подобного алгоритму Левенберга — Марквардта. Советник подбирает параметры модели VAMAC — две экспоненциальные скользящие средние (EWMA) с масштабированием на основе ATR — путем передачи остатков и Якобиана через цикл механизма обратного обмена с решателем CNlEq, с возможностью использования численных или аналитических производных. Код, инструкции по настройке и тесты по паре GBPUSD на таймфрейме H1 показывают, как заменить статические пороги динамической переоценкой на закрытии каждого бара.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 85): Использование паттернов стохастического осциллятора и FrAMA с обучением на основе инференса β-VAE

Возможности Мастера MQL5, которые вам нужно знать (Часть 85): Использование паттернов стохастического осциллятора и FrAMA с обучением на основе инференса β-VAE

Этот материал является продолжением части 84, в которой мы представили связку стохастического осциллятора (Stochastic) и фрактальной адаптивной скользящей средней (FrAMA). Теперь перейдем к обучению на основе инференса и проверим, удастся ли переломить неудачную динамику отстающих паттернов. Stochastic и FrAMA образуют взаимодополняющую связку индикаторов: один отвечает за моментум, другой – за тренд. Для обучения на основе инференса вновь используем β-VAE – вариационный автокодировщик с бета-параметром. Как и обычно, реализуем пользовательский класс сигнала для интеграции с Мастером MQL5.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (Окончание)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (Окончание)

Завершаем адаптацию фреймворка OMPB к торговой модели средствами MQL5. Новый слой встраивается в энкодер состояния рынка между RankTCM и ScenarioForecast. Мы рассматриваем двухэтапное обучение Forecast, разделение истории на Reference и Calibration, фиксацию базовой модели и последующую калибровку OMPB. В практической части показано переключение режимов слоя, контроль неизменности замороженных компонентов и итоговое тестирование системы на данных 2026 года.
preview
Нейросети в трейдинге: Двухуровневая адаптация торговой политики (Объект верхнего уровня)

Нейросети в трейдинге: Двухуровневая адаптация торговой политики (Объект верхнего уровня)

Продолжаем адаптацию фреймворка D2Skill и переходим к построению объекта верхнего уровня CD2Skill для двухуровневой коррекции торговой политики. Механизм интегрируется в архитектуру ORION и дополняет существующий Актёр банками Task Skills и Step Skills. Показаны принципы их инициализации, включения в прямой проход и обучения по псевдоостаткам. Особое внимание уделяется сохранению исходного вычислительного конвейера, причинного порядка и независимости Критика.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 82): Использование паттернов TRIX и WPR в обучении с подкреплением DQN

Возможности Мастера MQL5, которые вам нужно знать (Часть 82): Использование паттернов TRIX и WPR в обучении с подкреплением DQN

В предыдущей статье мы рассмотрели сочетание Ишимоку и ADX в рамках обучения на основе инференса. В этой статье мы вновь обращаемся к обучению с подкреплением применительно к паре индикаторов, которую уже рассматривали в части 68: TRIX и Williams Percent Range. В этой статье используем алгоритм алгоритм DQN с квантильной регрессией. Как обычно, представляем его в виде пользовательского класса сигнала, предназначенного для использования с Мастером MQL5.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 83): Использование паттернов стохастического осциллятора и FrAMA — поведенческие архетипы

Возможности Мастера MQL5, которые вам нужно знать (Часть 83): Использование паттернов стохастического осциллятора и FrAMA — поведенческие архетипы

Стохастический осциллятор и фрактальная адаптивная скользящая средняя образуют еще одну пару взаимодополняющих индикаторов, которую можно использовать в советнике MQL5. Стохастический осциллятор позволяет точно выявлять изменения моментума, а FrAMA подтверждает преобладающие тренды. Как и прежде, для изучения этой пары индикаторов используем Мастер MQL5, чтобы создать советник и проверить ее потенциал.
preview
Моделирование рынка: Position View (XVIII)

Моделирование рынка: Position View (XVIII)

В этой статье я показал, в максимально доступной форме, как можно модифицировать и доработать код, способный решать определённые задачи, при этом минимально изменяя уже существующий код. Мы добавим индикатор объема и одновременно не позволим пользователю или трейдеру удалять объекты, создаваемые индикатором позиции.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (Объект верхнего уровня)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (Объект верхнего уровня)

Представлен объект верхнего уровня CNeuronOMPBOCL для адаптации рыночного представления внутри энкодера. Он объединяет байесовскую остаточную поправку, групповой затвор, раздельные истории Source и Target, оценку Mismatch и KL-ограничение. Разобраны инициализация, режимы работы, числовые проверки, прямой и обратный проходы в MQL5/OpenCL. Реализация разделяет прогноз и последующее обновление параметров и даёт готовый слой для дальнейшей интеграции в модель.
preview
От начального до среднего уровня: Очереди, списки и деревья (VII)

От начального до среднего уровня: Очереди, списки и деревья (VII)

В этой статье мы наглядно и понятно покажем и объясним, как удаляется узел из дерева. Этот процесс обычно скорее сбивает новичков с толку, чем помогает им понять, как он выполняется и почему его нужно выполнять именно так.
preview
Изучение стандартной библиотеки MQL5 (Часть 11): Как создать матричный индикатор структуры рынка в MQL5

Изучение стандартной библиотеки MQL5 (Часть 11): Как создать матричный индикатор структуры рынка в MQL5

Научитесь проектировать индикатор в MQL5, который преобразует тренд, импульс и волатильность в единый сырой показатель, используя matrix.mqh (ALGLIB). В статье рассматривается осциллятор с отдельным окном для проверки основной математики, а затем индикатор для основного графика, который отображает стрелки сигналов на покупку и продажу без перерисовки, когда показатель пересекает заданные пользователем пороговые значения. Дополнительный фильтр на основе долгосрочной EMA, минимальный интервал в барах между сигналами и встроенные оповещения делают инструмент практичным для торговли в реальном времени.
preview
Моделирование рынка: В единстве — сила (I)

Моделирование рынка: В единстве — сила (I)

Мы подходим к финишной прямой. Разработка системы репликации/моделирования почти завершена. Конечно, нам ещё предстоит доделать кое-что, но по сравнению со всем, что мы уже сделали, реализовать оставшееся будет несложно. Однако всё, что будет показано в этой статье, необходимо как следует усвоить и понять. Поэтому я желаю вам приятного чтения и, прежде всего, получить удовольствие от этого последнего этапа пути.
preview
Моделирование рынка: В единстве — сила (II)

Моделирование рынка: В единстве — сила (II)

До сих пор приложение, разрабатываемое в рамках этой серии статей, было сосредоточено исключительно на моделировании графической части. Однако, чтобы получить более полную систему, в которой мы сможем протестировать советник в рамках сервиса репликации/моделирования, нам также необходимо смоделировать торговый сервер. Вы заметите, что это моделирование будет включать только самые необходимые элементы. Тем не менее вы, уважаемый читатель, сможете дополнить недостающие части. Поскольку эти дополнительные компоненты не влияют на то, что я хочу показать, у нас уже более чем достаточно для реализации задуманного.
preview
Система аудита счета в MQL5 (Часть 1): Проектирование пользовательского интерфейса

Система аудита счета в MQL5 (Часть 1): Проектирование пользовательского интерфейса

В этой статье мы разработаем слой пользовательского интерфейса системы аудита счёта в MQL5 с использованием классов CChartObject. Создадим размещаемую на графике информационную панель, отображающую основные показатели: начальный и конечный баланс, чистую прибыль, общее количество сделок, число прибыльных и убыточных сделок, процент прибыльных сделок, выведенные средства и оценку эффективности в виде звёзд. Кнопка меню позволяет отображать и скрывать панель и восстанавливает торговлю в один клик. В результате получается удобная основа для дальнейшего развития системы аудита счёта.
preview
От начального до среднего уровня: Перегрузка операторов (IV)

От начального до среднего уровня: Перегрузка операторов (IV)

В этой статье мы сделаем первое приближение к тому, чтобы показать, как можно реализовать перегрузку оператора индексации, а также оператора присваивания, стараясь предложить всем практический и интересный подход. То, что мы здесь увидим, — лишь часть того, что я ещё намерен показать и что напрямую связано с перегрузкой этих операторов.
preview
Разработка инструментария для анализа Price Action (Часть 72): Создание индикатора заполнения гэпов на MQL5

Разработка инструментария для анализа Price Action (Часть 72): Создание индикатора заполнения гэпов на MQL5

Инструмент заполнения гэпов выходного дня для MetaTrader 5, готовый к использованию советниками: он обнаруживает гэпы, подтверждает их полное заполнение и записывает детерминированные значения Buy и Sell в буферы индикатора. Он восстанавливает исторические события, отслеживает рынок в реальном времени без перерисовки и визуализирует структуру гэпов непосредственно на графике. Настраиваемые алерты и наглядные графические объекты поддерживают как ручной анализ, так и автоматическое исполнение.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OMPB)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OMPB)

В статье разбирается фреймворк OMPB для онлайн-калибровки прогнозов при сдвиге распределения временных рядов. Рассматриваются архитектура, PAC-Bayes сертификат с учётом временной зависимости и измерение расхождения Mismatch между исходной и целевой областями. На практике начинается адаптация под MQL5: реализован байесовский линейный слой, который станет основой корректирующего модуля и позволит настраивать модель без полного переобучения.
preview
Изучение стандартной библиотеки MQL5 (Часть 10): Канал полиномиальной регрессии

Изучение стандартной библиотеки MQL5 (Часть 10): Канал полиномиальной регрессии

Сегодня мы рассмотрим еще одну составляющую ALGLIB и задействуем её математический потенциал, чтобы создать индикатор на основе полиномиальной регрессии (Polynomial Regression Channel). К концу этой статьи вы получите практические знания о разработке индикаторов с использованием стандартной библиотеки MQL5, а также полностью функциональный, математически обоснованный исходный код индикатора.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 88): Использование фильтра Блума с пользовательским классом трейлинга

Возможности Мастера MQL5, которые вам нужно знать (Часть 88): Использование фильтра Блума с пользовательским классом трейлинга

Следующая тема в серии идей, которые можно быстро прототипировать с помощью Мастера MQL5, – пользовательский класс трейлинга, использующий фильтр Блума. Системы трейлинг-стопов – необязательная, но полезная часть любой торговой системы. В этой серии они рассматриваются наряду с традиционными сигналами входа.
preview
Интеграция MQL5 с пакетами обработки данных (Часть 9): Адаптивная оценка волатильности на основе энтропии

Интеграция MQL5 с пакетами обработки данных (Часть 9): Адаптивная оценка волатильности на основе энтропии

В этой статье представлен сквозной пайплайн: сбор данных MetaTrader 5, создание признаков на основе энтропии, волатильности и тренда, обучение классификатора PyTorch и предоставление прогнозов через API Flask. Советник MQL5 на каждом тике отправляет скользящее окно цен, получает вероятность и режим волатильности, а затем адаптивно рассчитывает размер позиции и расстояние до стоп-лосса. В результате получается ясная схема интеграции инференса машинного обучения с MetaTrader 5.
preview
Пайплайны Codex: от Python к MQL5 для выбора индикаторов — анализ ETF FXI за несколько кварталов

Пайплайны Codex: от Python к MQL5 для выбора индикаторов — анализ ETF FXI за несколько кварталов

Мы продолжаем рассматривать возможности использования MetaTrader за пределами «зоны комфорта» форекс-трейдинга, обратив внимание на ещё один торгуемый актив — ETF FXI. В отличие от предыдущей статьи, где мы попытались охватить «слишком много», углубившись не только в выбор индикаторов, но и в рассмотрение комбинаций индикаторных паттернов, в этой статье мы сделаем небольшой шаг назад и сосредоточимся в большей степени на выборе индикаторов. Наш конечный продукт в данном случае задуман как своего рода пайплайн, который может помочь рекомендовать индикаторы для различных активов при наличии достаточного объема их ценовой истории.
preview
Анализ CSV-данных (Часть 6): Нормализация результатов по нескольким брокерам и сверка CSV между платформами

Анализ CSV-данных (Часть 6): Нормализация результатов по нескольким брокерам и сверка CSV между платформами

В статье представлен фреймворк нормализации CSV-данных от нескольких брокеров. Подключаемый файл MQL5 дополняет экспорт брокерскими метаданными. Модуль Python устраняет расхождения схем — различия в разрядности котирования, соглашениях о пунктах, именовании символов, смещениях часовых поясов, моделях учёта комиссии и валютах номинирования счёта и прибыли — и формирует единый канонический набор данных. Сравнительные визуализации распределений проскальзывания и результатов после учёта издержек позволяют надёжно сопоставлять результаты стратегии между разными брокерскими средами без незаметного искажения данных.
preview
Создание и использование Скиллов для создания артефактов MQL. Часть 2

Создание и использование Скиллов для создания артефактов MQL. Часть 2

Развиваем скилл MQL-TUTOR для генерации артефактов MQL5: добавляем логирование, файл проекта, единый стиль и аккуратный режим Edit. Подключаем опциональный поиск документации через MCP, вводим проверку «здоровья» скилла и поддержку служебных скриптов. В итоге получаем воспроизводимый процесс создания и редактирования скриптов с контролем ошибок, прозрачной историей изменений и меньшими трудозатратами.
preview
Разработка инструментария для анализа Price Action (Часть 73): Построение системы торговых сигналов для гэпов выходного дня в MQL5

Разработка инструментария для анализа Price Action (Часть 73): Построение системы торговых сигналов для гэпов выходного дня в MQL5

Мы расширяем инструментарий для работы с гэпами выходного дня индикатором, который преобразует структуру гэпа в торговые сигналы. Когда цена подтверждает возврат обратно в гэп, индикатор отображает стрелки Buy и Sell, устанавливает тейк-профит на противоположной границе и размещает стоп-лосс по экстремумам текущей недели. Он работает без перерисовки, восстанавливает исторические сигналы, обновляется в реальном времени и предоставляет буферы, пригодные для использования советником, с метками входа и уровнями TP/SL.
preview
Изучение стандартной библиотеки MQL5 (Часть 14): Создание советника для динамического хеджирования с использованием ALGLIB (ap.mqh)

Изучение стандартной библиотеки MQL5 (Часть 14): Создание советника для динамического хеджирования с использованием ALGLIB (ap.mqh)

В этой статье представлен ap.mqh, порт ALGLIB для MQL5, и продемонстрировано его использование в многоактивных сценариях работы, требующих надежной линейной алгебры. Рассматривается почему встроенных индикаторов недостаточно, а затем реализуются полиномиальная регрессия, индикатор скользящей корреляционной матрицы и адаптивный оценщик коэффициента хеджа с использованием гребневой ​​регрессии с разложением Холецкого. Практический код показывает, как вычислять z-показатели спреда и согласованно исполнять парные сделки полностью в MetaTrader 5.
preview
Интеграция MQL5 с пакетами обработки данных (Часть 6): Объединение рыночной обратной связи и адаптации модели

Интеграция MQL5 с пакетами обработки данных (Часть 6): Объединение рыночной обратной связи и адаптации модели

В этой части рассматривается объединение рыночной обратной связи в реальном времени – результатов текущих сделок, изменений волатильности и сдвигов ликвидности – с адаптивным обучением модели. Это сделает торговую систему отзывчивой и способной к постоянному самосовершенствованию.
preview
Разработка инструментария для анализа Price Action (Часть 71): Картирование структуры гэпов выходного дня в MQL5

Разработка инструментария для анализа Price Action (Часть 71): Картирование структуры гэпов выходного дня в MQL5

В статье представлена реализация на MQL5 на основе графических объектов, которая определяет гэпы выходного дня по разрывам времени и отображает их непосредственно на графике. Она управляет графическими объектами, отслеживает переходы состояний – новый (FRESH), частично заполнен (PARTIAL), реакция (REACTION), заполнен (FILLED) – и сохраняет завершенные гэпы как исторические зоны. В результате создается воспроизводимая система для отслеживания возврата цены к структурам гэпов выходного дня и их заполнения.
preview
От начального до среднего уровня: Перегрузка операторов (III)

От начального до среднего уровня: Перегрузка операторов (III)

В этой статье мы рассмотрим, как реализовать перегрузку как логических операторов, так и операторов сравнения. Для этого требуется определённая осторожность и немалая доля внимания. Даже небольшая оплошность при реализации перегрузки этих операторов может привести к тому, что весь код окажется совершенно непригодным для использования. Если в перегрузке возникнут какие-либо проблемы, всю базу данных, созданную на основе результатов, сгенерированных кодом, придётся либо полностью отбросить, либо, как минимум, целиком перепроверить.