Как начать работу с Metatrader 5 - страница 145

 

Period Converter Mod - скрипт для MetaTrader 5

Period Converter Mod - скрипт для MetaTrader 5

Сервис создает пользовательский символ с нестандартным таймфреймом.
Period Converter Mod
Period Converter Mod
  • 2025.07.13
  • www.mql5.com
An analogue of Period Converter in MT4
 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Как начать работать с МТ5, краткое содержание!

Сергей Голубев, 2025.08.28 08:49

Начало работы с MQL5 Algo Forge

Начало работы с MQL5 Algo Forge

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

MQL5 Algo Forge построен на базе Git, современной системы контроля версий. Она предоставляет каждому разработчику мощный набор инструментов для отслеживания истории проектов, создания ответвлений, экспериментов и командной работы. Но как все это работает? В этой статье мы расскажем, как начать работу с MQL5 Algo Forge.


 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Новая платформа MetaTrader 5 Build 5260: Улучшения в Algo Forge, расширенная поддержка OpenBLAS и новые правила наследования в MQL5

MetaQuotes, 2025.09.04 15:56

В пятницу, 5 сентября 2025 года, выйдет обновленная версия платформы MetaTrader 5.

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

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

Новая версия платформы MetaTrader 5 Build 5260: Улучшения в Algo Forge, расширенная поддержка OpenBLAS и новые правила наследования в MQL5


Мы также улучшили работу с файлами в проектах Algo Forge, ускорив вычисление хэшей и устранив ложные обнаружения модификаций файлов.

На сайте сервиса опубликована исчерпывающая документация по MQL5 Algo Forge. Она наглядно демонстрирует все возможности и преимущества использования системы Git для алгоритмических трейдеров: как изучать проекты, следить за интересными публикациями, сотрудничать и клонировать репозитории.


Клиентский терминал MetaTrader 5

  1. Терминал: Исправлено отображение настроек маржи в спецификациях торговых символов. Ранее при использовании плавающего кредитного плеча (например, рассчитываемого на основе объема позиции на счете) параметры маржи в спецификациях контрактов могли отображаться некорректно.
  2. Терминал: Исправлена сортировка книги ордеров для символов с разрешенными отрицательными ценами. Теперь ордера с положительными, отрицательными и нулевыми ценами отображаются корректно и в правильном порядке.
  3. Терминал: В руководстве пользователя терминала появился новый раздел "Как тестер загружает исторические данные". В нем кратко изложены ключевые моменты, необходимые для понимания того, как тестер стратегий работает с историей торговли. Для обеспечения стабильности расчетов тестер всегда загружает "буфер истории перед стартом":
    • D1 и ниже - с начала предыдущего календарного года. Это обеспечивает как минимум 1 год истории. Пример: если дата начала теста 01.03.2023, терминал загрузит в него данные с 01.01.2022. Это равно 14 месяцам до начала теста.
    • W1 - не менее 100 недельных баров (~2 года).
    • MN1 - не менее 100 месячных баров (~8 лет).

    Если имеющейся истории недостаточно, тестер автоматически сдвигает фактическую дату начала тестирования на ближайшую точку, удовлетворяющую требованиям.

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

    start time changed to 2024.03.15 00:00 to provide data at beginning
  4. MQL5: Добавлены пять новых методов OpenBLAS в раздел Matrix Balance, расширяющие функциональность для квадратных матриц. Новый набор функций обеспечивает:
    • Балансировку матрицы для повышения точности вычислений собственных значений.
    • Обратные преобразования собственных векторов.
    • Редукция к форме Гессенберга и разложение Шура, включая генерацию ортогональных матриц.

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

    Методы основаны на алгоритмах LAPACK (GEBAL, GEBAK, GEHRD, ORGHR, HSEQR), что обеспечивает высокую производительность и надежность:

    .
    • MatrixBalance: Балансирует общую вещественную или комплексную матрицу путем перестановки строк и столбцов и применения диагональных преобразований подобия. Балансировка может уменьшить 1-норму матрицы и повысить точность вычисленных собственных значений и/или собственных векторов (функция LAPACK GEBAL).
    • EigenVectorsBackward: Формирует правые или левые собственные векторы вещественной или комплексной матрицы общего вида путем обратного преобразования по вычисленным собственным векторам сбалансированной матрицы (LAPACK-функция GEBAK).
    • ReduceToHessenbergBalanced: Приводит вещественную или комплексную общую сбалансированную матрицу к форме верхнего Гессенберга с помощью ортогонального преобразования подобия (LAPACK-функция GEHRD).
    • ReflectHessenbergBalancedToQ: генерирует ортогональную матрицу Q, которая определяется как произведение элементарных отражателей порядка n, полученных в результате приведения к форме Гессенберга (LAPACK-функция ORGHR).
    • EigenHessenbergBalancedSchurQ: Вычисляет собственные значения матрицы Гессенберга и матриц T и Z из разложения Шура; опционально вычисляет факторизацию Шура входной матрицы, приведенной к форме Гессенберга (LAPACK-функция HSEQR).


  5. MQL5: Добавлены два новых метода в раздел " Собственные значения". Обе функции эффективно вычисляют собственные векторы после разложения Шура, дополняя полный набор инструментов линейной алгебры в MQL5:

    • EigenVectorsTriangularZ: Вычисляет собственные векторы вещественной верхней квазитреугольной или комплексной верхней треугольной матрицы (форма Шура). Использует разложение A = Q - T - Qᴴ (LAPACK-функция TREVC). Обеспечивает высокую точность.
    • EigenVectorsTriangularZBlocked: Блочная версия для вычисления собственных векторов вещественной верхней квазитреугольной или комплексной верхней треугольной матрицы (LAPACK-функция TREVC3). Быстрее, но не так точно.


  6. MQL5: Внесено важное изменение в наследование с помощью нового правила сокрытия методов

    Раньше, если в производном классе или структуре определялся метод с тем же именем, что и в базовом классе, происходила перегрузка: все версии (и родительская, и дочерняя) были доступны в производном классе. Теперь методы с тем же именем в производном классе скрывают методы базового класса(сокрытие методов).

    Чтобы вызвать скрытый метод базового класса, необходимо явно указать его область видимости при вызове:
    class Base
      {
    public: 
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");    // вызов Derived::Print(string)
       d.Print(10);        // ВНИМАНИЕ! Вызов Derived::Print(string), так как Base::Print скрыт (недоступен)
       d.Base::Print(10);  // явный вызов скрытого родительского метода
      }
    Некоторое время компилятор MQL5 выдавал предупреждение, если скрытый базовый метод лучше подходит по параметрам вызова, чем доступный производный метод. Пример для приведенного выше кода d.Print(10):
    call resolves to 'void Derived::Print(string)' instead of 'void Base::Print(int)' due to new rules of method hiding
       see declaration of function 'Derived::Print'
       see declaration of function 'Base::Print'
    implicit conversion from 'number' to 'string'

  7. MQL5: Добавлен оператор using для восстановления перегрузок методов базового класса.

    Для управления новым поведением в MQL5 появился оператор 'using'. Он позволяет "вытащить" все перегрузки метода из базового типа в область видимости класса или структуры:
    .
    class Base
      {
    protected:
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
       using Base::Print;  // возврат перегрузок печати из Base
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");   // Derived::Print(string)
       d.Print(42);       // Base::Print(int)
       d.Print(3.14);     // Base::Print(double)
      }
    Если убрать 'using Base::Print;', то вызовы d.Print(42) и d.Print(3.14) будут недоступны, останется только Derived::Print(string).

    Кроме того, в этом примере видно, что защищенные методы из базового класса становятся доступными в производном классе (их видимость меняется с protected на public).

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

  8. MetaEditor: Ускоренное вычисление хэшей SHA-1 для операций Git в Algo Forge. Прирост производительности превышает 40% для массовых операций.
  9. MetaEditor: Исправлена проверка модификации файлов для Git-операций. Если меняется только время модификации, а содержимое файла остается неизменным, файл больше не считается измененным. Это устраняет ложные обнаружения и предотвращает конфликты с удаленными репозиториями.
  10. Algo Forge: Опубликовано руководство пользователя MQL5 Algo Forge. В нем раскрываются все ключевые преимущества Git без излишней сложности:
    • надежное хранение истории версий и ветвлений,
    • быстрое проведение экспериментов и безопасное слияние изменений,
    • создание собственного репозитория или форк проектов других разработчиков в один клик,
    • прозрачное командное сотрудничество с отслеживанием вкладов,
    • каталог открытых проектов с возможностью учиться у других.


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

    Клонирование проекта

    В MetaEditor, используя ту же учетную запись MQL5, выполните команду Refresh в Навигаторе. Ваш форк появится в папке Shared Projects. Загрузите его из Algo Forge с помощью Git Clone. Вы получите не только файлы проекта, но и его полную историю коммитов и все ветки. Это означает, что вы можете продолжать работу над форком, имея при этом всю историю клонированного проекта.

    Команда Git Clone в Algo Forge

  11. Добавлен перевод интерфейса терминала на ирландский язык.
  12. Обновлены переводы пользовательского интерфейса.


