
От новичка к эксперту: Главное на пути к торговле на MQL5
Основные разделы:
Введение. Краткий обзор моего пути к освоению MQL5
Когда я присоединился к сообществу MQL5 в 2019 г., я был новичком и обладал лишь навыками ручной торговли на телефоне и ограниченными знаниями в области алготрейдинга несмотря на серьезную подготовку в области информатики. Как жаль, что я не освоил принципы алгоритмической торговли раньше. Поначалу я отмахнулся от них и продолжал торговать вручную. Однако спустя три года, работая техником-электронщиком, я стал пытаться продолжить торговлю невзирая на сложность основной деятельности. Это желание побудило меня к изучению алготрейдинга для разработки систем, которые автоматизировали бы мою торговлю или, по меньшей мере, давали бы действенные сигналы.
Возвращение в сообщество MQL5 было похоже на обретение источника возможностей. Размещенные там статьи мотивировали меня читать больше, и каждая обогатила меня ценными навыками. Многие статьи знакомят читателей с проектами алгоритмов, переходя от базовых к сложным этапам. За последние два года я отточил навыки работы с MQL5, работая с различными индивидуальными проектами. Обучение ускорилось благодаря стремительному совершенствованию технологий и ресурсов. Рекомендую внимательно прочесть эту статью, чтобы не упустить очень важную информацию.
Для кого предназначена эта статья?
- Для начинающих — чтобы приступить к работе.
- Для разработчиков среднего и продвинутого уровней — для раскрытия нового потенциала.
Я проведу вас по процессу создания работающей программы, адаптированной к вашим потребностям, и вдохновлю приступить к торговле. Цель этой статьи — сделать сообщество MQL5 удобным для пользователей, упростив разработку алгоритмов с использованием новых технологий.
Среда алготрейдинга стала гораздо удобнее по сравнению с тем, какой она была несколько лет назад, благодаря доступным образовательным ресурсам. Вот некоторые вопросы, направлявшие меня. Надеюсь, они вдохновят и вас:
- Как начинающим эффективно изучить и освоить основы MQL5?
- Какие ресурсы доступны изучающим MQL5 для быстрого преодоления конкретных трудностей при программировании?
- Как трейдерам изобретать, оптимизировать и автоматизировать новые стратегии с помощью MQL5?
Расскажу о трех областях, с которыми вы сможете начать свой путь в MQL5 как начинающий или развить свои навыки как опытный разработчик. Вот один совет, который я хочу вам дать: «Влюбитесь в текст; в чтении скрыты драгоценности». Многие упускают возможности, потому что не любят читать. Интернет, особенно сообщество MQL5, предлагает бесчисленные возможности для карьеры, писательского творчества, разработки и фриланса. Я захожу на mql5.com не менее трех раз в день и интегрировал его с идентификатором моего мобильного терминала, который называется MetaQuotes ID, чтобы получать важнейшие уведомления на свое мобильное устройство. Как сказал Уильям Шекспир: «Не все то золото, что блестит». Истинное богатство состоит в чтении текста, который может и не выглядеть столь привлекательно, как изображения, но даже алгоритм состоит из чрезвычайно важно текста.
- Секрет 1. Сообщество MQL5
- Секрет 2. Платформа MetaTrader 5 для ПК
- Секрет 3. Искусственный интеллект
Эти три элемента можно использовать все вместе, чтобы стать лучшим разработчиком алгоритмов на MQL5. Хотя цель этой статьи — мотивировать вас начать, я постараюсь также разработать базовую программу для использования этих трех секретов.
Раскрываем секреты успешного MQL5-трейдера
Секрет 1. Сообщество MQL5
MQL5 — комплексный ресурс по всему, что связано с алгоритмической торговлей. В нем содержится все необходимое для начала работы или дальнейшего развития себя как трейдера. Вот несколько ключевых компонентов сообщества MQL5, необходимых разработчикам:
- Документация. Комплексный ресурс, предоставляющий подробную информацию о программировании на 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, чтобы увидеть, как они взаимодействуют с изменениями цен. Наблюдаю потенциальные пересечения и отмечаю их прямоугольниками. На основе этого изображения я могу приступить к созданию стратегии для автоматизации.
Редактор MetaQuotes Language Editor (MetaEditor):
Шаблоны: в комплект поставки MetaEditor входят готовые шаблоны скриптов, советников и индикаторов, обеспечивающие надежную отправную точку для проектов и помогающие пользователям понять структуру и ключевые компоненты программ на MQL5.
Обучение на практике. В начале 20 века теоретик образования Джон Дьюи подчеркивал важность «обучения на практике». Начните с создания простых проектов с помощью этих шаблонов. Изменяйте их и экспериментируйте с ними, чтобы почувствовать, как взаимодействуют разные элементы. Такой практический подход упрочит ваши фундаментальные знания и приведет их в соответствие с философией Дьюи, согласно которой активное участие в обучении улучшает понимание и запоминание.
Секрет 3. Искусственный интеллект
Каждый день изобретают множество моделей ИИ, но поговорим кратко о ChatGPT. Это диалоговая модель ИИ, призванная помогать пользователем, предоставляя им ответы на вопросы, давая вдохновение и способствуя повышению производительности. Ее можно использовать бесплатно и с его помощью писать, обучаться, проводить мозговые штурмы и многое другое. ChatGPT был создан компанией OpenAI, основанной в 2015 г.
Такие ИИ-модели, как ChatGPT, обучаются на огромных объемах данных, включая языки программирования и документацию. Процесс обучения включает анализ шаблонов, понимание синтаксиса и изучение передового опыта на многочисленных примерах кода на разных языках. В результате ChatGPT может предложить экспертное руководство, помогая понимать сложные концепции программирования и эффективно решать задачи по созданию кода.
Внедрение искусственного интеллекта в разработку алгоритмов
Здесь я расскажу, как совместная работа инструментов может упростить ваше обучение и устранить ограничения, вызванные незнанием об этих ресурсах. Чтобы начать работу с ChatGPT, разделю деятельность на два вида:
- Понимание шаблонов MetaEditor с помощью ChatGPT
- Разработка с помощью ИИ скрипта под названием My First MQL5 Program («Моя первая программа на MQL5»).
Понимание шаблонов MetaEditor с помощью ChatGPT
В программе MetaTrader 5 для ПК перейдите в Инструменты и выберите MetaQuotes Language Editor или нажмите F4 на клавиатуре. Откроется новое окно MetaEditor. Перейдите в Файл и выберите Новый. Ниже представлено анимированное изображение, демонстрирующее процесс:
Я назвал файл 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); } //+------------------------------------------------------------------+
Будучи новичком, вы можете задать себе вопрос: «Что это вообще такое?» Что ж, позвольте показать, как с легкостью понять все в рамках нашей цели по раскрытию секрета.
- Перейдите в chat.openai.com и начните чат.
- Скопируйте программный код из MetaEditor.
- Введите запрос в 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 как бычью или медвежью.
Программа успешно скомпилирована без дальнейшего редактирования. Скрипт подтвердил, что свеча D1 является бычьей.
Заключение
Освоение MQL5 — это путь, объединяющий обучение, экспериментирование и использование таких передовых инструментов, как ИИ. Овладев основами, взаимодействуя с ресурсами сообщества, преодолевая динамические трудности с помощью ИИ, оптимизируя стратегии и применяя автоматизацию, вы можете полностью раскрыть свой трейдерский потенциал. Эти три секрета — только начало; непрерывное обучение и адаптация позволят оставаться в авангарде динамичного мира алгоритмического трейдинга. Воспользуйтесь предлагаемыми языком MQL5 возможностями и наблюдайте взлет вашей торговли.
С помощью ИИ можно сделать многое, ограничения лишь в вашем сознании и умении донести с его помощью свои идеи. Не все созданные ИИ программы будут постоянно выполняться эффективно; иногда придется приложить дополнительные усилия для отладки и повторного изучения документации сообщества и книг об MQL5 для более глубокого исследования. Можно поделиться еще многим, но давайте оставим это до следующего раза. По крайней мере, теперь у вас есть путеводитель. Удачных дальнейших разработок!Название файла | Описание |
---|---|
'MyFirstIndicator.mq5' | Шаблон индикатора MQL5. |
MyFirstMQL5 Program.mq5 | Алгоритм скрипта. |
MyFirstMQL5 Program.ex5 | Скомпилируйте готовую к использованию программу-скрипт. |
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/15320





- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования