Балансировка риска при одновременной торговле нескольких торговых инструментов
Данная статья позволит новичку с нуля написать реализацию скрипта для балансировки рисков при одновременной торговле нескольких торговых инструментов, а опытным пользователям возможно даст новые идеи для реализации своих решений в части предложенных вариантов в данной статье.
Торговый робот на языковой GPT-модели
Статья представляет полную реализацию TimeGPT — специализированной архитектуры на основе Transformer для прогнозирования финансовых временных рядов на платформе MetaTrader 5. Рассмотрена адаптация механизма внимания для финансовых данных, селективная токенизация изменений цены, hardware-aware оптимизации и продвинутые техники обучения. Включены результаты практического тестирования, показавшие точность прогнозов 87% при горизонте 24 бара с временем обучения 15 минут на CPU. Представлен готовый торговый советник с автоматическим переобучением.
Добавляем пользовательскую LLM в торгового робота (Часть 2): Пример развертывания среды
Языковые модели (LLM) являются важной частью быстро развивающегося искусственного интеллекта, поэтому нам следует подумать о том, как интегрировать мощные LLM в нашу алгоритмическую торговлю. Большинству людей сложно настроить эти модели в соответствии со своими потребностями, развернуть их локально, а затем применить к алгоритмической торговле. В этой серии статей будет рассмотрен пошаговый подход к достижению этой цели.
Нейросети в трейдинге: Модели с использованием вейвлет-преобразования и многозадачного внимания
Предлагаем познакомиться с фреймворком объединяющим вейвлет-преобразование и многозадачную модель Self-Attention, направленную на повышение отзывчивости и точности прогнозирования в условиях нестабильности рынка. Вейвлет-преобразование позволяет разложить доходность активов на высокие и низкие частоты, тщательно фиксируя долгосрочные рыночные тенденции и краткосрочные колебания.
Прогнозирование валютных курсов с использованием классических методов машинного обучения: Логит и Пробит модели
Предпринята попытка построить торговый эксперт для предсказания котировок валютных курсов. За основу алгоритма взяты классические модели классификации — логистическая и пробит регрессия. В качестве фильтра торговых сигналов используется критерий отношения правдоподобия.
Разрабатываем мультивалютный советник (Часть 20): Приводим в порядок конвейер этапов автоматической оптимизации проектов (I)
Мы создали уже довольно много компонентов, которые помогают организовать процесс автоматической оптимизации. При создании мы придерживались традиционной цикличности: от создания минимального рабочего кода до рефакторинга и получения улучшенного кода. Пришло время заняться наведением порядка в нашей базе данных, которая тоже является ключевым компонентом в создаваемой системе.
Разработка торгового советника с нуля (Часть 16): Доступ к данным в Интернете (II)
Знание того, как вводить данные из Web в советник, не так очевидно, вернее, не так просто, чтобы это можно было сделать без понимания всех возможностей, которые есть в MetaTrader 5.
Как опередить любой рынок (Часть IV): Индексы волатильности евро и золота CBOE
Мы проанализируем альтернативные данные, собранные Чикагской опционной биржей (Chicago Board of Options Exchange, CBOE), чтобы повысить точность наших глубоких нейронных сетей при прогнозировании символа XAUEUR.
Использование JSON Data API в MQL-проектах
Представьте, что вы можете использовать данные, которых нет в MetaTrader. Обычно вы получаете информацию только от индикаторов, основанных на анализе цен и техническом анализе. Теперь представьте, что у вас есть доступ к данным, которые выведут ваши торговые возможности на новый уровень. Вы можете значительно увеличить мощность платформы MetaTrader, если объедините её возможности с результатами работы других программ, методов макроанализа и ультрасовременных инструментов через API. В этой статье мы расскажем, как использовать API, и представим полезные и ценные API-сервисы.
Разрабатываем мультивалютный советник (Часть 8): Проводим нагрузочное тестирование и обрабатываем новый бар
По мере продвижения мы использовали в одном советнике всё больше и больше одновременно работающих экземпляров торговых стратегий. Попробуем выяснить до какого количества экземпляров мы можем дойти прежде, чем столкнёмся ограничениями ресурсов.
Нейросети в трейдинге: Оптимизация LSTM для целей прогнозирования многомерных временных рядов (Окончание)
Мы продолжаем реализацию фреймворка DA-CG-LSTM, который предлагает инновационные методы анализа и прогнозирования временных рядов. Использование CG-LSTM и двойного внимания позволяет более точно выявлять как долгосрочные, так и краткосрочные зависимости в данных, что особенно полезно для работы с финансовыми рынками.
Метод группового учета аргументов: реализация многослойного итерационного алгоритма на MQL5
В этой статье мы описываем реализацию Многослойного итерационного алгоритма как метода группового учета аргументов на языке MQL5.
Переосмысливаем классические стратегии на языке Python: Пересечения скользящих средних
В этой статье мы пересмотрим классическую стратегию пересечений скользящих средних для оценки ее текущей эффективности. Учитывая, сколько времени прошло с момента ее создания, исследуем потенциальные улучшения, которые ИИ может привнести в эту традиционную торговую стратегию. С помощью методов искусственного интеллекта мы постараемся применить передовые возможнности прогнозирования для потенциальной оптимизации точек входы и выхода из рынка, адаптировать их к меняющимся рыночным условиям и повысить общую эффективность по сравнению с традиционными подходами.
Разрабатываем мультивалютный советник (Часть 19): Создаём этапы, реализованные на Python
Пока что мы рассматривали автоматизацию запуска последовательных процедур оптимизации советников исключительно в штатном тестере стратегий. Но что делать, если между такими запусками нам хотелось бы выполнить некоторую обработку уже полученных данных, используя другие средства? Попробуем добавить возможность создания новых этапов оптимизации, выполняемых программами, написанными на Python.
Разработка системы репликации - Моделирование рынка (Часть 20): ФОРЕКС (I)
Первоначальная цель данной статьи заключается не в охвате всех возможностей ФОРЕКС, а скорее в адаптации системы таким образом, чтобы вы могли совершить хотя бы одну репликацию рынка. Моделирование оставим для другого момента. Однако, если у нас нет тиков, а есть только бары, приложив немного усилий, мы можем смоделировать возможные сделки, которые могли произойти на рынке ФОРЕКС. Так будет до тех пор, пока мы не рассмотрим, как адаптировать тестер. Попытка работать с данными ФОРЕКС внутри системы без их модификации приводит к ошибкам диапазона.
Разрабатываем мультивалютный советник (Часть 10): Создание объектов из строки
План разработки советника предусматривает несколько этапов с сохранением промежуточных результатов в базе данных. Заново достать их оттуда можно только в виде строк или чисел, а не объектов. Поэтому нам нужен способ воссоздания в советнике нужных объектов из строк, прочитанных из базы данных.
DoEasy. Элементы управления (Часть 11): WinForms-объекты — группы, WinForms-объект CheckedListBox
В статье рассмотрим группирование WinForms-объектов и создадим объект-список объектов CheckBox.
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность
Во второй части статьи перейдем к практической реализации алгоритма BSO, проведем тесты на тестовых функциях и сравним эффективность BSO с другими методами оптимизации.
Нейросети в трейдинге: Модели с использованием вейвлет-преобразования и многозадачного внимания (Окончание)
В предыдущей статье мы рассмотрели теоретические основы и приступили к реализации подходов фреймворка Multitask-Stockformer, объединяющего вейвлет-преобразование и многозадачную модель Self-Attention. Продолжаем реализацию алгоритмов указанного фреймворка и оценим их эффективность на реальных исторических данных.
DoEasy. Элементы управления (Часть 19): Прокрутка вкладок в элементе TabControl, события WinForms-объектов
В статье создадим функционал для прокрутки заголовков вкладок в элементе управления TabControl при помощи кнопок управления прокруткой. Функционал будет работать для расположения заголовков вкладок в одну строку с любой из сторон элемента управления.
Нейросети в трейдинге: Контрастный Трансформер паттернов (Окончание)
В последней статье нашей серии мы рассмотрели фреймворк Atom-Motif Contrastive Transformer (AMCT), который использует контрастное обучение для выявления ключевых паттернов на всех уровнях — от базовых элементов до сложных структур. В этой статье мы продолжаем реализацию подходов AMCT средствами MQL5.
Индикатор оценки силы и слабости валютных пар на чистом MQL5
Создаем профессиональный индикатор для анализа силы валют на MQL5. Пошаговое руководство научит вас разрабатывать мощный торговый инструмент с визуальной панелью для MetaTrader 5. Вы узнаете, как рассчитывать силу валютных пар по нескольким таймфреймам (H1, H4, D1), реализовывать динамическое обновление данных и создавать удобный пользовательский интерфейс.
Фильтр сезонности и временные периоды в моделях глубокого обучения с ONNX и Python в советнике
Можем ли мы извлечь выгоду из сезонности при создании моделей для глубокого обучения с помощью Python? Помогает ли фильтрация данных в моделях ONNX получить лучшие результаты? Какой период времени использовать? Обо всем этом расскажем в этой статье.
Нейросети в трейдинге: Гибридный торговый фреймворк с предиктивным кодированием (Окончание)
Продолжаем рассмотрение гибридной торговой системы StockFormer, которая объединяет предиктивное кодирование и алгоритмы обучения с подкреплением для анализа финансовых временных рядов. Основой системы служат три ветви Transformer с механизмом Diversified Multi-Head Attention (DMH-Attn), позволяющим выявлять сложные паттерны и взаимосвязи между активами. Ранее мы познакомились с теоретическими аспектами фреймворка и реализовали механизмы DMH-Attn, а сегодня поговорим об архитектуре моделей и их обучении.
Арбитражный трейдинг Forex: Анализ движений синтетических валют и их возврат к среднему
В статье попробуем рассмотреть движения синтетических валют на связке Python + MQL5 и понять, насколько реален арбитраж на Форекс сегодня. А также: готовый код Python для анализа синтетических валют и подробней о том, что такое синтетические валюты на Форекс.
Методы оптимизации библиотеки ALGLIB (Часть I)
В статье познакомимся с методами оптимизации библиотеки ALGLIB для MQL5. Статья включает простые и наглядные примеры применения ALGLIB для решения задач оптимизации, что сделает процесс освоения методов максимально доступным. Мы подробно рассмотрим подключение таких алгоритмов, как BLEIC, L-BFGS и NS, и на их основе решим простую тестовую задачу.
Машинное обучение и Data Science (Часть 19): Совершенствуем AI-модели с помощью AdaBoost
Алгоритм AdaBoost используется для повышения производительности моделей искусственного интеллекта. AdaBoost (Adaptive Boosting, адаптивный бустинг) представляет собой сложную методику ансамблевого обучения, которая легко объединяет слабых учащихся, повышая их коллективную способность прогнозирования.
Переосмысливаем классические стратегии (Часть XI): Пересечение скользящих средних (II)
Скользящие средние и стохастический осциллятор можно использовать для генерации торговых сигналов, следующих за трендом. Однако эти сигналы будут наблюдаться только после того, как произойдет ценовое движение. Мы можем эффективно преодолеть этот неизбежный лаг в технических индикаторах с помощью искусственного интеллекта. В настоящей статье мы расскажем, как создать полностью автономный советник на базе ИИ таким образом, чтобы улучшить любую из ваших существующих торговых стратегий. Даже самая старая торговая стратегия может быть улучшена.
Пишем первую модель стеклянного ящика (Glass Box) на Python и MQL5
Модели машинного обучения трудно интерпретировать, и понимание того, почему модели не совпадают с нашими ожиданиями, может очень сильно помочь в конечном итоге достичь нужного результата от использования таких современных методов. Без всестороннего понимания внутренней работы модели может быть сложно найти ошибки, которые ухудшают производительность. При этом можно тратить время на создание функций, которые не влияют на качество прогноза. В итоге, какой бы хорошей ни была модель, мы упускаем все ее основные преимущества из-за собственных ошибок. К счастью, существует сложное, но при этом хорошо разработанное решение, которое позволяет ясно увидеть, что происходит под капотом модели.
Нейросети в трейдинге: Пространственно-временная нейронная сеть (STNN)
В данной статье мы поговорим об использовании пространственно-временных преобразований для эффективного прогнозирования предстоящего ценового движения. Для повышения точности численного прогнозирования в STNN был предложен механизм непрерывного внимания, который позволяет модели лучше учитывать важные аспекты данных.
Оптимизация портфеля на форексе: Синтез VaR и теории Марковица
Как осуществляется портфельная торговля на Форекс? Как могут быть синтезированы портфельная теория Марковица для оптимизации пропорций портфеля и VaR модель для оптимизации риска портфеля? Создаем код по портфельной теории, где, с одной стороны, получим низкий риск, а с другой — приемлемую долгосрочную доходность.
Нейросети в трейдинге: Контрастный Трансформер паттернов
Контрастный Transformer паттернов осуществляет анализ рыночных ситуаций, как на уровне отдельных свечей, так и целых паттернов. Что способствует повышению качества моделирования рыночных тенденций. А применение контрастного обучения для согласования представлений свечей и паттернов ведет к саморегуляции и повышению точности прогнозов.
Нейронная сеть на практике: Секущая прямая
Как уже объяснялось в теоретической части, при работе с нейронными сетями нам необходимо использовать линейные регрессии и производные. Но почему? Причина заключается в том, что линейная регрессия - одна из самых простых существующих формул. По сути, линейная регрессия - это просто аффинная функция. Однако, когда мы говорим о нейронных сетях, нас не интересуют эффекты прямой линейной регрессии. Нас интересует уравнение, которое порождает данную прямую. Созданная прямая не имеет большого значения. Но знаете ли вы, какое главное уравнение мы должны понять? Если нет, то я вам рекомендую прочесть эту статью, чтобы начать разбираться в этом.
Популяционные алгоритмы оптимизации: Гибридный алгоритм оптимизации бактериального поиска с генетическим алгоритмом (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)
В статье представлен новый подход к решению оптимизационных задач, путём объединения идей алгоритмов оптимизации бактериального поиска пищи (BFO) и приёмов, используемых в генетическом алгоритме (GA), в гибридный алгоритм BFO-GA. Он использует роение бактерий для глобального поиска оптимального решения и генетические операторы для уточнения локальных оптимумов. В отличие от оригинального BFO бактерии теперь могут мутировать и наследовать гены.
Нейросети в трейдинге: Адаптивное представление графов (NAFS)
Предлагаем познакомиться с методом NAFS (Node-Adaptive Feature Smoothing) — это непараметрический подход к созданию представлений узлов, который не требует обучения параметров. NAFS извлекает характеристики каждого узла, учитывая его соседей, и затем адаптивно комбинирует эти характеристики для формирования конечного представления.
DoEasy. Элементы управления (Часть 15): WinForms-объект TabControl — несколько рядов заголовков вкладок, методы работы с вкладками
В статье продолжим работу над WinForm-объектом TabControl — создадим класс объекта-поля вкладки, сделаем возможность расположения заголовков вкладок в несколько рядов и добавим методы для работы с вкладками объекта.
Нейросети — это просто (Часть 90): Частотная интерполяция временных рядов (FITS)
При изучении метода FEDformer мы приоткрыли дверь в частотную область представления временного ряда. В новой статье мы продолжим начатую тему. И рассмотрим метод, позволяющий не только проводить анализ, но и прогнозировать последующие состояния в частной области.
Компьютерное зрение для трейдинга (Часть 1): Создаем базовый простой функционал
Система прогнозирования EURUSD с применением компьютерного зрения и глубокого обучения. Узнайте, как сверточные нейронные сети могут распознавать сложные ценовые паттерны на валютном рынке и предсказывать движение курса с точностью до 54%. Статья раскрывает методологию создания алгоритма, использующего технологии искусственного интеллекта для визуального анализа графиков вместо традиционных технических индикаторов. Автор демонстрирует процесс трансформации ценовых данных в «изображения», их обработку нейронной сетью и уникальную возможность заглянуть в «сознание» ИИ через карты активации и тепловые карты внимания. Практический код на Python с использованием библиотеки MetaTrader 5 позволяет читателям воспроизвести систему и применить ее в собственной торговле.
DoEasy. Элементы управления (Часть 24): Вспомогательный WinForms-объект "Подсказка"
В статье переработаем логику указания базового и главного объекта для всех WinForms-объектов библиотеки, разработаем новый базовый объект "Подсказка" и несколько его производных классов для указания возможного направления перемещения разделительной линии.
Как построить советник, работающий автоматически (Часть 10): Автоматизация (II)
Автоматизация ничего не значит, если вы не можете контролировать расписание его работы. Ни один работник не может быть эффективным при работе 24 часа в сутки. Несмотря на этот факт, многие считают, что автоматизированная система должна работать 24 часа в сутки. Хорошо всегда иметь возможность задавать временной интервал для эксперта. В этой статье мы обсудим, как правильно установить такой временной интервал.