Веб-терминал

  1. Исправлено отображение торговых и котировочных сессий в спецификациях символов.
  2. Исправлено отображение настроек маржи в спецификациях символов.
  3. Исправлено отображение торговых и котировочных сессий в спецификациях символов.
  4. Добавлена поддержка типа счета Contest. Такие счета отображаются синим цветом, а демо-счета - зеленым.
  5. Исправлена точность расчета маржи с плавающим плечом при определенных условиях.
  6. Исправлена проблема, когда при открытии нового счета кнопка "Далее" иногда не переходила на следующий шаг.
  7. Исправлена проблема, при которой не удавалось разместить лимитный ордер между ценами Bid и Ask для исполнения на бирже.
  8. Исправлено отображение цен исполнения ордеров. После отправки ордера в окне отображаются результаты его исполнения: успешная торговая операция или причина, по которой ордер не был исполнен. В некоторых случаях цена исполнения некорректно отображалась как "0".
  9. Исправлена проблема, при которой не отображалась кнопка быстрого закрытия позиции.

    Кнопка закрытия положения

  10. Исправлено отображение валют торговых счетов в окне выбора счета.


Обновление будет доступно через систему Live Update.


 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaEditor, Open AI и ChatGPT

Сергей Голубев, 2025.09.11 05:52

Переезд на MQL5 Algo Forge (часть 1): Создание основного репозитория

Переход на MQL5 Algo Forge (часть 1): Создание основного репозитория

На момент написания этой статьи новый репозиторий уже доступен для использования, но интеграция MetaEditor еще не завершена. Таким образом, пока MetaEditor остается основной средой разработки, разработчики по-прежнему ограничены MQL Storage на базе SVN.


 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaEditor, Open AI и ChatGPT

Сергей Голубев, 2025.09.12 05:08

Переход на MQL5 Algo Forge (часть 2): Работа с несколькими репозиториями

Переход на MQL5 Algo Forge (часть 2): Работа с несколькими репозиториями

В первой статье мы начали переход от встроенного в MetaEditor хранилища MQL5 на базе SVN к более гибкому и современному решению на базе системы контроля версий Git: MQL5 Algo Forge. Основной причиной этого шага стала необходимость полноценно использовать ветки репозиториев при работе над несколькими проектами или над разными функциональными возможностями в рамках одного проекта.

 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Покупка или продажа всех 7 пар

Сергей Голубев, 2025.09.16 06:19

Разработка мультивалютного советника (часть 21): Подготовка к важному эксперименту и оптимизация кода

Разработка мультивалютного эксперта (часть 21): Подготовка к важному эксперименту и оптимизация кода

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

 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaEditor, Open AI и ChatGPT

Сергей Голубев, 2025.09.24 03:00

Переход на MQL5 Algo Forge (часть 3): Использование внешних репозиториев в собственных проектах

Переход на MQL5 Algo Forge (часть 3): Использование внешних репозиториев в собственных проектах

Во второй части нашего перехода на MQL5 Algo Forge мы сосредоточились на решении одной из важных задач - работе с несколькими репозиториями. Используя комбинацию библиотечного проекта Adwizard и эксперта Simple Candles, мы столкнулись и успешно решили проблемы, связанные в основном с путями включения файлов и объединением веток. Мы также старались использовать инструменты MetaEditor (где это было возможно) на протяжении всего рабочего процесса, от создания отдельной ветки для исправлений до их объединения через Pull Request. Однако там, где функционала MetaEditor было недостаточно, мы переходили на веб-интерфейс MQL5 Algo Forge, внешний Git-клиент в Visual Studio Code или команды консоли Git. Это наглядно продемонстрировало, как даже при индивидуальной разработке можно применять лучшие практики Git для поддержания порядка и четкой истории изменений в проекте.

В этой статье мы наконец-то перейдем к этой перспективной, но более сложной задаче: как практически подключать и использовать библиотеки из сторонних репозиториев в MQL5 Algo Forge. И не "когда-нибудь в будущем", а прямо сейчас, не дожидаясь дальнейшего развития репозиторных инструментов MetaEditor.

 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaEditor, Open AI и ChatGPT

Сергей Голубев, 2025.10.11 07:09

Переход на MQL5 Algo Forge (часть 4): Работа с версиями и релизами

Переход на MQL5 Algo Forge (часть 4): Работа с версиями и релизами

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