
Возможности Мастера MQL5, которые вам нужно знать (Часть 41): Сети Deep-Q
Сеть Deep-Q (Deep-Q-Network) — это алгоритм обучения с подкреплением, который вовлекает нейронные сети в прогнозирование следующего значения Q и идеального действия в процессе обучения модуля машинного обучения. Мы уже рассматривали альтернативный алгоритм обучения с подкреплением — Q-обучение. Таким образом, в данной статье представлен еще один пример того, как многослойный перцептрон (multi-layer perceptron, MLP), обученный с помощью обучения с подкреплением, может использоваться в пользовательском классе сигналов.

Нейросети в трейдинге: Интеграция теории хаоса в прогнозирование временных рядов (Окончание)
Продолжаем интеграцию методов, предложенных авторами фреймворка Attraos, в торговые модели. Напомню, что данный фреймворк использует концепции теории хаоса для решения задач прогнозирования временных рядов, интерпретируя их как проекции многомерных хаотических динамических систем.

Возможности Мастера MQL5, которые вам нужно знать (Часть 35): Регрессия опорных векторов
Регрессия опорных векторов — это идеалистический способ поиска функции или "гиперплоскости" (hyper-plane), который наилучшим образом описывает взаимосвязь между двумя наборами данных. Мы попытаемся использовать его при прогнозировании временных рядов в пользовательских классах Мастера MQL5.

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

Создание торговой панели администратора на MQL5 (Часть III): Улучшение графического интерфейса пользователя (GUI) с помощью визуального оформления (I)
В настоящей статье мы сосредоточимся на визуальном оформлении графического интерфейса пользователя (GUI) нашей торговой панели администратора с использованием MQL5. Мы рассмотрим различные методы и функции, доступные в MQL5, которые позволяют настраивать и оптимизировать интерфейс, обеспечивая его соответствие потребностям трейдеров при сохранении привлекательной эстетики.

Применение локализованного отбора признаков на Python и MQL5
В настоящей статье рассматривается алгоритм отбора признаков, представленный в статье "Выбор локальных признаков для классификации данных» ('Local Feature Selection for Data Classification') Наргеса Арманфарда и соавторов (Narges Armanfard et al.). Алгоритм реализован на Python для построения моделей бинарных классификаторов, которые могут быть интегрированы с приложениями MetaTrader 5 для логического вывода.

От начального до среднего уровня: Массивы и строки (II)
В этой статье я покажу, что хотя мы всё еще находимся на очень базовой стадии программирования, мы уже можем реализовать несколько интересных приложений. В данном случае мы создадим довольно простой генератор паролей. Таким образом мы сможем применить некоторые концепции, которые объяснялись до этого. Кроме того, мы рассмотрим, как можно разработать решения для некоторых конкретных проблем.

Пример сетевого анализа причинно-следственных связей (CNA) и модели векторной авторегресси для прогнозирования рыночных событий
В настоящей статье представлено подробное руководство по реализации сложной торговой системы с использованием сетевого анализа причинно-следственных связей (CNA) и векторной авторегрессии (VAR) в MQL5. В ней излагаются теоретические основы этих методов, предлагаются подробные объяснения ключевых функций торгового алгоритма, а также приводится пример кода для реализации.

Причинно-следственный анализ временных рядов с помощью энтропии переноса
В этой статье обсудим, как можно применить статистические причинно-следственные связи при определении прогностических переменных. Мы рассмотрим связь между причинностью и энтропией переноса, а также представим код на MQL5 для обнаружения направленных переносов информации между двумя переменными.

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

Пример стохастической оптимизации и оптимального управления
Настоящий советник, получивший название SMOC (что, вероятно, означает оптимальное управление стохастической моделью (Stochastic Model Optimal Control), является простым примером передовой алгоритмической торговой системы для MetaTrader 5. Он использует комбинацию технических индикаторов, прогностического контроля моделей и динамического управления рисками для принятия торговых решений. Советник включает в себя адаптивные параметры, определение размера позиции на основе волатильности и анализ трендов для оптимизации его работы в изменяющихся рыночных условиях.

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

От начального до среднего уровня: Массивы и строки (I)
В сегодняшней статье мы начнем изучать некоторые особые типы данных. Для начала мы определим, что такое строка, и объясним, как использовать некоторые базовые процедуры. Это позволит нам работать с этим типом данных, который может быть интересным, хотя иногда и немного запутанным для новичков. Представленные здесь материалы предназначены только для обучения. Ни в коем случае нельзя рассматривать это приложение как окончательное, цели которого будут иные, кроме изучения представленных концепций.

Переосмысливаем классические стратегии в MQL5 (Часть II): FTSE100 и Гилты Великобритании
В данной серии статей мы исследуем популярные торговые стратегии и попытаемся улучшить их с помощью ИИ. В сегодняшней статье мы вновь рассмотрим классическую торговую стратегию, построенную на взаимосвязи между фондовым рынком и рынком облигаций.

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 40): Parabolic SAR
Parabolic Stop-and-Reversal (SAR) - это индикатор точек подтверждения и окончания тренда. Поскольку он отстает в определении трендов, его основной целью было позиционирование скользящих стоп-лоссов по открытым позициям. Мы рассмотрим, можно ли его использовать в качестве сигнала советника с помощью пользовательских классов сигналов советников, собранных с помощью Мастера.

Визуализация стратегий в MQL5: раскладываем результаты оптимизации по графикам критериев
В этой статье мы напишем пример визуализации процесса оптимизации и сделаем отображение трёх лучших проходов для четырёх критериев оптимизации. А также обеспечим возможность выбора одного из трёх лучших проходов для вывода его данных в таблицы и на график.

