English 中文 Español Deutsch 日本語 Português
preview
От новичка к эксперту: Главное на пути к торговле на MQL5

От новичка к эксперту: Главное на пути к торговле на MQL5

MetaTrader 5Тестер | 22 апреля 2025, 09:41
216 0
Clemence Benjamin
Clemence Benjamin

Основные разделы:

  1. Введение. Краткий обзор моего пути к освоению MQL5
  2. Раскрываем секреты успешного MQL5-трейдера
  3. Внедрение искусственного интеллекта в разработку алгоритмов
  4. Заключение

 

Введение. Краткий обзор моего пути к освоению MQL5

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

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

 

Для кого предназначена эта статья?

  1. Для начинающих — чтобы приступить к работе.
  2. Для разработчиков среднего и продвинутого уровней — для раскрытия нового потенциала.

Я проведу вас по процессу создания работающей программы, адаптированной к вашим потребностям, и вдохновлю приступить к торговле. Цель этой статьи — сделать сообщество MQL5 удобным для пользователей, упростив разработку алгоритмов с использованием новых технологий.

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

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

Расскажу о трех областях, с которыми вы сможете начать свой путь в MQL5 как начинающий или развить свои навыки как опытный разработчик. Вот один совет, который я хочу вам дать: «Влюбитесь в текст; в чтении скрыты драгоценности». Многие упускают возможности, потому что не любят читать. Интернет, особенно сообщество MQL5, предлагает бесчисленные возможности для карьеры, писательского творчества, разработки и фриланса. Я захожу на mql5.com не менее трех раз в день и интегрировал его с идентификатором моего мобильного терминала, который называется MetaQuotes ID, чтобы получать важнейшие уведомления на свое мобильное устройство. Как сказал Уильям Шекспир: «Не все то золото, что блестит». Истинное богатство состоит в чтении текста, который может и не выглядеть столь привлекательно, как изображения, но даже алгоритм состоит из чрезвычайно важно текста.

  •  Секрет 1. Сообщество MQL5
  •  Секрет 2. Платформа MetaTrader 5 для ПК
  •  Секрет 3. Искусственный интеллект

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

 

Раскрываем секреты успешного MQL5-трейдера

Секрет 1. Сообщество MQL5

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

  mql5.com

    • Документация. Комплексный ресурс, предоставляющий подробную информацию о программировании на MQL5, включая функции, классы и рекомендации по разработке.
    • Учебник по алготрейдингу. Собрание книг по алгоритмам, которые помогут вам создавать собственные.
    • Учебник по нейросетям. Специализированные книги, посвященные нейросетям и методам машинного обучения в алгоритмической торговле с помощью MQL5.
    • CodeBase. Репозиторий бесплатных скриптов, индикаторов и советников на MQL5, предоставленных трейдерам сообществом MQL5 для загрузки, использования и модификации.
    • Форум. Интерактивная платформа для обсуждения торговых стратегий, вопросов программирования и обмена опытом и решениями, связанными с разработкой на MQL5.
    • Статьи. Библиотека статей, предлагающая учебные пособия, торговые стратегии, советы по программированию и информацию о различных аспектах алготрейдинга с использованием MQL5.
    • Маркет. Интернет-магазин, где трейдеры могут покупать и продавать торговые приложения на MQL5, включая советники, индикаторы и скрипты.
    • Сигналы. Сервис, позволяющий трейдерам подписываться на торговые сигналы, предлагаемые опытными трейдерами, позволяя автоматически копировать их сделки.
    • VPS. Сервис Virtual Private Server, предоставляемый платформой MetaTrader и позволяющий трейдерам запускать свои торговые роботы и сигналы в режиме 24/7 без перебоев.
    • Фриланс. Платформа, где трейдеры могут нанимать разработчиков-фрилансеров для создания пользовательских торговых приложений, индикаторов или скриптов на языке MQL5.
    • Котировки. Котировки финансовых инструментов в режиме реального времени, предоставляющие трейдерам актуальные рыночные цены, необходимые для принятия обоснованных торговых решений.
    • Календарь. Экономический календарь, где перечислены значимые экономические событи и новости, которые могут повлиять на финансовые рынки и торговые стратегии.
    • Вебтерминал. Онлайн-версия торговой платформы MetaTrader, позволяющая трейдерам получать доступ к своим счетам и торговать непосредственно из браузера без установки какого-либо программного обеспечения.
    • Поле поиска. Инструмент, позволяющий пользователям быстро находить определенные данные, ресурсы или контент в сообществе MQL5 и его обширной библиотеке документации, статей и обсуждений на форуме.

 

