
Разработка MQTT-клиента для MetaTrader 5: методология TDD
Статья представляет собой первую попытку разработать нативный MQTT-клиент для MQL5. MQTT - это протокол обмена данными по принципу "издатель - подписчик". Он легкий, открытый, простой и разработан так, чтобы его было легко внедрить. Это позволяет применять его во многих ситуациях.

Нейросети в трейдинге: Обнаружение объектов с учетом сцены (HyperDet3D)
Предлагаем вам познакомиться с новым подход обнаружения объектов при помощи гиперсетей. Гиперсети могут генерировать весовые коэффициенты для основной модели, что позволяет учитывать особенности текущего состояния рынка. Такой подход позволяет улучшить точность прогнозирования, адаптируя модель к различным торговым условиям.

Добавляем пользовательскую LLM в торгового робота (Часть 1): Развертывание оборудования и среды
Языковые модели (LLM) являются важной частью быстро развивающегося искусственного интеллекта, поэтому нам следует подумать о том, как интегрировать мощные LLM в нашу алгоритмическую торговлю. Большинству людей сложно настроить эти мощные модели в соответствии со своими потребностями, развернуть их локально, а затем применить к алгоритмической торговле. В этой серии статей будет рассмотрен пошаговый подход к достижению этой цели.

Тесты на перестановку Монте-Карло в MetaTrader 5
В статье рассматриваются тесты на перестановку на основе перетасованных тиковых данных на любом советнике исключительно силами MetaTrader 5.

DoEasy. Сервисные функции (Часть 3): Паттерн "Внешний бар"
В статье разработаем паттерн Price Action "Внешний Бар" в библиотеке DoEasy и оптимизируем методы доступа к управлению ценовыми паттернами. Кроме того, проведём работу по исправлению ошибок и недоработок, выявленных при тестировании библиотеки.

Изучение MQL5 — от новичка до профи (Часть III): Сложные типы данных и подключаемые файлы
Статья является третьей в серии материалов об основных аспектах программирования на MQL5. Здесь описываются сложные типы данных, которые не были описаны в предыдущей статье, включая структуры, объединения, классы и тип данных "функция". Также рассказано, как добавить модульности нашей программе с помощью директивы препроцессора #include.

Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть I): Кластеризация
В данной статье мы рассмотрим инновационный метод оптимизации, названный BSO (Brain Storm Optimization), который вдохновлен природным явлением - "мозговым штурмом". Мы также обсудим новый подход к решению многомодальных задач оптимизации, который использует метод BSO и позволяет находить несколько оптимальных решений без необходимости заранее определять количество подпопуляций. В статье мы также рассмотрим методы кластеризации K-Means и K-Means++.

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

Интерпретация моделей: Более глубокое понимание моделей машинного обучения
Машинное обучение — сложная и полезная область для любого человека независимо от опыта. В этой статье мы погрузимся во внутренние механизмы, лежащие в основе создаваемых моделей, исследуем сложный мир функций, прогнозов и эффективных решений и получим четкое понимание интерпретации моделей. Научитесь искусству поиска компромиссов, улучшения прогнозов, ранжирования важности параметров и принятия надежных решений. Статья поможет вам повысить производительность моделей машинного обучения и извлечь больше пользы от применения методологий машинного обучения.

Разработка пользовательского индикатора Heiken Ashi с помощью MQL5
В этой статье мы узнаем, как создать собственный индикатор с использованием MQL5 на основе наших предпочтений, который будет использоваться в MetaTrader 5 для интерпретации графиков или применяться в составе советников.

Создаем простой мультивалютный советник с использованием MQL5 (Часть 7): Сигналы индикаторов ZigZag и Awesome Oscillator
Под мультивалютным советником в этой статье понимается советник, или торговый робот, который использует индикаторы ZigZag и Awesome Oscillator, фильтрующие сигналы друг друга.

Интеграция ML-моделей с тестером стратегий (Часть 3): Управление файлами CSV(II)
Данный материал - полное руководство по созданию класса в MQL5 для эффективного управления CSV-файлами. Вы поймете, как реализуются методы открытия, записи, чтения и преобразования данных и как можно использовать их для хранения и доступа к информации. Кроме того, мы обсудим ограничения и важнейшие аспекты использования такого класса. Это ценный материал для тех, кто хочет научиться обрабатывать CSV-файлы в MQL5.

