Статьи об интеграции MetaTrader 5 с помощью языка MQL5

icon

Задачи, которые встают перед трейдером, интересны и, зачастую, требуют нестандартных подходов. Здесь вы найдете статьи, в которых предлагаются самые неожиданные решения для оценки, анализа и обработки ценовых данных и результатов торговли. Подключение баз данных и ICQ, использование OpenCL и  социальных сетей, использование Delphi и C# - всё это затрагивают авторы предлагаемых статей.

Читайте, и вы узнаете, как использовать специализированные математические и нейронные пакеты, а также многое другое. Станьте автором и поделитесь уникальными знаниями с MQL5.community.

Новая статья
последние | лучшие
preview
Моделирование рынка (Часть 19): Первые шаги на SQL (II)

Моделирование рынка (Часть 19): Первые шаги на SQL (II)

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

Моделирование рынка: Первые шаги на SQL в MQL5 (I)

В сегодняшней статье мы начнём изучать использование SQL в коде MQL5. Мы также рассмотрим, как можно создать базу данных. Или, точнее, как создать файл базы данных в SQLite, используя ресурсы или процедуры, включенные в язык MQL5. Мы также увидим, как создать таблицу, а затем как установить связь между таблицами с помощью первичного и внешнего ключей. Всё это, опять же, с использованием MQL5. Мы увидим, как легко создать код, который в будущем можно будет перенести в другие реализации SQL, используя класс, помогающий скрыть созданную реализацию. И, что самое важное, мы увидим, что в разные моменты мы можем столкнуться с риском того, что при использовании SQL что-то пойдет не так. Это происходит так, потому что в коде MQL5 SQL-код всегда будет помещаться внутри строки.
preview
Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти

Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти

Целочисленное дифференцирование заставляет выбирать между стационарностью и памятью: доходности (d = 1) стационарны, но отбрасывают всю информацию об уровне цены; исходные цены (d = 0) сохраняют память, но нарушают предпосылку стационарности, важную для моделей машинного обучения. В статье реализован метод дробного дифференцирования с окном фиксированной ширины (FFD) из главы 5 AFML: get_weights_ffd — итеративная рекурсия с отсечением по порогу, frac_diff_ffd — ограниченное скалярное произведение для каждого бара, fracdiff_optimal — бинарный поиск минимального стационарного d*.
preview
Знакомство с языком MQL5 (Часть 36): Освоение API и функции WebRequest в языке MQL5 (X)

Знакомство с языком MQL5 (Часть 36): Освоение API и функции WebRequest в языке MQL5 (X)

В этой статье рассматриваются основные принципы HMAC-SHA256 и API-подписей в языке MQL5; объясняется, как сообщения и секретные ключи объединяются для безопасной аутентификации запросов. Это закладывает основу для подписывания API-вызовов без раскрытия конфиденциальных данных.
preview
Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти

Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти

Целочисленное дифференцирование заставляет выбирать между стационарностью и памятью: доходности (d = 1) стационарны, но отбрасывают всю информацию об уровне цены; исходные цены (d = 0) сохраняют память, но нарушают предпосылку стационарности, важную для моделей машинного обучения. В статье реализован метод дробного дифференцирования с окном фиксированной ширины (FFD) из главы 5 AFML: get_weights_ffd — итеративная рекурсия с отсечением по порогу, frac_diff_ffd — ограниченное скалярное произведение для каждого бара, fracdiff_optimal — бинарный поиск минимального стационарного d*.
preview
Интеграция MQL5 с пакетами обработки данных (Часть 5): Адаптивное обучение и гибкость

Интеграция MQL5 с пакетами обработки данных (Часть 5): Адаптивное обучение и гибкость

В этой части основное внимание уделяется созданию гибкой, адаптивной торговой модели, обученной на исторических данных XAUUSD. Мы подготовим ее к экспорту в ONNX и потенциальной интеграции в системы реальной торговли.
preview
Моделирование рынка (Часть 17): Сокеты (XI)

Моделирование рынка (Часть 17): Сокеты (XI)

Реализация той части кода, которая будет работать в MetaTrader 5, не представляет сложности. Однако есть несколько моментов, которые нужно учитывать. Это необходимо для того, чтобы вы смогли заставить систему работать. Запомните одну важную вещь: будет запущена не одна программа. В реальности нам придётся запускать три программы одновременно. Важно реализовать и построить каждую из них так, чтобы они могли взаимодействовать и общаться одна с другой, и чтобы каждая из них понимала, что пытается или хочет сделать другая.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 70): Использование паттернов SAR и RVI с сетью экспоненциального ядра

Возможности Мастера MQL5, которые вам нужно знать (Часть 70): Использование паттернов SAR и RVI с сетью экспоненциального ядра

В предыдущей статье мы представили пару индикаторов SAR и RVI. Здесь мы рассмотрим, как их можно расширить с помощью машинного обучения. SAR и RVI представляют собой взаимодополняющую пару, сочетающую в себе тренд и импульс. Наш подход к машинному обучению использует сверточную нейронную сеть (convolution neural network), которая задействует экспоненциальное ядро (Exponential kernel) для определения размеров своих ядер и каналов при настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Моделирование рынка (Часть 21): Первые шаги на SQL (IV)

Моделирование рынка (Часть 21): Первые шаги на SQL (IV)

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

Упрощение работы с базами данных в MQL5 (Часть 1): Введение в базы данных и SQL

Мы рассмотрим, как работать с базами данных в MQL5, используя встроенные функции языка. Мы рассмотрим все аспекты, от создания, вставки, обновления и удаления таблиц до импорта и экспорта данных, и все это с примерами кода. Данный материал служит прочной основой для понимания внутренних механизмов доступа к данным, подготавливая почву для обсуждения ORM (Object-Relational Mapping, объектно-реляционное отображение), где мы создадим его на языке MQL5.
preview
Архитектура машинного обучения для MetaTrader 5 (Часть 7): От разрозненных экспериментов к воспроизводимым результатам

Архитектура машинного обучения для MetaTrader 5 (Часть 7): От разрозненных экспериментов к воспроизводимым результатам

В последней части этой серии мы выходим за рамки отдельных методов машинного обучения и переходим к проблеме “исследовательского хаоса”, с которым сталкиваются многие количественные трейдеры. Эта статья посвящена переходу от разрозненных экспериментов в Jupyter Notebook к продуманному пайплайну промышленного уровня, обеспечивающему воспроизводимость, отслеживаемость и эффективность.
preview
Знакомство с языком MQL5 (Часть 32): Освоение API и функции WebRequest в языке MQL5 (VI)

Знакомство с языком MQL5 (Часть 32): Освоение API и функции WebRequest в языке MQL5 (VI)

В этой статье мы покажем, как визуализировать свечные данные, полученные с помощью функции WebRequest и API, в свечном формате. Мы будем использовать язык MQL5, чтобы считывать свечные данные из CSV-файла и отображать их на графике в виде пользовательских свечей, поскольку индикаторы не могут напрямую использовать функцию WebRequest.
preview
Тестер стратегий для Python и MetaTrader 5 (Часть 02): Работа с барами, тиками и реализация встроенных функций в симуляторе

Тестер стратегий для Python и MetaTrader 5 (Часть 02): Работа с барами, тиками и реализация встроенных функций в симуляторе

В этой статье мы представим функции, аналогичные тем, которые предоставляет модуль Python–MetaTrader 5, предоставляя симулятору привычный интерфейс и собственный механизм внутренней обработки баров и тиков.
preview
Моделирование рынка (Часть 22): Первые шаги на SQL (V)

Моделирование рынка (Часть 22): Первые шаги на SQL (V)

