Анализ нескольких символов с помощью Python и MQL5 (Часть II): Анализ главных компонентов для оптимизации портфеля
Управление рисками торгового счета является сложной задачей для всех трейдеров. Можем ли мы разработать торговые приложения, которые динамически изучают режимы высокого, среднего и низкого риска для различных символов в MetaTrader 5? Используя PCA, мы получаем лучший контроль над дисперсией портфеля. Я продемонстрирую, как создавать приложения, которые изучают эти три режима риска на основе рыночных данных, полученных из MetaTrader 5.
Тестер стратегий для Python и MetaTrader 5 (Часть 1): Торговый симулятор
Модуль MetaTrader 5 для Python, предоставляет удобный способ открывать сделки в приложении MetaTrader 5 с помощью Python, но у него есть серьезная проблема: в нем нет возможностей тестера стратегий, присутствующих в приложении MetaTrader 5. В этой серии статей мы создадим фреймворк для бэктестинга ваших торговых стратегий в средах Python.
Искусство ведения логов (Часть 5): Оптимизация обработчика с помощью кэширования и ротации
В этой статье мы улучшим библиотеку логов путем добавления форматтеров в обработчики, класса CIntervalWatcher для управления циклами выполнения, оптимизации с кэшированием и ротацией файлов, тестов производительности и практических примеров. Благодаря этим улучшениям мы получим эффективную, масштабируемую и адаптируемую систему ведения логов к различным сценариям разработки.
Улучшенная оптимизация сталкивающихся тел — Enhanced Colliding Bodies Optimization (ECBO)
В статье рассматривается алгоритм Colliding Bodies Optimization (CBO), основанный на физике одномерных столкновений тел. Базовая версия алгоритма не содержит настраиваемых параметров, что делает её простой. Поэтому за основу реализации была взята расширенная версия ECBO, дополненная памятью столкновений и механизмом кроссовера, что позволило алгоритму показать достойные результаты и занять место в рейтинговой таблице.
Нейросети в трейдинге: Адаптивное масштабирование представлений (Основные компоненты)
Статья продолжает адаптацию фреймворка ADS под задачи трейдинга. Рассматривается отказ от PSRG и интеграцию его функций в PCRG, где адаптация выполняется в пространстве запросов. Применен порядок вычислений, аналогичный STCA, для линейного масштабирования по длине истории. Представлены OpenCL‑кернелы ConcatVecMatrix/Grad и класс CNeuronPCGR, что упрощает архитектуру и уменьшает вычислительную нагрузку при анализе длинных временных рядов.
Создание панели администратора торговли на MQL5 (Часть XI): Современный интерфейс мессенджера в платформе (I)
Сегодня мы будем работать над совершенствованием интерфейса обмена сообщениями на коммуникационной панели и приведем его в соответствие со стандартами современных высокопроизводительных коммуникационных приложений. Для этого мы обновим класс CommunicationsDialog. Все эти обновления мы рассмотрим в деталях, а также наметим следующие шаги в развитии интерфейсов наших программ с использованием MQL5.
Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA)
Представляем эволюционный алгоритм без оператора селекции: лучшая особь становится единственным партнёром по скрещиванию для всей популяции, а классическая мутация заменена мультипликативной с самонастраивающимся шагом. В статье разбираем три ключевые идеи, реализуем алгоритм на MQL5 во фреймворке C_AO и проверяем его на стандартном стенде и античитер-тесте — где BOA вплотную приближается к порогу топ-45, но не входит в рейтинг.
Торговые инструменты на MQL5 (Часть 2): Улучшение интерактивного торгового помощника через динамическую визуализацию
В этой статье мы обновим наш инструмент Trade Assistant, добавив функциональность панели перетаскивания и эффекты наведения курсора мыши, чтобы сделать интерфейс более интуитивно понятным и отзывчивым. Мы совершенствуем инструмент для проверки настроек ордеров в режиме реального времени, обеспечивая точные торговые настройки относительно рыночных цен. Мы также тестируем эти усовершенствования на исторических данных, чтобы подтвердить их надежность.
Нейросети в трейдинге: Масштабируемые трансформеры со структурной декомпозицией признаков (Окончание)
Статья посвящена практической реализации Field-Aware архитектуры для алгоритмической торговли в среде MQL5. Рассматривается проблема слабой переносимости классических attention-моделей на финансовые данные: нестабильность вне выборки, чувствительность к смене рыночного режима и избыточная вычислительная сложность.
Разработка системы репликации (Часть 78): Новый Chart Trade (V)
В данной статье мы рассмотрим, как нужно реализовывать часть кода получателя. Здесь мы реализуем версию советника, чтобы протестировать и узнать, как работает взаимодействие по протоколу. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте его как окончательное приложение, целью которого не является изучение представленных концепций.
Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти
Целочисленное дифференцирование заставляет выбирать между стационарностью и памятью: доходности (d = 1) стационарны, но отбрасывают всю информацию об уровне цены; исходные цены (d = 0) сохраняют память, но нарушают предпосылку стационарности, важную для моделей машинного обучения. В статье реализован метод дробного дифференцирования с окном фиксированной ширины (FFD) из главы 5 AFML: get_weights_ffd — итеративная рекурсия с отсечением по порогу, frac_diff_ffd — ограниченное скалярное произведение для каждого бара, fracdiff_optimal — бинарный поиск минимального стационарного d*.
Валютный граф и справедливая цена 28 пар через DFS по кросс-путям
В статье показано, как вместо треугольного арбитража использовать полный валютный граф из 8 валют и 28 пар. Для каждой пары DFS перечисляет простые кросс‑пути длиной от 2 до N рёбер, а справедливая цена получается как взвешенное геометрическое среднее в лог‑пространстве. Отклонение рынка от этой оценки служит источником mean‑reversion сигналов.
Нейросети в трейдинге: Оптимизация Cross-Attention для анализа длинных последовательностей рынка (Окончание)
В статье рассматривается практическая реализация архитектуры STCA с интеграцией механизмов OneTrans для совместной обработки временных рядов и контекстных признаков рынка. Описаны особенности построения модели, алгоритмы прямого прохода и накопления исторического состояния. Отдельное внимание уделено процессу обучения и результатам тестирования на реальных данных, демонстрирующим поведение модели в рыночных условиях.
Как заменить WebSocket EA на TradeMux REST в MetaTrader 5
Статья продолжает серию об AI Hedge Fund и снимает три ограничения v4: репутации аналитиков теперь персистентны в SQLite, EA выведен из критического пути исполнения, а сигналы совета пятнадцати рассылаются на несколько брокеров через TradeMux REST API. Логика совета и риск-менеджмента не менялась: Python получает данные через MetaTrader 5 SDK и исполняет ордера напрямую. Результат — устойчивость к перезапускам и масштабирование на несколько терминалов.
Торговые инструменты MQL5 (Часть 12): Улучшение интерактивности панели корреляционной матрицы
В этой статье мы улучшаем панель корреляционной матрицы в MQL5 с помощью интерактивных признаков, таких как перетаскивание панели, сворачивание / разворачивание, эффекты при наведении курсора мыши на кнопки и таймфреймы, а также обработка событий мыши для улучшения взаимодействия с пользователем. Мы добавили сортировку символов по средней силе корреляции в восходящем/нисходящем режимах, переключение между отображением корреляции и p-значения, а также включили переключение между светлой и темной темами с динамическим обновлением цвета.
Автоматизация торговых стратегий в MQL5 (Часть 31): Создание системы распознавания гармонического паттерна "3 Drives" с использованием Price Action
В этой статье мы разрабатываем систему распознавания гармонических паттернов "3 Drives" на языке MQL5, которая определяет бычьи и медвежьи гармонические паттерны "3 Drives" с использованием точек разворота и уровней Фибоначчи, открывая сделки с пользовательскими уровнями входа, стоп-лосса и тейк-профита в соответствии с вариантами, выбранными пользователем. Мы также повысим наглядность и информативность системы для трейдера с помощью графических объектов на графике.
Алгоритм Стрекозы — Dragonfly Algorithm (DA)
В данной статье рассмотрим алгоритм стрекозы (Dragonfly Algorithm, DA), вдохновлённый коллективным поведением стрекоз в природе — их способностью координировать полёт в стае, избегая столкновений, следуя за добычей и уклоняясь от хищников. Разберём, как пять простых поведенческих правил и адаптивный механизм перехода от исследования к эксплуатации реализуются на MQL5, и проверим алгоритм на нашем тестовом стенде.
Тестер стратегий для Python и MetaTrader 5 (Часть 05): Тестер стратегий для нескольких символов и таймфреймов
В этой статье представлен совместимый с MetaTrader 5 рабочий процесс бэктестинга, масштабируемый на разные символы и таймфреймы. Мы используем HistoryManager для параллельного сбора данных, синхронизации баров и тиков со всех таймфреймов и запуска изолированных по символам обработчиков OnTick в потоках. Вы узнаете, как режимы моделирования влияют на скорость и точность, когда стоит полагаться на данные терминала, как уменьшить операции ввода-вывода с помощью событийных обновлений и как собрать полноценного мультивалютного торгового робота.
Знакомство с языком MQL5 (Часть 40): Руководство для начинающих по работе с файлами в MQL5 (II)
В этой статье вы создадите торговый журнал в формате CSV с помощью MQL5, считывая историю счета за заданный период и записывая в файл структурированные записи. В статье объясняется, как подсчитывать сделки, получать тикеты, определять символ и тип ордера, а также с помощью динамических массивов собирать данные о входе в сделку (лот, время, цена, SL/TP) и выходе из нее (время, цена, прибыль, результат). В результате получается упорядоченный журнал, который сохраняется между запусками программы и подходит для анализа и отчетности.
Теория графов: Применение алгоритма эвристического поиска A* в торговле
В статье эвристический алгоритм A* применяется к структуре рынка путем моделирования подтвержденных максимумов и минимумов свингов в качестве узлов графа, где веса ребер рассчитываются с учетом нормализованного по ATR расстояния, спреда и штрафов за шум. Модуль ищет наиболее эффективный маршрут для определения направления сделки и целевых уровней, а затем фильтрует сигналы по коэффициенту направленности, общей стоимости пути и противоположным свингам. TP привязывается к конечному узлу, а SL — к предыдущей структуре, с визуализацией на графике и настраиваемыми входными данными.
Создание торговой панели администратора на MQL5 (Часть XII): Интеграция форекс-калькулятора
Точный расчет ключевых торговых показателей — неотъемлемая часть рабочего процесса каждого трейдера. В этой статье мы рассмотрим интеграцию мощного инструмента — форекс-калькулятора — в панель управления торговлей, что еще больше расширит функциональность нашей многопанельной системы администратора трейдера. Эффективное определение риска, размера позиции и потенциальной прибыли имеет важное значение при совершении сделок, и эта новая функция призвана сделать этот процесс более быстрым и интуитивно понятным прямо в панели. Присоединяйтесь к нам, чтобы изучить практическое применение MQL5 при создании продвинутых торговых панелей.
Нейросети в трейдинге: Оценка риска по несогласованности представлений (Основные компоненты)
В статье реализована адаптация ReGEN-TAD под MQL5: риск трактуется как согласованность двух путей анализа — трансформера (контекст) и рекуррентной сети (динамика). Введён модуль токенизации разности, который формирует токен риска в общем пространстве признаков и передаёт его в последующие решения. Практический итог — готовые блоки для интеграции оценки уверенности в советники и для последующего обучения и тестирования.
Торговые инструменты на языке MQL5 (Часть 9): Мастер первого запуска для советников с прокручиваемым руководством
В этой статье мы разрабатываем мастер первоначальной пользовательской настройки в MQL5 для советников, включающий прокручиваемое руководство с интерактивной панелью, динамическое форматирование текста и визуальные элементы управления, такие как кнопки и флажки, позволяющие пользователям эффективно перемещаться по инструкциям и настраивать торговые параметры. Пользователи программы получают представление о том, что представляет собой программа и что нужно делать при первом запуске, что больше похоже на ориентирующий сценарий.
Отправка запросов в Connexus (Часть 6): Создание HTTP-запроса и ответа
В этой шестой статье из серии о библиотеке Connexus мы сосредоточимся на полном HTTP-запросе, рассмотрев каждый компонент, из которого состоит запрос. Мы создадим класс, представляющий запрос в целом, который поможет нам объединить ранее созданные классы.
Разработка системы репликации (Часть 77): Новый Chart Trade (IV)
В этой статье мы расскажем о некоторых деталях и мерах предосторожности, которые следует учитывать при создании протокола связи. Это довольно простые и понятные вещи, так что мы не будем слишком углубляться в эту статью. Но чтобы понять, что произойдет у получателя, нужно разобраться в содержании статьи.
Разработка инструментария для анализа Price Action (Часть 28): Инструмент для торговли пробоя диапазона открытия
В начале каждой торговой сессии направление рынка часто становится понятным только после того, как цена выходит за пределы диапазона открытия. В этой статье мы разберем, как создать советник на MQL5, который автоматически обнаруживает и анализирует пробои диапазона открытия, предоставляя своевременные сигналы на основе данных для более уверенных внутридневных входов.
Автоматизация торговых стратегий в MQL5 (Часть 26): Создание системы усреднения на основе пин-баров для многопозиционной торговли
В данной статье мы разрабатываем систему усреднения на основе пин-баров на языке MQL5, которая обнаруживает паттерны пин-баров для открытия сделок и использует стратегию усреднения для управления несколькими позициями, дополненную трейлинг-стопами и переводом в безубыток. Мы объединяем настраиваемые параметры с дашбордом для мониторинга позиций и прибыли в реальном времени.
Преодоление ограничений машинного обучения (Часть 5): Краткий обзор кросс-валидации временных рядов
В этой серии статей мы рассмотрим проблемы, с которыми сталкиваются алгоритмические трейдеры при внедрении торговых стратегий, основанных на машинном обучении. Некоторые проблемы в нашем сообществе остаются незамеченными, поскольку требуют более глубокого технического понимания. Сегодняшнее обсуждение служит отправной точкой для изучения "белых пятен" кросс-валидации в машинном обучении. Несмотря на то, что этот шаг часто рассматривается как рутинный, при небрежном обращении он может легко привести к вводящим в заблуждение или недостаточно оптимальным результатам. В этой статье кратко рассматриваются основы кросс-валидации временных рядов, чтобы подготовить нас к более глубокому пониманию скрытых слепых зон.
Разработка инструментария для анализа Price Action (Часть 70): Автоматическое исполнение сделок по сигналам паттерна "флаг"
В статье описаны буферная архитектура сигналов для пробоев паттерна "флаг" и советник, который ее использует. Стрелки пробоя и высота флагштока записываются в отдельные буферы только после подтверждения, что предотвращает перерисовку и неоднозначность. Советник считывает данные из буферов через CopyBuffer(), проверяет сигналы с помощью настраиваемых фильтров и исполняет сделки с фиксированными или динамическими уровнями SL/TP.
Архитектура системы машинного обучения в MetaTrader 5 (Часть 1): Утечка данных и исправление меток времени
Прежде чем мы сможем даже начать использовать машинное обучение в нашей торговле на MetaTrader 5, крайне важно разобраться с одной из самых недооцененных ловушек — утечкой данных. Эта статья раскрывает, как утечка данных, в частности ловушка с метками времени в MetaTrader 5, может исказить производительность нашей модели и привести к ненадежным торговым сигналам. Углубляясь в механику этой проблемы и предлагая стратегии ее предотвращения, мы прокладываем путь к созданию надежных моделей машинного обучения, которые будут давать достоверные прогнозы в условиях реальной торговли.
Создание самооптимизирующихся советников на MQL5 (Часть 11): Введение в основы линейной алгебры
В ходе этого обсуждения мы заложим основу для использования мощных инструментов линейной алгебры, реализованных в API матриц и векторов MQL5. Чтобы умело использовать этот API, нам необходимо хорошо понимать принципы линейной алгебры, лежащие в основе эффективного применения этих методов. Цель этой статьи — дать читателю интуитивное представление о некоторых из наиболее важных правил линейной алгебры, которые нам, как алгоритмическим трейдерам в MQL5, необходимы для начала работы с этой мощной библиотекой.
Повторное использование нарушенных ордер-блоков в качестве блоков смягчения (SMC)
В этой статье мы рассмотрим, как ранее ставшие недействительными ордер-блоки можно повторно использовать в качестве блоков смягчения последствий в рамках «Концепции умных денег» (Smart Money Concepts, SMC). Эти зоны показывают, где институциональные трейдеры повторно входят на рынок после неудачного ордер-блока, предоставляя зоны высокой вероятности продолжения торговли в рамках доминирующего тренда.
Архитектура прибыльной торговли с усиленной многоуровневой защитой счёта
В этом материале мы представляем структурированную многоуровневую систему защиты, нацеленную на достижение амбициозных показателей прибыли при одновременном снижении риска катастрофических потерь. Основное внимание уделяется сочетанию агрессивной торговой логики с защитными механизмами на каждом этапе торгового процесса. Идея состоит в том, чтобы создать советника, который ведёт себя как «хищник, осознающий риск»: способен находить торговые возможности с высоким потенциалом, но всегда имеет несколько защитных слоёв, не позволяющих системе «ослепнуть» при внезапном рыночном стрессе.
Популяционные алгоритмы оптимизации: строим защиту от читеров
Проведён повторный прогон алгоритмов на обновлённых функциях и предложен метод быстрой проверки их «честности». Составной тест объединяет пять разных ландшафтов и исключает выигрыш за счёт геометрии отдельных задач, позволяя быстро оценить реальную поисковую способность алгоритма. Прилагается скрипт для предварительной валидации алгоритмов перед применением к оптимизации торговых стратегий.
Нейросети в трейдинге: Когнитивная инерция в анализе финансовых рынков (CogDriver)
В статье показана адаптация фреймворка CogDriver из автономного вождения к анализу финансовых рынков с упором на когнитивную инерцию и временную согласованность решений. Разбирается удержание рыночной гипотезы и её проверка на новых данных для снижения дрожания сигналов. Практический раздел вводит класс CNeuronCogDriverData, который нормализует признаки, накапливает стек состояний и формирует MarketStateDensity-представления как фундамент дальнейшего планирования.
Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (IV). Класс для панели управления торговлей
Обновляем панель управления торговлей (TradeManagementPanel), используемую в нашем советнике New_Admin_Panel. В новой версии будем использовать встроенные классы и получим более удобный интерфейс управления сделками. В частности, добавим кнопки для открытия позиций, а также элементы для управления открытыми сделками и отложенными ордерами. Кроме того, в панели будет встроенная система управления рисками, чтобы устанавливать значения стоп-лосса и тейк-профита непосредственно через ее интерфейс. В целом обновление улучшает организацию самого кода, что важно для таких больших программ, а также упрощает доступ к инструментам управления ордерами — в определенных моментах это будет сделать проще, чем через интерфейс терминала.
Разработка инструментария для анализа Price Action (Часть 34): Построение прогнозных моделей на основе необработанных рыночных данных с помощью усовершенствованного пайплайна загрузки данных
Случалось ли вам пропустить внезапный рыночный всплеск или оказаться застигнутым врасплох, когда такой всплеск происходил? Лучший способ заранее распознавать события в реальном времени – учиться на исторических паттернах. Если вы хотите обучить модель машинного обучения, в этой статье сначала показано, как создать скрипт для MetaTrader 5, который собирает исторические данные и отправляет их в Python для хранения, закладывая основу системы обнаружения всплесков. Читайте дальше, чтобы увидеть каждый шаг на практике.
Переосмысливаем классические стратегии (Часть 19): Подробный разбор стратегий на пересечении скользящих средних
В этой статье мы возвращаемся к классической стратегии пересечения скользящих средних и исследуем, почему она часто терпит неудачу на шумных, быстро меняющихся рынках. В ней представлены пять альтернативных методов фильтрации, предназначенных для улучшения качества сигнала и устранения слабых или убыточных сделок. Обсуждение показывает, как статистические модели могут обучаться и исправлять ошибки, которые пропускает человеческая интуиция и традиционные правила. Читатели получают более четкое представление о том, как модернизировать устаревшую стратегию, и о подводных камнях, связанных с опорой исключительно на такие показатели, как RMSE, в финансовом моделировании.
Создание торговой системы (Часть 5): Управление прибылью с помощью структурированного выхода из позиций
Для многих трейдеров это знакомая болезненная ситуация: наблюдать, как сделка приближается к вашему целевому показателю прибыли, а затем разворачивается и достигает вашего стоп-лосса. Или, что еще хуже, наблюдать, что трейлинг-стоп закрывает позицию на уровне безубыточности, прежде чем рынок резко приблизится к вашей первоначальной цели. В данной статье рассматривается использование нескольких позиций из одной точки входа с различным соотношением риска и прибыли для систематического обеспечения прибыли и снижения общего уровня риска.
Архитектура системы машинного обучения в MetaTrader5 (Часть 5): Последовательный бутстреппинг— устранение смещения меток и повышение доходности
Последовательный бутстреппинг меняет подход к бутстреп-выборке в финансовом машинном обучении, активно избегая временных перекрытий в метках. Это обеспечивает более независимые обучающие выборки, более точные оценки неопределенности и более надежные торговые модели. В этом практическом руководстве объясняется интуитивная основа метода, пошагово разбирается алгоритм, приводятся оптимизированные паттерны кода для работы с большими массивами данных, а также демонстрируется измеримый прирост эффективности с помощью симуляций и реальных бэктестов.