Популяционные алгоритмы оптимизации: Алгоритм оптимизации китов (Whale Optimization Algorithm, WOA)
Алгоритм оптимизации китов (WOA) - это метаэвристический алгоритм, вдохновленный поведением и охотничьими стратегиями горбатых китов. Основная идея WOA заключается в имитации так называемого "пузырькового сетевого" метода кормления, при котором киты создают пузыри вокруг добычи, чтобы затем нападать на нее в спиральном движении.

Нейросети — это просто (Часть 55): Контрастный внутренний контроль (CIC)
Контрастное обучение (Contrastive learning) - это метод обучения представлению без учителя. Его целью является обучение модели выделять сходства и различия в наборах данных. В данной статье мы поговорим об использовании подходов контрастного обучения для исследования различных навыков Актера.

Упрощаем торговлю на новостях (Часть 2): Управляем рисками
В этой статье мы добавим наследование в предыдущий и новый код. Для обеспечения эффективности будет внедрена новая структура базы данных. Кроме того, мы создадим класс по управлению рисками для расчета объемов.

DoEasy. Элементы управления (Часть 9): Реорганизация методов WinForms-объектов, элементы управления "RadioButton" и "Button"
В статье наведём порядок в наименованиях методов классов WinForms-объектов и создадим WinForms-объекты Button и RadioButton.

Теория категорий в MQL5 (Часть 8): Моноиды
Статья продолжает серию о реализации теории категорий в MQL5. Здесь мы вводим моноиды как домен (множество), который отличает теорию категорий от других методов классификации данных за счет включения правил и элемента равнозначности.

Популяционные алгоритмы оптимизации: Алгоритм эволюции разума (Mind Evolutionary Computation, MEC)
В данной статье рассматривается алгоритм семейства MEC, называемый простым алгоритмом эволюции разума (Simple MEC, SMEC). Алгоритм отличается красотой заложенной идеи и простотой реализации.

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

Шаблоны проектирования в MQL5 (Часть I): Порождающие шаблоны (Creational Patterns)
Существуют методы, которые можно использовать для решения типовых задач. Поняв один раз, как использовать эти методы, можно затем эффективно писать программы и применять концепцию DRY ("Не повторяйся"). В этом контексте очень полезными оказываются шаблоны проектирования, которые могут давать решения хорошо описанных и повторяющихся проблем.

Разработка торгового советника с нуля (Часть 20): Новая система ордеров (III)
Продолжим внедрение новой системы ордеров. Создание такой системы требует хорошего владения MQL5, а также понимания того, как на самом деле работает платформа MetaTrader 5 и какие ресурсы она нам предоставляет.

DoEasy. Элементы управления (Часть 21): Элемент управления SplitContainer. Разделитель панелей
В статье создадим класс вспомогательного объекта-разделителя панелей для элемента управления SplitContainer.

Разработка торгового советника с нуля (Часть 26): Навстречу будущему (I)
Сегодня мы выведем нашу систему ордеров на новый уровень, но сначала нам нужно решить несколько задач. Сейчас у нас есть разные вопросы, которые связаны с тем, как мы хотим работать и какие вещи мы делаем в течение торгового дня.

Фибоначчи на Форекс (Часть I): Проверяем отношения цены и времени
Как рынок ходит по отношениям, основанным на числах Фибоначчи? Эта последовательность, где каждое следующее число равно сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, 21...), не только описывает рост популяции кроликов. Рассмотрим гипотезу Пифагора о том, что все в мире подчиняется определенным соотношениям чисел...

Нейросети — это просто (Часть 75): Повышение производительности моделей прогнозирования траекторий
Создаваемые нами модели становятся все больше и сложнее. Вместе с тем растут затраты не только на их обучение, но и эксплуатацию. При этом довольно часто мы сталкиваемся с ситуацией, когда затраты времени на принятие решения бывают критичны. И в этой связи мы обращаем свое внимание на методы оптимизации производительности моделей без потери качества.

Треугольные и пилообразные волны: инструменты для трейдера
Одним из методов технического анализа является волновой анализ. В этой статье мы рассмотрим волны несколько необычного вида — треугольные и пилообразные. На основе этих волн можно построить несколько технических индикаторов, с помощью которых можно анализировать движение цены на рынке.

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

Нейросети — это просто (Часть 93): Адаптивное прогнозирование в частотной и временной областях (Окончание)
В данной статье мы продолжаем реализацию подходов ATFNet — модели, которая адаптивно объединяет результаты 2 блоков (частотного и временного) прогнозирования временных рядов

Нейросети — это просто (Часть 64): Метод Консервативного Весового Поведенческого Клонирования (CWBC)
В результате тестов, проведенных в предыдущих статьях, мы пришли к выводу, что оптимальность обученной стратегии во многом зависит от используемой обучаемой выборки. В данной статье я предлагаю вам познакомиться с довольно простым и эффективном методе выбора траекторий для обучения моделей.