Прежде, чем вы сдадитесь и решите отказаться от изучения SQL, позвольте мне напомнить вам, уважаемые читатели, что здесь мы всё ещё используем только самые базовые элементы. Мы ещё не рассмотрели некоторые возможности SQL. Как только вы их усвоите, вы увидите, что SQL гораздо практичнее, чем кажется. Хотя, скорее всего, мы в конечном итоге изменим направление того, что мы создаем, потому, что процесс создания является динамичным. Мы покажем немного больше о создании разных вещей в SQL, ведь это по настоящему важно и нужно вам. Просто думать, что вы более способны, чем целое сообщество программистов и разработчиков, приведет только к потере времени и возможностей. Не переживайте, потому что дальше будет ещё интереснее.
preview
Моделирование рынка (Часть 24): Первые шаги на SQL (VII)

Моделирование рынка (Часть 24): Первые шаги на SQL (VII)

В предыдущей статье мы завершили необходимое введение в тему SQL. И то, что мы хотели показать и объяснить о SQL, на мой взгляд, мы разъяснили должным образом. Так было сделано для того, чтобы каждый, кто придет посмотреть на строящуюся систему репликации/моделирования, мог хотя бы получить представление о том, что там может происходить. Дело в том, что нет смысла программировать вещи, с которыми SQL справляется идеально.
preview
Архитектура машинного обучения для MetaTrader 5 (Часть 8): Байесовская оптимизация гиперпараметров с Purged Cross-Validation и ранним отсечением испытаний

Архитектура машинного обучения для MetaTrader 5 (Часть 8): Байесовская оптимизация гиперпараметров с Purged Cross-Validation и ранним отсечением испытаний

GridSearchCV и RandomizedSearchCV имеют фундаментальное ограничение в финансовом ML: каждое испытание независимо, поэтому качество поиска не улучшается с ростом вычислительного бюджета. В этой статье Optuna — с использованием Tree-structured Parzen Estimator — интегрируется с кросс-валидацией PurgedKFold, ранней остановкой HyperbandPruner и соглашением о двух типах весов, которое разделяет веса обучения и веса оценки. В результате получается система из пяти компонентов: целевая функция с отсечением на уровне фолдов, слой преобразования/подстановки параметров, совместно оптимизирующий схему взвешивания и гиперпараметры модели, финансово откалиброванное отсечение, возобновляемый оркестратор на базе SQLite и конвертер в формат scikit-learn cv_results_. В статье также проводится четкое разграничение — на основе Тимоти Мастерса — между статистическими целями, где направленный поиск полезен, и финансовыми целями, где он вреден.
preview
Моделирование рынка (Часть 23): Первые шаги на SQL (VI)

Моделирование рынка (Часть 23): Первые шаги на SQL (VI)

В этой статье мы рассмотрим, как выполнить визуализацию и, следовательно, поймем, как структурирована база данных. Это было сделано с помощью анализа внутренней структуры базы данных. Хотя подобные вещи могут показаться излишними, они вполне оправданы, если мы действительно намерены стать администраторами баз данных. Да, есть люди, которые зарабатывают на жизнь, поддерживая и создавая базы данных.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

В продолжение нашей предыдущей статьи, где мы представили пару индикаторов TRIX и процентного диапазона Уильямса, мы рассмотрим, как эту пару индикаторов можно расширить с помощью машинного обучения. TRIX и процентный диапазон Уильямса представляют собой взаимодополняющую пару, отражающую тренд и уровни поддержки/сопротивления. Наш подход на основе машинного обучения использует сверточную нейронную сеть (convolution neural network), в архитектуре которой задействуется косинусное ядро (cosine kernel) при точной настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Знакомство с языком MQL5 (Часть 34): Освоение API и функции WebRequest в языке MQL5 (VIII)

Знакомство с языком MQL5 (Часть 34): Освоение API и функции WebRequest в языке MQL5 (VIII)