Диалектический поиск — Dialectic Search (DA)
Представляем Диалектический Алгоритм (DA) — новый метод глобальной оптимизации, вдохновленный философской концепцией диалектики. Алгоритм использует уникальное разделение популяции на спекулятивных и практических мыслителей. Тестирование показывает впечатляющую производительность до 98% в задачах малой размерности и общую эффективность 57.95%. Статья объясняет эти показатели и представляет детальное описание алгоритма и результаты экспериментов на различных типах функций.

Критерий независимости Гильберта-Шмидта (HSIC)
В статье рассматривается непараметрический статистический тест HSIC (Hilbert-Schmidt Independence Criterion) предназначенный для выявления линейных и нелинейных зависимостей в данных. Предложены реализации двух алгоритмов вычисления HSIC на языке MQL5: точного перестановочного теста и гамма-аппроксимации. Эффективность метода демонстрируется на синтетических данных, моделирующих нелинейную связь признаков и целевой переменной.

Возможности Мастера MQL5, которые вам нужно знать (Часть 37): Регрессия гауссовских процессов с линейными ядрами и ядрами Матерна
Линейные ядра — простейшая матрица, используемая в машинном обучении для линейной регрессии и опорных векторных машин. Ядро Матерна (Matérn) представляет собой более универсальную версию радиальной базисной функции (Radial Basis Function, RBF), которую мы рассматривали в одной из предыдущих статей, и оно отлично подходит для отображения функций, которые не настолько гладкие, как предполагает RBF. Создадим специальный класс сигналов, который использует оба ядра для прогнозирования условий на покупку и продажу.

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

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

Создание торговой панели администратора на MQL5 (Часть III): Расширение встроенных классов для управления темами (II)
Мы расширим существующую библиотеку Dialog, включив в нее логику управления темами. Кроме того, мы интегрируем методы переключения тем в классы CDialog, CEdit и CButton, используемые в нашем проекте панели администратора.

Функции активации нейронов при обучении: ключ к быстрой сходимости?
В данной работе представлено исследование взаимодействия различных функций активации с алгоритмами оптимизации в контексте обучения нейронных сетей. Особое внимание уделяется сравнению классического ADAM и его популяционной версии при работе с широким спектром функций активации, включая осциллирующие функции ACON и Snake. Используя минималистичную архитектуру MLP (1-1-1) и единичный обучающий пример, производится изоляция влияния функций активации на процесс оптимизации от других факторов. Предложен подход к контролю весов сети через границы функций активации и механизма отражения весов, что позволяет избежать проблем с насыщением и застоем в обучении.

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

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

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

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

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

От начального до среднего уровня: Приоритеты операторов
Это, несомненно, самый сложный вопрос, который можно объяснить исключительно теоретически. Поэтому я советую вам попрактиковаться с материалами, которые будут показаны здесь. Хотя на первый взгляд всё может показаться простым, данный вопрос с операторами можно понять только на практике в сочетании с постоянным изучением.

Возможности Мастера MQL5, которые вам нужно знать (Часть 28): Сети GAN в контексте темпа обучения
Темп обучения — это размер шага к цели обучения во многих алгоритмах машинного обучения. В статье мы изучим, какое влияние многочисленные форматы могут оказать на производительность генеративно-состязательной сети (Generative Adversarial Network, GAN) — разновидности нейронной сети, которую мы рассмотрели в одной из предыдущих статей.

Оптимизация коралловых рифов — Coral Reefs Optimization (CRO)
В данной статье представлен комплексный анализ алгоритма оптимизации коралловых рифов (CRO) — метаэвристического метода, вдохновленного биологическими процессами формирования и развития коралловых рифов. Алгоритм моделирует ключевые аспекты эволюции кораллов: внешнее и внутреннее размножение, оседание личинок, бесполое размножение и конкуренцию за ограниченное пространство в рифе. Особое внимание в работе уделяется усовершенствованной версии алгоритма.

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

От начального до среднего уровня: Переменные (III)
Сегодня мы рассмотрим, как использовать переменные и константы, предопределенные языком MQL5. Кроме того, мы проанализируем еще один особый тип переменных: функции. Умение правильно работать с этими переменными может определить разницу между работающим и неработающим приложением. Для того, чтобы понять представленное здесь, необходимо разобраться с материалом, который был рассмотрен в предыдущих статьях.

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

Алгоритм успешного ресторатора — Successful Restaurateur Algorithm (SRA)
Алгоритм успешного ресторатора (SRA) — инновационный метод оптимизации, вдохновленный принципами управления ресторанным бизнесом. В отличие от традиционных подходов, SRA не отбрасывает слабые решения, а улучшает их, комбинируя с элементами успешных. Алгоритм показывает конкурентоспособные результаты и предлагает свежий взгляд на балансирование между исследованием и эксплуатацией в задачах оптимизации.

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

Бильярдный алгоритм оптимизации — Billiards Optimization Algorithm (BOA)
Метод BOA, вдохновленный классической игрой в бильярд, моделирует процесс поиска оптимальных решений, как игру с шарами, стремящимися попасть в лузы, олицетворяющие наилучшие результаты. В данной статье мы рассмотрим основы работы BOA, его математическую модель и эффективность в решении различных оптимизационных задач.

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

Алгоритм хаотической оптимизации — Chaos optimization algorithm (COA): Продолжение
Продолжение исследования алгоритма хаотической оптимизации. Вторая часть статьи посвящена практическим аспектам реализации алгоритма, его тестированию и выводам.