MQL5 Алготрейдинг
13.5K subscribers
1.34K photos
1.34K links
Лучшие публикации самого большого общества алготрейдеров.

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

Читать далее...
👍511👏1
С 1 декабря 2024 года минимальными версиями торговых платформ станут:

• MetaTrader 4 — билд 1420 от 24 мая
• MetaTrader 5 — билд 4410 от 21 июня

После указанной даты более старые версии десктопных терминалов не смогут подключаться к серверам брокеров.

За последние полгода для MetaTrader 5 было выпущено четыре обновления:

Build 4410 — исправлены падения в десктопной версии, а также проверка совместимости браузера и открытие демо-счетов в веб-версии.
Build 4570 — режим перекрестия, график в виде линии и настройка «Обзора рынка» в веб-версии, библиотека матричных вычисления OpenBLAS и улучшение поддержки ONNX в MQL5.
Build 4585 — исправлены падения при профилировании и тестировании MQL5-программ, а также утечки памяти при компиляции.
Build 4620 — расширение поддержки OpenBLAS и исправление запросов тиковой истории.

В каждой версии MetaTrader 4 мы повышаем производительность платформы и исправляем ошибки.

Скачивайте последнюю версию платформы и пользуйтесь новыми функциями
👍82🎉1🤨1
Добавление индикатора на график и сохранение шаблона под именем "default" позволяет автоматически загружать индикатор на все вновь открываемые графики. Это удобно для стандартного применения установленного индикатора.

Создание аналогичного индикатора для МТ4 оказалось проблематичным из-за низкой производительности и практически нерабочего состояния на финише. Однако благодаря усилиям Николая Семко, удалось разработать функциональный индикатор для МТ4, который изменяет шрифт ценовой шкалы, обеспечивая нужную функциональность.

Совместная работа и обмен опытом среди специалистов позволяют решать сложные задачи в сфере разработки и улучшать существующие инструменты.

Читать далее...
31
Арбитраж на валютном рынке привлекает внимание специалистов за счет возможности извлечения выгоды из краткосрочных дисбалансов курсов. Основой для разработки арбитражной торговой системы стало использование Python и MetaTrader 5 для автоматизации вычислений и исполнения. Система оптимизирована для работы с большим количеством валютных пар и использует сотни синтетических цен для поиска возможностей.

Преимущества данных технологий заключаются в функциональности и простоте интеграции. Библиотека MetaTrader5 из Python позволяет получать котировки в реальном времени и управлять торговыми операциями. Это сочетание делает возможным проведение продвинутого анализа и создание алгоритмических стратегий.

Читать далее...
4
Обновленная система репликации/моделирования продолжает получать улучшения в интеграции индикаторов управления и мыши. Изменения в коде нацелены на повышение стабильности и безопасности, реагируя на некорректное использование некоторых пользователей. Главный фокус - на оптимизации взаимодействия пользователя с системой через эффективную реализацию классов и наследования.

Индикатор мыши теперь отвечает за взаимодействие, минимизируя дублирование кода и повышая производительность. Правильная передача ID графика жизненно важна для корректной работы объектов MT5. Интеграция и обновления позволяют использовать систему на реальных и демо-счетах с возможностью дальнейшего персонализирования.

Читать далее...
3👍1🏆1
Скрипт для быстрой модификации графиков с использованием скользящих средних (MA) различных периодов и методов построения. Для изменения MA стандартными средствами требуется множество операций, что неудобно. Скрипт, используя индикатор "Custom Moving Average 2", упрощает этот процесс. Первый запуск строит MA с базовыми параметрами, а последующие — удаляют прежнюю и создают новую с изменёнными настройками, чередуя EMA/SMA/LWMA. В верхнем углу отображаются новые параметры MA (например, SMA|100). Переменная maChange позволяет задавать новый период MA при каждом запуске. Чтобы быстро переключаться между процедурами, скрипт можно сохранить под разными именами и назначить клавиши. Изменение maChange в скрипте задаёт шаг изменения периода. Дополнительно можно настраивать параметры вывода данных через TextBox. Приветствуется кнопка "Применить" в настройках, чтобы оперативно видеть изменения гр...

Читать далее...
11
Для программистов и IT-специалистов, стремящихся улучшить свою производительность, понимание и использование системы версионного контроля GIT является неотъемлемой частью набора инструментов. GIT изначально предназначен для Linux, но его возможности легко доступны на Windows. Пользователям Windows 11 может потребоваться больше усилий для настройки, но для Windows 10 интеграция проще. Основные действия включают установку последней версии GIT с официального сайта и настройку редактора. Расширенная функциональность GIT позволяет эффективно управлять изменениями в проектах, предотвращая потерю данных и поддерживая порядок в процессе разработки. Это важный шаг на пути к профессионализму в программировании.

Читать далее...
4🔥4👍2
Добавление индикатора на график и сохранение шаблона под именем "default" обеспечивает автоматическое применение этого индикатора ко всем вновь открываемым графикам. В версии "1.05" реализована функция отображения текущей цены в зависимости от параметров построения графиков. Это позволяет пользователям более четко отслеживать изменения. В версии "1.07" добавлено вертикальное масштабирование графика. Эта функция улучшает визуальное восприятие цены и делает анализ более комфортным и детализированным. Обе версии предоставляют пользователю больше возможностей для гибкой настройки интерфейса и повышения качества анализа.

Читать далее...
21
Для тех, кто планирует структурный анализ рыночных паттернов с Python и MetaTrader 5, важно правильно настроить рабочее окружение. Это начинается с установки Python и необходимых библиотек: MetaTrader 5, pandas и numpy. Важную роль играет корректное подключение терминала MetaTrader 5. Используя функцию copy_rates_range, можно загрузить исторические данные. Обработка временных рядов, включая преобразование данных OHLC в направления движения цены, позволяет выделить ключевые паттерны. Алгоритм поиска систематически анализирует паттерны длиной от 3 до 25 единиц, рассчитывает их WinRate и частоту встречаемости, что способствует выявлению наиболее значимых движений цены для торговли.

Читать далее...
🔥51👍1
В предыдущей статье мы обновили указатель мыши для интеграции с системой репликации в MQL5. Разобрали функции ChartOpen и ChartID для правильного получения ID графиков. При этом возникли проблемы взаимодействия указателя мыши с индикатором управления из-за упущенных деталей в коде.

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

Углубимся в код указателя и класса C_Mouse, объясняя различия скорректированных X, Y координат от графических. Эти параметры нужны для успешной интеграции и точного позиционирования на графиках.

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

Читать далее...
👍31
Фреймворк Atom-Motif Contrastive Transformer (AMCT) улучшает прогнозирование рыночных трендов, сочетая анализ элементарных объектов и сложных структур. Он трактует свечи и паттерны как единые рыночные ситуации, что способствует более точной модели обучения. Инновация контрастного обучения выявляет ключевые паттерны для лучшей интерпретации. Механизм внимания с учетом свойств интегрирует кросс-внимание, улучшая идентификацию важных рыночных тенденций. AMCT реализует классы для взаимозависимости рыночных факторов и свечных паттернов, обеспечивая логическую и последовательную интерпретацию данных, что потенциально полезно для трейдеров и разработчиков, работающих с MetaTrader 5.

Читать далее...
🎉4
В статье разбираем алгоритм работы модифицированного советника Grid-Hedge на платформе MQL5. Основное внимание уделяется математическим аспектам данной стратегии. Изучаются параметры стратегии, такие как стартовая позиция, начальный лот, расстояние между уровнями цен и множитель лота. Проводится анализ, как эти параметры влияют на прибыль или убыток. Также разработана формула расчета точки безубыточности и уровня тейк-профита для n-ордеров. Такая оптимизация позволяет эффективно управлять рисками и извлекать максимальную прибыль. В дальнейшем планируется переход на практическую часть и написание соответствующего программного кода.

Читать далее...
22👍1
При проведении тестирования эксперта, система обрабатывает весь диапазон дат, независимо от результатов каждой конкретной итерации. Для оптимизации процесса можно внедрить переменную, ограничивающую потери, что позволит при достижении критического уровня остановить текущую итерацию с помощью функции ExpertRemove(). Это прерывает дальнейшее тестирование, сохраняя статистику и результаты, что экономит время.

Для этого в код вводится специальная переменная, например, минимальный уровень свободных средств. В блоке OnTick() происходит мониторинг данного параметра. Если свободные средства падают ниже заданного уровня, функция ExpertRemove() прекращает тестирование итерации. Это эффективно сокращает время за счет прерывания заведомо неудачных итераций.

Предоставленные тесты показывают существенное сокращение времени тестирования: без функции обработка неудачной итерации занимает около 20 с...

Читать далее...
4
В статье рассматривается интеграция систем репликации на платформе MetaTrader 5. Основное внимание уделяется обмену сообщениями между программами, что позволяет создавать более модульные и комплексные системы. Обсуждается использование функций, таких как OnChartEvent и EventChartCustom, для обработки и передачи пользовательских сообщений, что влечет за собой потенциальные вызовы при совместной работе нескольких программ. Статья показывает, как правильно использовать эти возможности для повышения совместимости торговых приложений, акцентируя внимание на важности тестирования и совместимости в контексте общей торговой экосистемы. Описаны плюсы и риски интеграции пользовательских событий, важные для программистов.

Читать далее...
👌21
В статье рассматривается совершенствование автоматизации в подборе алгоритмов для MetaTrader 5. Изначально процесс основан на ручном анализе, но авторы предлагают более эффективный метод с использованием кластеризации, чтобы улучшить результаты торгов и ускорить процесс оптимизации. Кластеризация выполняется через Python и библиотеку scikit-learn (K-Means), однако интеграция Python в MQL5 требует дополнительных шагов. Предложенные решения включают запуск программ на Python из MQL5 с помощью системных функций или с использованием веб-запросов. Это обеспечивает большую гибкость и упрощает создание комплексных автоматических процессов для улучшения торговых стратегий.