Оптимизация бактериальным хемотаксисом — Bacterial Chemotaxis Optimization (BCO)
В статье представлена оригинальная версия алгоритма бактериальной хемотаксисной оптимизации (BCO) и его модифицированный вариант. Мы подробно рассмотрим все отличия, уделяя особое внимание новой версии BCOm, которая упрощает механизм движения бактерий, снижает зависимость от истории изменений позиций и использует более простые математические операции по сравнению с перегруженной вычислениями оригинальной версией. Также будут проведены тесты и подведены итоги.

Алгоритмическая торговля с MetaTrader 5 и R для начинающих
В статье мы объединим финансовый анализ с алгоритмической торговлей, а также посмотрим, как можно подружить R и MetaTrader 5. Эта статья — руководство по объединению аналитической гибкости R с огромными торговыми возможностями MetaTrader 5.

Парадигмы программирования (Часть 1): Процедурный подход к разработке советника на основе ценовой динамики
Узнайте о парадигмах программирования и их применении в коде MQL5. В этой статье исследуются особенности процедурного программирования, а также предлагаются практические примеры. Вы узнаете, как разработать советник на основе ценовой динамики (Price Action), используя индикатор EMA и свечные данные. Кроме того, статья знакомит с парадигмой функционального программирования.

Как подключить MetaTrader 5 к PostgreSQL
В статье описываются четыре метода подключения кода MQL5 к базе данных Postgres и предоставляется пошаговое руководство по настройке среды разработки для одного из них, REST API, с использованием подсистемы Windows для Linux (WSL). Показано демонстрационное приложение для API с соответствующим кодом MQL5 для вставки данных и запросов к соответствующим таблицам, а также демонстрационный советник для использования этих данных.

Количественный подход в управлении рисками: Применение VaR модели для оптимизации мультивалютного портфеля с Python и MetaTrader 5
Эта статья раскрывает потенциал Value at Risk (VaR) модели для оптимизации мультивалютного портфеля. Используя мощь Python и функционал MetaTrader 5, мы демонстрируем, как реализовать VaR-анализ для эффективного распределения капитала и управления позициями. От теоретических основ до практической реализации, статья охватывает все аспекты применения одной из наиболее устойчивых систем расчета рисков — VaR — в алгоритмической торговле.

Как построить советник, работающий автоматически (Часть 12): Автоматизация (IV)
Если вы думаете, что автоматизированные системы просты, то наверно вы еще не до конца поняли, что нужно для их создания. В данном материале мы поговорим о проблеме, с которой сталкиваются многие советники: неизбирательное исполнение ордеров, и возможное решение этой проблемы.

Индикаторы на основе класса CCanvas: Заполнение каналов прозрачностью
В этой статье мы рассмотрим методы создания пользовательских индикаторов, которые отрисовываются с помощью класса CCanvas Стандартной библиотеки, а также рассмотрим свойства графиков для преобразования координат. Особое внимание будет уделено индикаторам, заполняющим область между двумя линиями с помощью прозрачности.

Измерение информативности индикатора
Машинное обучение стало популярным методом разработки стратегий. В трейдинге традиционно больше внимания уделяется максимизации прибыльности и точности прогнозов. При этом обработка данных, используемых для построения прогностических моделей, остается на периферии. В этой статье мы рассматриваем использование концепции энтропии для оценки пригодности индикаторов при построении прогностических моделей, как описано в книге Тимоти Мастерса "Тестирование и настройка систем рыночной торговли" (Testing and Tuning Market Trading Systems by Timothy Masters).

Автоматическая оптимизация параметров для торговых стратегий с Python и MQL5
Существует несколько типов алгоритмов самостоятельной оптимизации торговых стратегий и параметров. Эти алгоритмы используются для автоматического улучшения торговых стратегий на основе исторических и текущих рыночных данных. В этой статье мы рассмотрим один из них на примерах реализаций на Python и MQL5.

Разрабатываем мультивалютный советник (Часть 15): Готовим советник к реальной торговле
Постепенно приближаясь к получению готового советника, необходимо уделить внимание вопросам, которые являются второстепенными на этапе тестирования торговой стратегии, но становятся важными при переходе к реальной торговле.

Упрощаем торговлю на новостях (Часть 1): Создаем базу данных
Торговля на новостях может быть сложной и утомительной. В этой статье мы рассмотрим шаги по получению новостных данных. Кроме того, мы узнаем об экономическом календаре MQL5 и о том, что он может предложить.