В этой статье вы узнаете, как создать панель управления в MetaTrader 5. Мы разберем основы добавления полей ввода, кнопок действий и меток для отображения текста. Используя проектный подход, вы увидите, как настроить панель, в которой пользователи могут вводить сообщения и в итоге отображать ответы API-сервера.
preview
Моделирование рынка: Первые шаги на SQL в MQL5 (V)

Моделирование рынка: Первые шаги на SQL в MQL5 (V)

В предыдущей статье я показал, как следовало действовать для добавления механизма запросов. Это было нужно для того, чтобы внутри кода MQL5 вы могли полноценно использовать SQL и получать результаты при выполнении команды SQL SELECT FROM. Но осталось рассказать последнюю функцию, которую нам необходимо реализовать. Это функция DatabaseReadBind. И, поскольку для правильного понимания требуется чуть более развернутое объяснение, было решено сделать это не в той предыдущей статье, а в сегодняшней. Итак, поскольку тема будет довольно объемной, перейдём сразу к следующему разделу.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 66): Использование паттернов FrAMA и индекса силы с ядром скалярного произведения

Возможности Мастера MQL5, которые вам нужно знать (Часть 66): Использование паттернов FrAMA и индекса силы с ядром скалярного произведения

Индикатор FrAMA и осциллятор индекса силы (Force Index) — инструменты анализа тренда и объема, которые можно использовать в паре при разработке советника. В продолжение нашей предыдущей статьи, в которой мы представили эту пару, рассмотрим применимость к ней машинного обучения. Мы используем сверточную нейронную сеть (convolution neural network), которая применяет ядро скалярного произведения (dot-product kernel) для построения прогнозов на основе входных данных этих индикаторов. Это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)

Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)

Создайте практический мост между MetaTrader 5 и Binance: получайте 30-минутные свечи с помощью WebRequest, извлекайте из JSON значения OHLC и времени и подтверждайте бычий паттерн поглощения, используя только полностью закрытые свечи. Затем соберите строку запроса, вычислите подпись HMAC-SHA256, добавьте X-MBX-APIKEY и отправьте аутентифицированные ордера. Вы получите четкий сквозной рабочий процесс советника – от получения данных до исполнения ордера.
preview
Знакомство с языком MQL5 (Часть 33): Освоение API и функции WebRequest в языке MQL5 (VII)

Знакомство с языком MQL5 (Часть 33): Освоение API и функции WebRequest в языке MQL5 (VII)

В этой статье показано, как интегрировать API Google Generative AI в MetaTrader 5 с помощью языка MQL5. Вы научитесь структурировать API-запросы, обрабатывать ответы сервера, извлекать контент, сгенерированный ИИ, управлять лимитами API и сохранять результаты в текстовый файл для удобного доступа.
preview
Тестер стратегий для Python и MetaTrader 5 (Часть 04): Основы работы тестера

Тестер стратегий для Python и MetaTrader 5 (Часть 04): Основы работы тестера

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

Упрощение работы с базами данных в MQL5 (Часть 2): Создание сущностей с помощью метапрограммирования

Мы изучили расширенное использование #define для метапрограммирования в MQL5, создания сущностей, представляющих таблицы и метаданные столбцов (тип, первичный ключ, автоинкремент, возможность обнуления и т.д.). Мы централизовали эти определения в TickORM.mqh, автоматизировав генерацию классов метаданных и проложив путь для эффективной работы с данными в ORM без необходимости писать SQL вручную.
preview
Знакомство с языком MQL5 (Часть 37): Освоение API и функции WebRequest в языке MQL5 (XI)

Знакомство с языком MQL5 (Часть 37): Освоение API и функции WebRequest в языке MQL5 (XI)

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

Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование

Узнайте, как реализовать мощный пользовательский фреймворк для логирования в MQL5, который выходит за рамки простых операторов Print() за счет поддержки уровней серьезности, множества обработчиков вывода и автоматической ротации файлов — и все это с возможностью настройки «на лету». Интегрируйте синглтон CLogger с ConsoleLogHandler и FileLogHandler для захвата контекстных журналов с метками времени как на вкладке «Эксперты», так и в постоянных файлах. Оптимизируйте отладку и трассировку производительности в ваших советниках с помощью понятных, настраиваемых форматов журналов и централизованного управления.
preview
Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Узнайте, как обнаруживать действия пользователей в MetaTrader 5, отправлять запросы в API искусственного интеллекта, извлекать ответы и реализовывать прокрутку текста на панели.
preview
Нативная реализация RSA-шифрования на MQL5

Нативная реализация RSA-шифрования на MQL5

В MQL5 отсутствует встроенная асимметричная криптография, из-за чего безопасный обмен данными по незащищённым каналам вроде HTTP становится затруднительным. В этой статье представлена чистая реализация RSA на MQL5 с использованием схемы дополнения PKCS#1 v1.5, позволяющая безопасно передавать сеансовые ключи для AES и небольшие блоки данных без внешних библиотек. Такой подход обеспечивает уровень безопасности, похожий на HTTPS, поверх обычного HTTP и, более того, закрывает важный пробел в защищённой коммуникации для приложений MQL5.
preview
Моделирование рынка: Position View (I)

Моделирование рынка: Position View (I)

Контент, который мы будем рассматривать с этого момента, гораздо сложнее с точки зрения теории и концепций. Я постараюсь сделать содержание как можно более простым. Сама программная часть довольно проста и понятна. Но если вы не понимаете стоящую за этим теорию, вы останетесь совершенно без ресурсов для доработки или даже адаптации системы репликации/моделирования под задачи, отличающиеся от тех, что я собираюсь показать. Я не хочу, чтобы вы просто компилировали и использовали код, который я показываю. Я хочу, чтобы вы учились, разбирались и, если возможно, могли создать что-то еще лучше.
preview
Моделирование рынка: Первые шаги на SQL в MQL5 (III)

Моделирование рынка: Первые шаги на SQL в MQL5 (III)

В предыдущей статье мы рассмотрели пример реализации класса на MQL5 для обеспечения базовой поддержки. Его цель заключается именно в том, чтобы позволить хранить SQL-код в отдельном файле скрипта. Таким образом, нам не потребуется писать тот же SQL-код в виде строки внутри кода MQL5. Хотя данное решение функционально, в нём есть некоторые детали, которые мы можем и должны улучшить.
preview
MetaTrader и Google Таблицы через PythonAnywhere: Руководство по безопасному потоку данных

MetaTrader и Google Таблицы через PythonAnywhere: Руководство по безопасному потоку данных

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

Моделирование рынка: Первые шаги на SQL в MQL5 (II)

Хотя многие считают, что мы можем без проблем встраивать SQL-код в другой код, обычно это не так. Причина заключается в том, что SQL-код включается в исполняемый файл в виде строки. И тот факт, что SQL-код внедряется в виде строки, хотя и не вызывает проблем в небольших фрагментах, в итоге это может создать нам немало головной боли.
preview
CRUD-операции в Firebase с использованием MQL

CRUD-операции в Firebase с использованием MQL

В этой статье представлено пошаговое руководство по освоению CRUD-операций (Create, Read, Update, Delete — создание, чтение, обновление и удаление) в Firebase с акцентом на Realtime Database и Firestore. Вы узнаете, как использовать методы Firebase SDK для эффективного управления данными в веб- и мобильных приложениях: от добавления новых записей до запросов, изменения и удаления элементов. Также рассмотрены практические примеры кода и лучшие подходы к структурированию и обработке данных в реальном времени, что помогает разработчикам создавать динамические и масштабируемые приложения на гибкой NoSQL-архитектуре Firebase.
preview
Архитектура машинного обучения для MetaTrader 5 (Часть 16): Вложенная кросс-валидация для несмещённой оценки

Архитектура машинного обучения для MetaTrader 5 (Часть 16): Вложенная кросс-валидация для несмещённой оценки