Читать далее...
3👍1🏆1
В предыдущей статье обсуждались аспекты летнего времени и создание базы данных для тестирования на истории. Теперь сосредоточимся на внесении изменений в код с использованием наследования. Это упростит базу данных и добавит управление рисками с вариациями профилей.

Наследование в ООП позволяет подклассам использовать свойства и методы базового класса, сокращая дублирование и упрощая архитектуру. Модификаторы доступа, такие как Public, Private и Protected, определяют уровень доступа к членам класса.

Пример с MQL5 демонстрирует наследование через классы UnitedStates и Switzerland от NewsData. Вводятся структуры перехода на летнее время, оптимизированные через классы CDaylightSavings.

Класс символов устраняет избыточность, предоставляя функции для получения различных свойств символов, от цены до режима торговли.

Читать далее...
👍211
ALGLIB — мощная библиотека для численного анализа и оптимизации, доступная в MetaTrader 5. Она предлагает методы, такие как BLEIC и L-BFGS, которые решают задачи оптимизации с учетом ограничений. BLEIC использует активные множества для задач с равенствами и неравенствами, эффективно перемещая решение по допустимому множеству, тогда как L-BFGS, квазиньютоновский метод, оптимизирует задачи с большим числом переменных, используя лишь ограниченную память. Эти методы автоматизируют вычисление численных градиентов, критически важное для приложений в трейдинге, упрощая разработчикам создание и тестирование торговых систем.

Читать далее...
👍5🔥21👏1🏆1👀1
Библиотека для трейдинга с визуализацией цвета предоставляет улучшенные возможности цветового отображения на основе цветового пространства OKhsl. Структура OKhsl используется для более точного представления цветов, что особенно полезно при создании тепловых карт. Категории: оттенок, насыщенность и яркость. Значения оттенков варьируются от 0 до 360, насыщенность и яркость — от 0 до 100.

Функция GetGradientValue() позволяет определить цвет в градиенте для определенного значения. Параметры включают начальный и конечный цвета градиента, а также соответствующие им числовые значения. Функция возвращает цвет для заданного числового значения в том же формате. major_arc задает тип дуги изменения оттенка.

Функция GetGradientValues() работает с массивами, преобразуя числовые значения в соответствующие цвета. Результат записывается в массив colors_output[]. Функция возвращает количество элемент...

Читать далее...
11👍1
STNN предлагает современный подход к прогнозированию временных рядов с помощью моделирования взаимосвязей многомерных данных. Метод использует уравнение преобразования STI и архитектуру Transformer для преобразования пространственной информации в временную эволюцию целевой переменной. Это эффективно решает проблему краткосрочных данных. Авторы внедрили механизмы непрерывного внимания для улучшения точности, объединив пространственную и временную структуры Self-Attention. Важность этого решения заключается в его способности реконструировать фазовое пространство, улучшая краткосрочные прогнозы. Метод STNN показывает потенциал интеграции в MQL5 для торговых стратегий, предлагая уникальные преимущества в алгоритмическом трейдинге.

Читать далее...
👍1🎉1
Цветовые пространства OKhsl и OKhsv обеспечивают перцептивную единообразность, оптимизируя восприятие цвета человеческим глазом. Эти пространства поддерживают создание градиентов с плавными переходами и палитр с равномерной насыщенностью и яркостью. В отличие от HSL, OKhsl и OKhsv улучшили обработку цветовых переходов и восприятие.

Библиотека OK Color Space предлагает функции для конвертации между различными цветовыми пространствами, включая OKhsl и OKhsv. Диапазоны значений для оттенка составляют 0-360, а для насыщенности и яркости - 0-100. Обновления включают исправление ошибки в конвертации серого цвета и новый инструмент UI Palette для работы с цветовыми палитрами. UI Palette позволяет удалять, сохранять и переименовывать палитры, а также добавлять новые цвета для более гибкой работы с цветом.

Читать далее...
1👍1
Алгоритмическая торговля: изучаем объяснимый ИИ и как он может помочь понять работу сложных моделей. Сложность современных алгоритмов и объем данных делает знание внутренней логики критически важным для доверия к прогнозам и получению прибыльных стратегий. В статье описаны методы глобальных и локальных объяснений, выясняющих значимость различных признаков. Глобальные методы, как важность перестановок, предоставляют общее представление о модели, тогда как локальные, такие как LIME, показывают влияние признаков на конкретные прогнозы. Различие в объяснителях "черного ящика" и специализированных для определенных моделей подчеркивает важность выбора подходящего инструмента для анализа.

Читать далее...
👍3👨‍💻2