Разрабатываем мультивалютный советник (Часть 10): Создание объектов из строки
План разработки советника предусматривает несколько этапов с сохранением промежуточных результатов в базе данных. Заново достать их оттуда можно только в виде строк или чисел, а не объектов. Поэтому нам нужен способ воссоздания в советнике нужных объектов из строк, прочитанных из базы данных.
Алгоритмическая торговля с MetaTrader 5 и R для начинающих
В статье мы объединим финансовый анализ с алгоритмической торговлей, а также посмотрим, как можно подружить R и MetaTrader 5. Эта статья — руководство по объединению аналитической гибкости R с огромными торговыми возможностями MetaTrader 5.
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 5)
Статья является пятой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. В этой части мы опишем структуру пакетов PUBLISH - как мы устанавливаем их флаги публикации (Publish Flags), кодируем строки названий тем и устанавливаем идентификаторы пакетов, когда это необходимо.
Как разработать агент обучения с подкреплением на MQL5 с интеграцией RestAPI (Часть 3): Создание автоматических ходов и тестовых скриптов на MQL5
В этой статье рассматривается реализация автоматических ходов в игре "Крестики-нолики" на языке Python, интегрированная с функциями MQL5 и модульными тестами. Цель - улучшить интерактивность игры и обеспечить надежность системы с помощью тестирования на MQL5. Изложение охватывает разработку игровой логики, интеграцию и практическое тестирование, а завершается созданием динамической игровой среды и надежной интегрированной системы.
Как разработать агент обучения с подкреплением на MQL5 с интеграцией RestAPI (Часть 2): Функции MQL5 для HTTP-взаимодействия с REST API игры "крестики-нолики"
В этой статье расскажем о том, как MQL5 может взаимодействовать с Python и FastAPI, используя HTTP-вызовы в MQL5 для взаимодействия с игрой "крестики-нолики" на Python. В статье рассматривается создание API с помощью FastAPI для этой интеграции и приводится тестовый скрипт на MQL5, подчеркивающий универсальность MQL5, простоту Python и эффективность FastAPI в соединении различных технологий для создания инновационных решений.
Реализация расширенного теста Дики-Фуллера в MQL5
В статье показаны реализация расширенного теста Дики-Фуллера и его применение для проведения коинтеграционных тестов с использованием метода Энгла-Грейнджера.
Разрабатываем мультивалютный советник (Часть 9): Сбор результатов оптимизации одиночных экземпляров торговой стратегии
Наметим основные этапы по разработке нашего советника. Одним из первых будет проведение оптимизации одиночного экземпляра разработанной торговой стратегии. Попробуем собрать в одном месте всю необходимую информацию о проходах тестера при оптимизации.
Как разработать агент обучения с подкреплением на MQL5 с интеграцией RestAPI (Часть 1): Как использовать RestAPI в MQL5
В этой статье мы расскажем о важности интерфейсов программирования API для взаимодействия между различными приложениями и программными системами. В ней подчеркивается роль API в упрощении взаимодействия между приложениями, позволяя им эффективно обмениваться данными и функциональными возможностями.
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность
Во второй части статьи перейдем к практической реализации алгоритма BSO, проведем тесты на тестовых функциях и сравним эффективность BSO с другими методами оптимизации.
Разрабатываем мультивалютный советник (Часть 8): Проводим нагрузочное тестирование и обрабатываем новый бар
По мере продвижения мы использовали в одном советнике всё больше и больше одновременно работающих экземпляров торговых стратегий. Попробуем выяснить до какого количества экземпляров мы можем дойти прежде, чем столкнёмся ограничениями ресурсов.
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть I): Кластеризация
В данной статье мы рассмотрим инновационный метод оптимизации, названный BSO (Brain Storm Optimization), который вдохновлен природным явлением - "мозговым штурмом". Мы также обсудим новый подход к решению многомодальных задач оптимизации, который использует метод BSO и позволяет находить несколько оптимальных решений без необходимости заранее определять количество подпопуляций. В статье мы также рассмотрим методы кластеризации K-Means и K-Means++.
Разрабатываем мультивалютный советник (Часть 7): Подбор группы с учётом форвард-периода
Подбор группы экземпляров торговых стратегий с целью улучшения результатов при их совместной работы мы прежде оценивали только на том же временном периоде, на котором проводилась оптимизация отдельных экземпляров. Давайте посмотрим, что получится на форвард-периоде.
Популяционные алгоритмы оптимизации: Алгоритм птичьего роя (Bird Swarm Algorithm, BSA)
В статье исследуется алгоритм BSA, основанный на поведении птиц, который вдохновлен коллективным стайным взаимодействием птиц в природе. Различные стратегии поиска индивидов в BSA, включая переключение между поведением в полете, бдительностью и поиском пищи, делают этот алгоритм многоаспектным. Он использует принципы стайного поведения, коммуникации, адаптивности, лидерства и следования птиц для эффективного поиска оптимальных решений.
Разработка робота на Python и MQL5 (Часть 1): Препроцессинг данных
Разработка торгового робота на основе машинного обучения: подробное руководство. В первой статье цикла осуществлен сбор и подготовка данных и признаков. Для реализации проекта используется язык программирования Python и библиотеки, а также платформа MetaTrader 5.
Кластеризация временных рядов в причинно-следственном выводе
Алгоритмы кластеризации в машинном обучении — это важные алгоритмы обучения без учителя, которые позволяют разделять исходные данные на группы с похожими наблюдениями. Используя эти группы, можно проводить анализ рынка для конкретного кластера, искать наиболее устойчивые кластеры на новых данных, а также делать причинно-следственный вывод. В статье предложен авторский метод кластеризации временных рядов на языке Python.
Роль качества генератора случайных чисел в эффективности алгоритмов оптимизации
В этой статье мы рассмотрим генератор случайных чисел Mersenne Twister и сравним со стандартным в MQL5. Узнаем влияние качества случайных чисел генераторов на результаты алгоритмов оптимизации.
Комбинаторно-симметричная перекрестная проверка в MQL5
В статье показана реализация комбинаторно-симметричной перекрестной проверки на чистом MQL5 для измерения степени подгонки после оптимизации стратегии с использованием медленного полного алгоритма тестера стратегий.
Популяционные алгоритмы оптимизации: Алгоритм оптимизации китов (Whale Optimization Algorithm, WOA)
Алгоритм оптимизации китов (WOA) - это метаэвристический алгоритм, вдохновленный поведением и охотничьими стратегиями горбатых китов. Основная идея WOA заключается в имитации так называемого "пузырькового сетевого" метода кормления, при котором киты создают пузыри вокруг добычи, чтобы затем нападать на нее в спиральном движении.
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 4)
Статья является четвертой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы рассматриваем свойства MQTT v5.0, их семантику, то, как мы читаем некоторые из них, а также приводим краткий пример того, как свойства можно использовать для расширения протокола.
Популяционные алгоритмы оптимизации: Устойчивость к застреванию в локальных экстремумах (Часть I)
Эта статья представляет уникальный эксперимент, цель которого - исследовать поведение популяционных алгоритмов оптимизации в контексте их способности эффективно покидать локальные минимумы при низком разнообразии в популяции и достигать глобальных максимумов. Работа в этом направлении позволит глубже понять, какие конкретные алгоритмы могут успешно продолжать поиск из координат, установленных пользователем в качестве отправной точки, и какие факторы влияют на их успешность в этом процессе.
Показатель склонности (Propensity score) в причинно-следственном выводе
В статье рассматривается тема матчинга в причинно-следственном выводе. Матчинг используется для сопоставления похожих наблюдений в наборе данных. Это необходимо для правильного определения каузальных эффектов, избавления от предвзятости. Автор рассказывает, как это помогает в построении торговых систем на машинном обучении, которые становятся более устойчивыми на новых данных, на которых не обучались. Центральная роль отводится показателю склонности, который широко используется в причинно-следственном выводе.
Интеграция ML-моделей с тестером стратегий (Заключение): Реализация регрессионной модели для прогнозирования цен
В данной статье описывается реализация регрессионной модели на основе дерева решений для прогнозирования цен финансовых активов. Мы уже провели подготовку данных, обучение и оценку модели, а также ее корректировку и оптимизацию. Однако важно отметить, что данная модель является лишь исследованием и не должна использоваться при реальной торговле.
Разрабатываем мультивалютный советник (Часть 4): Отложенные виртуальные ордера и сохранение состояния
Приступив к разработке мультивалютного советника мы уже достигли некоторых результатов и успели провести несколько итераций улучшения кода. Однако наш советник не мог работать с отложенными ордерами и возобновлять работу после перезапуска терминала. Давайте добавим эти возможности.
Базовый класс популяционных алгоритмов как основа эффективной оптимизации
Уникальная исследовательская попытка объединения разнообразных популяционных алгоритмов в единый класс с целью упрощения применения методов оптимизации. Этот подход не только открывает возможности для разработки новых алгоритмов, включая гибридные варианты, но и создает универсальный базовый стенд для тестирования. Этот стенд становится ключевым инструментом для выбора оптимального алгоритма в зависимости от конкретной задачи.
Работа с ONNX-моделями в форматах float16 и float8
Форматы данных, используемые для представления моделей машинного обучения, играют ключевую роль в их эффективности. В последние годы появилось несколько новых типов данных, разработанных специально для работы с моделями глубокого обучения. В данной статье мы обратим внимание на два новых формата данных, которые стали широко применяться в современных моделях.
Освоение ONNX: Переломный момент для MQL5-трейдеров
Погрузитесь в мир ONNX - мощного открытого формата для обмена моделями машинного обучения. Узнайте, как использование ONNX может произвести революцию в алгоритмической торговле на MQL5, позволяя трейдерам беспрепятственно интегрировать передовые модели искусственного интеллекта и поднять свои стратегии на новый уровень. Раскройте секреты кросс-платформенной совместимости и узнайте, как раскрыть весь потенциал ONNX в своей торговле на MQL5. Улучшите свою торговлю с помощью этого подробного руководства по ONNX.
Использование алгоритмов оптимизации для настройки параметров советника "на лету"
В статье рассматриваются практические аспекты использования алгоритмов оптимизации для поиска наилучших параметров советников "на лету", виртуализация торговых операций и логики советника. Данная статья может быть использована как своеобразная инструкция для внедрения алгоритмов оптимизации в торгового советника.
Популяционные алгоритмы оптимизации: Искусственные мультисоциальные поисковые объекты (artificial Multi-Social search Objects, MSO)
Продолжение предыдущей статьи как развитие идеи социальных групп. В новой статье исследуется эволюция социальных групп с использованием алгоритмов перемещения и памяти. Результаты помогут понять эволюцию социальных систем и применить их в оптимизации и поиске решений.
Популяционные алгоритмы оптимизации: Эволюция социальных групп (Evolution of Social Groups, ESG)
В статье рассмотрим принцип построения многопопуляционных алгоритмов и в качестве примера такого вида алгоритмов разберём Эволюцию социальных групп (ESG), новый авторский алгоритм. Мы проанализируем основные концепции, механизмы взаимодействия популяций и преимущества этого алгоритма, а также рассмотрим его производительность в задачах оптимизации.
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 3)
Статья является третьей частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы подробно описываем применение принципа разработки через тестирование для реализации обмена пакетами CONNECT/CONNACK. В конце этого шага наш клиент ДОЛЖЕН уметь вести себя соответствующим образом при работе с любыми возможными результатами сервера при попытке подключения.
Причинно-следственный вывод в задачах классификации временных рядов
В этой статье мы рассмотрим теорию причинно-следственного вывода с применением машинного обучения, а также реализацию авторского подхода на языке Python. Причинно-следственный вывод и причинно-следственное мышление берут свои корни в философии и психологии, это важная часть нашего способа мыслить эту реальность.
Популяционные алгоритмы оптимизации: Бинарный генетический алгоритм (Binary Genetic Algorithm, BGA). Часть II
В этой статье мы рассмотрим бинарный генетический алгоритм (BGA), который моделирует естественные процессы, происходящие в генетическом материале у живых существ в природе.
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 2)
Статья является частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы описываем организацию нашего кода, первые заголовочные файлы и классы, а также написание тестов. В эту статью также включены краткие заметки о разработке через тестирование (Test-Driven-Development) и о ее применении в этом проекте.
Разрабатываем мультивалютный советник (Часть 1): Совместная работа нескольких торговых стратегий
Различных торговых стратегий существует довольно много. С точки зрения диверсификации рисков и повышения устойчивости торговых результатов может оказаться полезным использовать несколько параллельно работающих стратегий. Но если каждая стратегия будет реализована в виде отдельного советника, то управлять их совместной работой на одном торговом счёте становится гораздо сложнее. Для решения этой проблемы желательно реализовать работу разных торговых стратегий в одном советнике.
Популяционные алгоритмы оптимизации: Изменяем форму и смещаем распределения вероятностей и тестируем на "Умном головастике" (Smart Cephalopod, SC)
В данной статье исследуется влияние изменения формы распределений вероятностей на производительность алгоритмов оптимизации. Мы проводим эксперименты на тестовом алгоритме 'Умный головастик' (SC), чтобы оценить эффективность различных распределений вероятностей в контексте оптимизационных задач.
Кросс-валидация и основы причинно-следственного вывода в моделях CatBoost, экспорт в ONNX формат
В данной статье предложен авторский способ создания ботов с использованием машинного обучения.
Регрессионные модели библиотеки Scikit-learn и их экспорт в ONNX
В данной статье мы рассмотрим применение регрессионных моделей пакета Scikit-learn, попробуем их сконвертировать в ONNX-формат и использовать полученные модели в программах на MQL5. Также мы сравним точность работы оригинальных моделей и их ONNX-версий для float и double. Кроме того, мы рассмотрим ONNX-представление регресионных моделей, это позволит лучше понять их внутреннее устройство и принцип работы.
Популяционные алгоритмы оптимизации: Алгоритм поиска системой зарядов (Charged System Search, CSS)
В этой статье рассмотрим ещё один алгоритм оптимизации, инспирированный неживой природой - алгоритм поиска системой зарядов (CSS). Цель этой статьи - представить новый алгоритм оптимизации, основанный на принципах физики и механики.
Классификационные модели библиотеки Scikit-learn и их экспорт в ONNX
В данной статье мы рассмотрим применение всех классификационных моделей пакета Scikit-learn для решения задачи классификации ирисов Фишера, попробуем их сконвертировать в ONNX-формат и использовать полученные модели в программах на MQL5. Также мы сравним точность работы оригинальных моделей и их ONNX-версий на полном наборе Iris dataset.
Теория категорий в MQL5 (Часть 14): Функторы с линейным порядком
Эта статья из серии статей о реализации теории категорий в MQL5 посвящена функторам. Мы исследуем, как линейный порядок может быть отображен на множестве благодаря функторам при рассмотрении двух множеств данных, между которыми на первый взгляд отсутствует всякая связь.