Секрет 2. Платформа MetaTrader 5 для ПК

Эта платформа — еще один ценный ресурс, важный для освоения алгоритмической торговли. Он содержит множество ресурсов, которые встречаются в сообществе MQL5, и служит отправной точкой при написании алгоритмов. При разработке стратегии я начинаю с просмотра графиков, чтобы определить повторяющиеся закономерности на исторических рыночных данных, а затем разрабатываю логику на бумаге, прежде чем программировать алгоритм. В комплект поставки MetaTrader 5 входят редактор MetaQuotes Language Editor и тестер стратегий, а также другие средства, которые делают его прекрасным набором инструментов для разработки и обучения.

Позвольте кратко привести один пример:

Открываю график, чтобы проанализировать происходящее. Вот изображение GBP/USD до использования каких-либо индикаторов. Затем добавляю на график EMA 50 и EMA 21, чтобы увидеть, как они взаимодействуют с изменениями цен. Наблюдаю потенциальные пересечения и отмечаю их прямоугольниками. На основе этого изображения я могу приступить к созданию стратегии для автоматизации.

GBP/USD – Британский фунт/Доллар США 


Настройка MA21



Настройка MA 50


Стратегия пересечения GBPUSD и MA


Редактор MetaQuotes Language Editor (MetaEditor):

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

Обучение на практике. В начале 20 века теоретик образования Джон Дьюи подчеркивал важность «обучения на практике». Начните с создания простых проектов с помощью этих шаблонов. Изменяйте их и экспериментируйте с ними, чтобы почувствовать, как взаимодействуют разные элементы. Такой практический подход упрочит ваши фундаментальные знания и приведет их в соответствие с философией Дьюи, согласно которой активное участие в обучении улучшает понимание и запоминание.

 

Секрет 3. Искусственный интеллект

Каждый день изобретают множество моделей ИИ, но поговорим кратко о ChatGPT. Это диалоговая модель ИИ, призванная помогать пользователем, предоставляя им ответы на вопросы, давая вдохновение и способствуя повышению производительности. Ее можно использовать бесплатно и с его помощью писать, обучаться, проводить мозговые штурмы и многое другое. ChatGPT был создан компанией OpenAI, основанной в 2015 г.

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

 

Внедрение искусственного интеллекта в разработку алгоритмов

Здесь я расскажу, как совместная работа инструментов может упростить ваше обучение и устранить ограничения, вызванные незнанием об этих ресурсах. Чтобы начать работу с ChatGPT, разделю деятельность на два вида:

  1. Понимание шаблонов MetaEditor с помощью ChatGPT
  2. Разработка с помощью ИИ скрипта под названием My First MQL5 Program («Моя первая программа на MQL5»).

 

Понимание шаблонов MetaEditor с помощью ChatGPT

В программе MetaTrader 5 для ПК перейдите в Инструменты и выберите MetaQuotes Language Editor или нажмите F4 на клавиатуре. Откроется новое окно MetaEditor. Перейдите в Файл и выберите Новый. Ниже представлено анимированное изображение, демонстрирующее процесс:

MetaEditor: MyFirstIndicator

Я назвал файл MyFirstIndicator, но это необязательно; можете назвать его как хотите. Сделав это, вы получите шаблон кода, показанный во фрагменте ниже.

//+------------------------------------------------------------------+
//|                                             MyFirstIndicator.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Будучи новичком, вы можете задать себе вопрос: «Что это вообще такое?» Что ж, позвольте показать, как с легкостью понять все в рамках нашей цели по раскрытию секрета.

  1. Перейдите в chat.openai.com и начните чат.
  2. Скопируйте программный код из MetaEditor.
  3. Введите запрос в ChatGPT: «Объясните этот код MQL5 по частям:» (вставьте скопированный код) и нажмите «Отправить».

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

В ответе ChatGPT разделил программу на фрагменты и объяснил ее более занимательно, что упростило понимание шаблона. Вот программа, где пояснения ChatGPT выделены курсивом:

//+------------------------------------------------------------------+
//|                                             MyFirstIndicator.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

  • Этот раздел представляет собой комментарий-заголовок, включающий в себя имя файла, информацию об авторских правах и ссылку на сайт MetaQuotes. Для кода на MQL5 характерно предоставление контекста и атрибуции.