В статье представлен конвейер вложенной кросс-валидации V-in-V для финансовых данных, который устраняет утечку информации в трех точках принятия решений: подбор гиперпараметров, калибровка и итоговая оценка. Временное разделение на три зоны изолирует внутренний walk-forward поиск с правилом 1-SE от внешней walk-forward или CPCV-оценки, а изотоническая OOF (out-of-fold) калибровка обучается независимо. Итоговый UnifiedValidationCalibrator дает несмещенные оценки на вневыборочных данных и хорошо откалиброванные вероятности для продакшена.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 76): Использование паттернов Awesome Oscillator и каналов конвертов с обучением с учителем

Возможности Мастера MQL5, которые вам нужно знать (Часть 76): Использование паттернов Awesome Oscillator и каналов конвертов с обучением с учителем

В продолжение нашей предыдущей статьи о паре индикаторов Awesome Oscillator и каналов конвертов (Envelope Channels), мы рассмотрим, как эту пару можно улучшить с помощью обучения с учителем. Awesome Oscillator и канал конвертов — это взаимодополняющее сочетание инструментов, позволяющих выявлять тренды и создавать уровни поддержки/сопротивления. Наш подход к обучению с учителем представляет собой сверточную нейронную сеть (CNN), которая использует ядро скалярного произведения (Dot Product Kernel) с механизмом внимания во времени (Cross-Time-Attention) для определения размеров своих ядер и каналов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для сборки советника.
preview
Моделирование рынка: Position View (II)

Моделирование рынка: Position View (II)

В этой статье я покажу как максимально просто и практично использовать индикатор для отслеживания открытых позиций на торговом сервере. Я делаю это именно так, шаг за шагом, чтобы показать, что вам не обязательно переносить всё это в советник. Многие из вас, вероятно, уже привыкли к этому по той или иной причине. На самом деле это ерунда, так как по мере развития данной реализации станет ясно, что вы сможете создавать или реализовать различные типы индикаторов для этой цели.
preview
Изучение стандартной библиотеки MQL5 (часть 1): Знакомство с CTrade, CiMA и CiATR

Изучение стандартной библиотеки MQL5 (часть 1): Знакомство с CTrade, CiMA и CiATR

Стандартная библиотека MQL5 — чрезвычайно полезный инструмент при разработке торговых алгоритмов для MetaTrader 5. В этой серии мы будем учиться создавать с помощью нее эффективные торговые инструменты для MetaTrader 5. Под инструментами подразумеваются собственные советники, индикаторы и другие вспомогательные средства. Сегодня мы разработаем трендового советника с использованием классов CTrade, CiMA и CiATR. Тема будет полезна всем — и начинающим, так и опытным разработчикам. Приятного чтения.
preview
Преодоление проблем доступности в торговых инструментах на MQL5 (Часть II): Включению голосовых функций в советнике с помощью Python-движка синтеза речи

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

Давайте обсудим, как можно сделать наших советников разговорчивыми, используя технологию преобразования текста в речь, при совместном применении Python и MQL5. После прочтения этой статьи вы ознакомитесь с рабочим примером советника, который озвучивает динамическую рыночную информацию. Вы освоите применение TTS (преобразование текста в речь), функции WebRequest, и узнаете, как библиотеки Python интегрируются с языком MQL5 для создания по‑настоящему голосового торгового инструмента.
preview
Моделирование рынка: Position View (III)

Моделирование рынка: Position View (III)

В предыдущих статьях мы упоминали, что иногда нам необходимо задать значение для свойства ZOrder. Но почему? Причина в том, что многие коды, добавляющие объекты на график, просто не используют или, точнее, не определяют значение для этого свойства. Дело в том, что я здесь не для того, чтобы говорить, что должен или не должен делать каждый программист, или как он должен или не должен писать свой код. Я здесь для того, чтобы показать вам, уважаемый читатель, и всем, кто действительно хочет понять внутреннее устройство процессов, что именно происходит за кулисами.