Внедрение в MQL5 практических модулей из других языков (Часть 1): Создание библиотеки SQLite3 как в Python
Модуль sqlite3 в Python предлагает простой способ работы с базами данных SQLite, быстрый и удобный. В этой статье мы создадим подобный модуль поверх встроенных функций MQL5 для работы с базами данных, чтобы упростить работу с базами данных SQLite3 в MQL5 так же, как это реализовано в Python.
Возможности Мастера MQL5, которые вам нужно знать (Часть 72): Использование паттернов MACD и OBV с обучением с учителем
В продолжение нашей предыдущей статьи о паре индикаторов MACD и OBV, мы рассмотрим, как эту пару можно улучшить с помощью машинного обучения. MACD и OBV — это взаимодополняющая пара, отражающая тренд и объем. Наш подход к машинному обучению использует сверточную нейронную сеть (convolution neural network, CNN), которая задействует экспоненциальное ядро (Exponential kernel) для определения размеров своих ядер и каналов при настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
От начального до среднего уровня: Объекты (I)
В данной статье мы начнём рассматривать, как можно работать с объектами непосредственно на графике. Это делается с помощью кода, специально разработанного для демонстрации. Работа с объектами очень интересна и доставляет немало удовольствия. Поскольку это будет наш первый контакт, начнём с чего-нибудь очень простого.
Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование
Узнайте, как реализовать мощный пользовательский фреймворк для логирования в MQL5, который выходит за рамки простых операторов Print() за счет поддержки уровней серьезности, множества обработчиков вывода и автоматической ротации файлов — и все это с возможностью настройки «на лету». Интегрируйте синглтон CLogger с ConsoleLogHandler и FileLogHandler для захвата контекстных журналов с метками времени как на вкладке «Эксперты», так и в постоянных файлах. Оптимизируйте отладку и трассировку производительности в ваших советниках с помощью понятных, настраиваемых форматов журналов и централизованного управления.
Моделирование рынка (Часть 21): Первые шаги на SQL (IV)
Многие из вас, возможно, обладают гораздо большим опытом в области работы с базами данных, чем я, и, следовательно, имеют другое мнение. Поскольку было необходимо дать объяснение, почему базы данных создаются именно так, как они создаются, и нужно объяснить, почему SQL имеет именно такой формат и, прежде всего, почему появились первичные ключи и внешние ключи, поэтому пришлось оставить некоторые вещи немного абстрактными.
От начального до среднего уровня: Struct (VII)
В сегодняшней статье мы покажем, как можно подходить к решению проблем по структурированию разных элементов и созданию более простых и привлекательных решений. Хотя содержание ориентировано на обучение и, следовательно, не является настоящим кодом, необходимо очень хорошо усвоить концепции и знания, которые здесь будут рассмотрены. Таким образом, в будущем мы сможем следовать кодам, которые мы покажем.
Знакомство с языком MQL5 (Часть 40): Руководство для начинающих по работе с файлами в MQL5 (II)
В этой статье вы создадите торговый журнал в формате CSV с помощью MQL5, считывая историю счета за заданный период и записывая в файл структурированные записи. В статье объясняется, как подсчитывать сделки, получать тикеты, определять символ и тип ордера, а также с помощью динамических массивов собирать данные о входе в сделку (лот, время, цена, SL/TP) и выходе из нее (время, цена, прибыль, результат). В результате получается упорядоченный журнал, который сохраняется между запусками программы и подходит для анализа и отчетности.
Преодоление ограничений машинного обучения (Часть 6): Эффективная кросс-валидация исторической памяти рынка
В этом обсуждении мы противопоставим классический подход к кросс-валидации временных рядов современным альтернативам, бросающим вызов его основным допущениям. Мы выявляем ключевые «слепые зоны» традиционной кросс-валидации, особенно её неспособность учитывать меняющиеся рыночные условия. Для устранения этих пробелов мы внедряем эффективную кросс-валидацию исторической памяти рынка (Effective Memory Cross-Validation, EMCV) - подход, ориентированный на предметную область, ставящий под сомнение устоявшееся мнение о том, что увеличение объема исторических данных всегда повышает показатели результатов.
Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)
Узнайте, как обнаруживать действия пользователей в MetaTrader 5, отправлять запросы в API искусственного интеллекта, извлекать ответы и реализовывать прокрутку текста на панели.
Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)
Создайте практический мост между MetaTrader 5 и Binance: получайте 30-минутные свечи с помощью WebRequest, извлекайте из JSON значения OHLC и времени и подтверждайте бычий паттерн поглощения, используя только полностью закрытые свечи. Затем соберите строку запроса, вычислите подпись HMAC-SHA256, добавьте X-MBX-APIKEY и отправьте аутентифицированные ордера. Вы получите четкий сквозной рабочий процесс советника – от получения данных до исполнения ордера.
Алгоритм искусственного поискового роя — Artificial Searching Swarm Algorithm (ASSA)
Статья посвящена реализации алгоритма искусственного поискового роя (ASSA) на MQL5 в составе унифицированного тестового стенда. Разобраны три поведенческих правила движения, механизм сигнала и глобального табло, нормализация пространства, а также параметры stepRatio и Pc. Читатель получит готовую основу для интеграции ASSA, а также ответ на вопрос — насколько тактическая метафора оказалась удачным фундаментом для конкурентоспособности оптимизационного алгоритма.
Нейросети в трейдинге: Оптимизация Cross-Attention для анализа длинных последовательностей рынка (Основные компоненты)
В статье продолжается реализация фреймворка STCA средствами MQL5. Оригинальные оптимизации Self-Attention перенесены в архитектуру FlashAttention-2 и адаптированы под финансовые данные. Особое внимание уделено аккумулированию и распределению градиентов между потоками рабочей группы для анализа длинных временных рядов и многоголового внимания.
Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках
В этой восьмой части серии «Искусство работы с логами» мы исследуем реализацию многоязычных сообщений об ошибках в Logify — мощной библиотеке логирования для MQL5. Вы узнаете, как структурировать ошибки с контекстом, переводить сообщения на несколько языков и динамически форматировать логи по уровням логирования. И всё это — с чистым, расширяемым и готовым к продакшену дизайном.
Искусство работы с логами (Часть 10): Подавление повторяющихся логов (suppression)
Мы создали систему подавления логов в библиотеке Logify. В статье подробно рассматривается, как класс CLogifySuppression уменьшает «шум» в консоли, применяя настраиваемые правила для исключения повторяющихся или незначимых сообщений. Также мы освещаем структуру внешних конфигурационных файлов, механизмы валидации и всестороннее тестирование, обеспечивающие надежность и гибкость сбора логов при разработке ботов и индикаторов.
Знакомство с языком MQL5 (Часть 37): Освоение API и функции WebRequest в языке MQL5 (XI)
В этой статье мы покажем, как с помощью языка MQL5 отправлять аутентифицированные запросы к API Binance, чтобы получать баланс счета по всем активам. Вы узнаете, как использовать свой API-ключ, время сервера и подпись для безопасного доступа к данным аккаунта, а также как сохранять ответ в файл для дальнейшего использования.
Моделирование рынка (Часть 22): Первые шаги на SQL (V)
Прежде, чем вы сдадитесь и решите отказаться от изучения SQL, позвольте мне напомнить вам, уважаемые читатели, что здесь мы всё ещё используем только самые базовые элементы. Мы ещё не рассмотрели некоторые возможности SQL. Как только вы их усвоите, вы увидите, что SQL гораздо практичнее, чем кажется. Хотя, скорее всего, мы в конечном итоге изменим направление того, что мы создаем, потому, что процесс создания является динамичным. Мы покажем немного больше о создании разных вещей в SQL, ведь это по настоящему важно и нужно вам. Просто думать, что вы более способны, чем целое сообщество программистов и разработчиков, приведет только к потере времени и возможностей. Не переживайте, потому что дальше будет ещё интереснее.
Знакомство с языком MQL5 (Часть 39): Руководство для начинающих по работе с файлами в MQL5 (I)
В этой статье работа с файлами в MQL5 рассматривается на практическом проектном примере. Вы будете использовать FileSelectDialog, чтобы выбрать или создать CSV-файл, открыть его с помощью FileOpen и записать структурированные заголовки с данными счета, такие как имя счета, баланс, логин, диапазон дат и время последнего обновления. В результате вы получите понятную основу для пригодного к повторному использованию торгового журнала и безопасной работы с файлами в MetaTrader 5.
Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию
В этой статье демонстрируется, как кардинально упростить использование библиотеки Logify с помощью паттерна "Builder" и автоматических конфигураций по умолчанию. Рассматриваются структура специализированных Builder-классов, приемы работы с ними при помощи интеллектуальной подсказки (автодополнения), а также способы обеспечения функционального логирования даже без ручной настройки. Кроме того, статья описывает доработки для сборки MetaTrader 5 5100.
Внедрение в MQL5 практических модулей из других языков (Часть 02): Создание библиотеки REQUESTS, как в Python
В этой статье опишем реализацию модуля, аналогичного модулю requests в Python, чтобы упростить отправку и получение веб-запросов в MetaTrader 5 с использованием MQL5.
Возможности Мастера MQL5, которые вам нужно знать (Часть 73): Использование паттернов Ишимоку и ADX-Wilder
Индикатор Ишимоку (Ichimoku-Kinko-Hyo) и осциллятор ADX-Wilder — это взаимодополняющая пара, которую можно использовать в составе MQL5-советника. Индикатор Ишимоку многогранен, однако в данной статье мы будем использовать его в первую очередь для определения уровней поддержки и сопротивления. Мы также применим ADX для определения тренда. Как обычно, мы используем Мастер MQL5 для построения паттернов и тестирования потенциала, который может иметь эта пара индикаторов.
Знакомство с языком MQL5 (Часть 41): Руководство для начинающих по работе с файлами в MQL5 (III)
Узнайте, как читать CSV-файл в MQL5 и упорядочивать содержащиеся в нем торговые данные в динамических массивах. В этой статье пошагово показано, как подсчитать элементы файла, сохранить все данные в едином массиве и разнести каждый столбец по отдельным массивам, заложив основу для более продвинутого анализа и визуализации торговой эффективности.
Нейросети в трейдинге: Оптимизация Cross-Attention для анализа длинных последовательностей рынка (Окончание)
В статье рассматривается практическая реализация архитектуры STCA с интеграцией механизмов OneTrans для совместной обработки временных рядов и контекстных признаков рынка. Описаны особенности построения модели, алгоритмы прямого прохода и накопления исторического состояния. Отдельное внимание уделено процессу обучения и результатам тестирования на реальных данных, демонстрирующим поведение модели в рыночных условиях.
Преодоление ограничений машинного обучения (Часть 7): Автоматический выбор стратегии
В этой статье показано, как автоматически определять потенциально прибыльные торговые стратегии с помощью MetaTrader 5. Решения "белого ящика", основанные на неконтролируемой матричной факторизации, быстрее настраиваются, лучше поддаются интерпретации и предоставляют четкие рекомендации относительно того, какие стратегии следует сохранить. Решения "черного ящика", хотя и требуют больше времени, лучше подходят для сложных рыночных условий, которые подходы "белого ящика" могут не учитывать. Присоединяйтесь к нашему обсуждению того, как наши торговые стратегии могут помочь нам тщательно подбирать прибыльные стратегии при любых обстоятельствах.
Преодоление ограничений машинного обучения (Часть 8): Непараметрический выбор стратегии
В этой статье показано, как настроить модель "черного ящика" для автоматического выявления сильных торговых стратегий, используя подход, основанный на данных. Используя взаимную информацию для определения приоритетов наиболее удобных для изучения сигналов, мы можем создавать более интеллектуальные и адаптивные модели, превосходящие традиционные методы. Читатели также научатся избегать распространенные подводные камни, такие как чрезмерное доверие к показателям поверхностного уровня, а вместо этого разрабатывать стратегии, основанные на значимой статистической информации.
Оптимизатор конкурирующего роя — Competitive Swarm Optimizer (CSO)
В данной статье рассматривается Competitive Swarm Optimizer — алгоритм роевой оптимизации, в основе которого лежит предельно простая идея: агенты случайным образом разбиваются на пары, проигравший учится у победителя и притягивается к центру роя. Помимо разбора CSO, в статье представлена модернизация тестового стенда: визуализация работы алгоритмов переведена в 3D - мерное пространство, что позволяет наглядно наблюдать движение популяции на поверхности тестовой функции.
Нейросети в трейдинге: Адаптивное масштабирование представлений (ADS)
Статья знакомит читателя с фреймворком ADS, который предлагает методы адаптивного анализа рыночных данных с учетом цели и текущего состояния рынка. Рассмотрена реализация модуля генерации адаптивных весов, закладывающего параллельную работу независимых экспертов для разных сценариев. Такой подход позволяет выделять ключевые признаки и управлять поведением модели, создавая основу для персонализированных и контекстно-зависимых торговых решений.
Неопределенность как модель (Часть 2): Зависимости случайных величин — от корреляции до копул
Во второй части цикла рассматривается математический аппарат многомерных случайных величин, необходимый для анализа зависимостей и совместного поведения рыночных активов. Описываются функции совместного распределения, понятия маржинальных и условных распределений, а также условия зависимости и независимости величин. Теоретический материал базируется на расширении аналогии вероятности с массой в многомерное пространство. Особое внимание уделено мерам связи: от классической линейной ковариации и корреляции до современных инструментов — копул и взаимной информации Шеннона.
Как реализовать конкуренцию LLM-агентов в MetaTrader 5
Статья описывает конкурентную архитектуру для MetaTrader 5, в которой десять LLM-агентов с разными торговыми правилами управляют собственным капиталом и открывают независимые позиции через уникальные magic numbers. Системный промпт и агрессивность агента адаптируются по результатам PnL и серии сделок. Представлен воспроизводимый каркас с режимами эксплуатации и контролируемыми метриками, пригодный для тестирования и дальнейшей оптимизации.
Машинное обучение и Data Science (Часть 45): Прогнозирование временных рядов на форексе с моделью PROPHET от Facebook
Разработанная компанией Faceboook модель Prophet позволяет прогнозировать временные ряды, чтобы выявлять тенденции, сезонность и влияние праздников с минимальной ручной настройкой. Метод широко применяется для прогнозирования спроса и бизнес-планирования. В этой статье мы исследуем эффективность модели Prophet в прогнозировании волатильности валютных инструментов. Проверим, можно ли ее применять вне контекста традиционных бизнес-задач.
Преодоление ограничений машинного обучения (Часть 8): Непараметрический выбор стратегии
В этой статье показано, как настроить модель "черного ящика" для автоматического выявления сильных торговых стратегий, используя подход, основанный на данных. Используя взаимную информацию для определения приоритетов наиболее удобных для изучения сигналов, мы можем создавать более интеллектуальные и адаптивные модели, превосходящие традиционные методы. Читатели также научатся избегать распространенные подводные камни, такие как чрезмерное доверие к показателям поверхностного уровня, а вместо этого разрабатывать стратегии, основанные на значимой статистической информации.
Архитектура системы машинного обучения в MetaTrader 5 (Часть 2): Маркировка финансовых данных для машинного обучения
Во второй части серии «MetaTrader 5 и машинное обучение: практическое руководство» вы узнаете, почему простые метки могут сбивать ваши модели с толку — и как применять продвинутые техники, такие как метод тройных барьеров и сканирование тренда, для создания надежных и учитывающих риски целевых показателей. Наполненное практическими примерами на Python, оптимизирующими эти вычислительно сложные методы, это практическое руководство показывает, как преобразовать зашумленные рыночные данные в достоверные метки, отражающие реальные условия торговли.
Архитектура коллективных торговых решений ИИ-агентов
Статья описывает архитектуру мультиагентной торговой системы на базе языковой модели grok-4-fast, где вместо одного системного промпта работают четыре независимых аналитика с принципиально разными ролями: бык, медведь, риск-менеджер и арбитр. Три аналитика запускаются параллельно через ThreadPoolExecutor и за 3–5 секунд формируют аргументированные позиции по одним и тем же рыночным данным, после чего детерминированный судья выносит финальный вердикт по жёстким правилам.
Нейросети в трейдинге: Адаптивное масштабирование представлений (Основные компоненты)
Статья продолжает адаптацию фреймворка ADS под задачи трейдинга. Рассматривается отказ от PSRG и интеграцию его функций в PCRG, где адаптация выполняется в пространстве запросов. Применен порядок вычислений, аналогичный STCA, для линейного масштабирования по длине истории. Представлены OpenCL‑кернелы ConcatVecMatrix/Grad и класс CNeuronPCGR, что упрощает архитектуру и уменьшает вычислительную нагрузку при анализе длинных временных рядов.
Марковские цепи в трейдинге и прогнозировании цены
В этой статье мы рассмотрим, как строить и применять марковские цепи в условиях рынка: от выбора состояний и подсчета переходов до генерации прогнозов траекторий и уровней. Также, мы увидим, как можно применять марковские цепи для качественных и количественных данных, способы учета редких событий и влияние горизонта прогноза. Даны примеры на ценах и индикаторах, а также вариант для оценки последовательности сделок, с готовыми реализациями в MQL5.
Торговые инструменты MQL5 (Часть 12): Улучшение интерактивности панели корреляционной матрицы
В этой статье мы улучшаем панель корреляционной матрицы в MQL5 с помощью интерактивных признаков, таких как перетаскивание панели, сворачивание / разворачивание, эффекты при наведении курсора мыши на кнопки и таймфреймы, а также обработка событий мыши для улучшения взаимодействия с пользователем. Мы добавили сортировку символов по средней силе корреляции в восходящем/нисходящем режимах, переключение между отображением корреляции и p-значения, а также включили переключение между светлой и темной темами с динамическим обновлением цвета.
Преодоление ограничений машинного обучения (Часть 8): Непараметрический выбор стратегии
В этой статье показано, как настроить модель "черного ящика" для автоматического выявления сильных торговых стратегий, используя подход, основанный на данных. Используя взаимную информацию для определения приоритетов наиболее удобных для изучения сигналов, мы можем создавать более интеллектуальные и адаптивные модели, превосходящие традиционные методы. Читатели также научатся избегать распространенные подводные камни, такие как чрезмерное доверие к показателям поверхностного уровня, а вместо этого разрабатывать стратегии, основанные на значимой статистической информации.
Как реализовать конкуренцию LLM-агентов в MetaTrader 5
Статья описывает конкурентную архитектуру для MetaTrader 5, в которой десять LLM-агентов с разными торговыми правилами управляют собственным капиталом и открывают независимые позиции через уникальные magic numbers. Системный промпт и агрессивность агента адаптируются по результатам PnL и серии сделок. Представлен воспроизводимый каркас с режимами эксплуатации и контролируемыми метриками, пригодный для тестирования и дальнейшей оптимизации.
Возможности Мастера MQL5, которые вам нужно знать (Часть 74): Использование паттернов Ишимоку и ADX-Wilder с обучением с учителем
В продолжение нашей предыдущей статьи, где мы представили пару индикаторов Ишимоку и ADX, рассмотрим, как эту пару можно улучшить с помощью обучения с учителем. Ишимоку и ADX представляют собой взаимодополняющую пару уровней поддержки/сопротивления и тренда. Наш подход обучения с учителем использует нейронную сеть, которая задействует ядро глубокого спектрального смешения (Deep Spectral Mixture Kernel) для точной настройки прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для сборки советника.
Нейросети в трейдинге: Адаптивное масштабирование представлений (ADS)
Статья знакомит читателя с фреймворком ADS, который предлагает методы адаптивного анализа рыночных данных с учетом цели и текущего состояния рынка. Рассмотрена реализация модуля генерации адаптивных весов, закладывающего параллельную работу независимых экспертов для разных сценариев. Такой подход позволяет выделять ключевые признаки и управлять поведением модели, создавая основу для персонализированных и контекстно-зависимых торговых решений.
Преодоление ограничений машинного обучения (Часть 9): Обучение признаков на основе корреляции в задачах самообучения на финансовых данных
Самоконтролируемое обучение (Self-supervised learning) - это мощная парадигма статистического обучения, которая заключается в поиске обучающих сигналов, генерируемых в результате самих наблюдений. Такой подход превращает сложные задачи обучения без наблюдения в более привычные задачи обучения под наблюдением. Эта технология не нашла применения для достижения нашей цели как сообщества алгоритмических трейдеров. Таким образом, наше обсуждение направлено на то, чтобы предоставить читателю доступный мостик к открытой исследовательской области самоконтролируемого обучения, и предлагает практические виды применения, которые позволяют создавать стабильные и надежные статистические модели финансовых рынков без переобучения небольшими наборами данных.