#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window

Эти директивы #property предоставляют метаданные об индикаторе:

  • #property copyright указывает владельца авторских прав и год.
  • #property link дает ссылку на сайт (где обычно можно найти больше информации).
  • #property version указывает версию индикатора.
  • #property indicator_chart_window указывает, что индикатор будет нарисован в главном (а не отдельном) окне графика.
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }

В этом разделе определяется функция OnInit, вызываемая, когда происходит инициализация индикатора:

  • OnInit() отвечает за настройку индикатора, например за выделение буферов и инициализацию переменных.
  • return'(INIT_SUCCEEDED);' указывает, что инициализация прошла успешно. INIT_SUCCEEDED — предопределенная константа в MQL5.
  • В настоящее время функция не выполняет каких-либо действий, поскольку основное тело между комментариями (//---) пустое.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

В этом разделе определяется функция OnCalculate, вызываемая для расчета значений индикатора на каждом тике:

  • OnCalculate: Именно здесь реализована основная логика индикатора. Она обрабатывает ценовые данные и вычисляет значения индикатора.
  • Rates_total: Общее количество баров на графике.
  • Prev_calculated: Количество баров, рассчитанное во время предыдущего вызова.
  • Time[], open[], high[], low[], close[], tick_volume[], volume[], spread[]: Массивы, содержащие данные о времени, цене открытия, максимуме, минимуме, ценах закрытия и спреде для каждого бара.

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


Разработка с помощью ИИ скрипта под названием My First MQL5 Program («Моя первая программа на MQL5»).

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

Создать скрипт


Задать имя скрипта

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

//+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   
  }
//+------------------------------------------------------------------+
Ниже приведен фрагмент кода, предложенный ChatGPT:
Create an MQL5 script from this template that tells day candle status on screen: //+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   
  }
//+------------------------------------------------------------------+

 Ответ ChatGPT:

//+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// Input parameters for customizing the text display
input color TextColor = clrRed;               // Color of the text
input int FontSize = 20;                      // Font size
input ENUM_ANCHOR_POINT AnchorCorner = ANCHOR_LEFT_UPPER; // Text anchor point
input int X_Offset = 10;                      // X offset
input int Y_Offset = 10;                      // Y offset

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   // Get the opening price of the current day
   double openPrice = iOpen(_Symbol, PERIOD_D1, 0);
   
   // Get the closing price of the current day
   double closePrice = iClose(_Symbol, PERIOD_D1, 0);
   
   // Determine the candle status
   string candleStatus = (closePrice >= openPrice) ? "Bullish" : "Bearish";
   
   // Display the candle status on the screen
   DisplayCandleStatus(candleStatus);
  }

//+------------------------------------------------------------------+
//| Function to display the candle status on the screen              |
//+------------------------------------------------------------------+
void DisplayCandleStatus(string status)
  {
   string objName = "CandleStatusText";
   
   if(ObjectFind(0, objName) < 0)
     {
      // Create the text object if it doesn't exist
      ObjectCreate(0, objName, OBJ_LABEL, 0, 0, 0);
      ObjectSetInteger(0, objName, OBJPROP_CORNER, AnchorCorner);
      ObjectSetInteger(0, objName, OBJPROP_XDISTANCE, X_Offset);
      ObjectSetInteger(0, objName, OBJPROP_YDISTANCE, Y_Offset);
      ObjectSetInteger(0, objName, OBJPROP_FONTSIZE, FontSize);
      ObjectSetInteger(0, objName, OBJPROP_COLOR, TextColor);
     }
   
   // Update the text
   ObjectSetString(0, objName, OBJPROP_TEXT, "Day Candle: " + status);
  }
//+------------------------------------------------------------------+


Тестирование

Вот процедура, которой я следовал при тестировании.

  • Скопируйте код. После получения от ChatGPT модифицированного скрипта скопируйте код.
  • Откройте MetaEditor. Запустите MetaEditor на своем компьютере.
  • Создайте новый скрипт:
    • Перейдите в Файл > Новый > Скрипт.
    • Введите имя своего скрипта, затем нажмите «Далее» и «Готово».
  • Вставьте код. Замените автоматически сгенерированный код в новом файле скрипта на модифицированный код, полученный от ChatGPT.
  • Скомпилируйте скрипт:
    • Нажмите кнопку «Компилировать» на панели инструментов MetaEditor.
    • Если нет ошибок, скрипт будет скомпилирован успешно.
  • Проверьте вывод:
    • На вкладке «Навигатор» для обнаружения скомпилированного файла скрипта проверьте раздел «Скрипты».
    • Перетащите скрипт на график в MetaTrader 5, чтобы увидеть результаты.

  • Проверьте результаты. Следите за графиком, чтобы убедиться, корректно ли скрипт определяет свечу D1 как бычью или медвежью.

Компиляция в MetaEditor


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

Теперь скрипт добавлен в папку со скриптами Boom 500 Index D1



Заключение

Освоение MQL5 — это путь, объединяющий обучение, экспериментирование и использование таких передовых инструментов, как ИИ. Овладев основами, взаимодействуя с ресурсами сообщества, преодолевая динамические трудности с помощью ИИ, оптимизируя стратегии и применяя автоматизацию, вы можете полностью раскрыть свой трейдерский потенциал. Эти три секрета — только начало; непрерывное обучение и адаптация позволят оставаться в авангарде динамичного мира алгоритмического трейдинга. Воспользуйтесь предлагаемыми языком MQL5 возможностями и наблюдайте взлет вашей торговли.

С помощью ИИ можно сделать многое, ограничения лишь в вашем сознании и умении донести с его помощью свои идеи. Не все созданные ИИ программы будут постоянно выполняться эффективно; иногда придется приложить дополнительные усилия для отладки и повторного изучения документации сообщества и книг об MQL5 для более глубокого исследования. Можно поделиться еще многим, но давайте оставим это до следующего раза. По крайней мере, теперь у вас есть путеводитель. Удачных дальнейших разработок!
Название файла Описание
'MyFirstIndicator.mq5' Шаблон индикатора MQL5.
MyFirstMQL5 Program.mq5 Алгоритм скрипта.
MyFirstMQL5 Program.ex5 Скомпилируйте готовую к использованию программу-скрипт.


Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/15320

Прикрепленные файлы |
Анализ настроений в Twitter с помощью сокетов Анализ настроений в Twitter с помощью сокетов
Этот инновационный торговый бот интегрирует платформу MetaTrader 5 с языком Python в целях использования анализа настроений в социальных сетях в режиме реального времени для автоматизированного принятия торговых решений. Путем анализа настроений в Twitter, связанных с конкретными финансовыми инструментами, бот преобразует тенденции социальных сетей в действенные торговые сигналы. Он использует архитектуру «клиент-сервер» с сокетной связью, обеспечивая бесперебойное взаимодействие между торговыми возможностями MetaTrader 5 и вычислительной мощностью Python. Система демонстрирует потенциал объединения финансовой математики с обработкой текстов на естественном языке, предлагая передовой подход к алгоритмической торговле, использующей альтернативные источники данных. Бот не только демонстрирует серьезные перспективы, но и указывает на области для дальнейшего совершенствования, включая более продвинутые методы анализа настроений и улучшенные стратегии управления рисками.
От начального до среднего уровня: Массив (II) От начального до среднего уровня: Массив (II)
В этой статье мы рассмотрим, что такое динамический массив и массив статический. И есть ли разница между использованием одного или другого. Или они всегда одинаковы? Когда следует использовать один, а когда другой? А как насчет константных массивов? Для чего они существуют, и какому риску я подвергаюсь, если не инициализирую все значения в массиве? Предположим, что они будут равны нулю.
Анализ нескольких символов с помощью Python и MQL5 (Часть I): Производители интегральных схем NASDAQ Анализ нескольких символов с помощью Python и MQL5 (Часть I): Производители интегральных схем NASDAQ
В статье мы рассмотрим, как использовать ИИ для оптимизации размера позиции и количества ордеров, чтобы максимизировать доходность портфеля. Мы покажем, как алгоритмически определить оптимальный портфель и адаптировать его к вашим ожиданиям по доходности или уровню устойчивости к риску. Мы используем библиотеку SciPy и язык MQL5 для создания оптимального и диверсифицированного портфеля, используя все имеющиеся у нас данные.
Критерии тренда. Окончание Критерии тренда. Окончание
В этой статье мы рассмотрим особенности применения некоторых критериев тренда на практике. А также сделаем попытку разработать несколько новых критериев. Основное внимание будет уделено эффективности применения этих критериев для анализа рыночных данных и трейдинга.