---
title: "Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5"
description: "Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 ( MQL5 ), среда... - Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading"
---

[Справка по MetaTrader 5](https://www.metatrader5.com/ru/terminal/help) → [Алгоритмический трейдинг, торговые роботы](https://www.metatrader5.com/ru/terminal/help/algotrading) → Как самому создать советника или индикатор

# Как самому создать советника или индикатор

Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 ([MQL5](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#mql5)), среда разработки [MetaEditor](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#metaeditor) и инструменты тестирования стратегий.

> Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте [MQL5.community](https://www.mql5.com/). На этом же сайте в разделе [Code Base](https://www.mql5.com/ru/code) могут быть найдены примеры готовых приложений.

## Встроенный язык программирования торговых стратегий MQL5 [#](#mql5)

В торговую платформу встроен язык программирования торговых стратегий [MetaQuotes Language 5](https://www.mql5.com/). Это — пятое поколение языков MQL. Он позволяет писать [советники](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#type), автоматизирующие управление торговыми процессами, и реализовывать собственные торговые стратегии. Кроме того, на MQL5 можно создавать [пользовательские индикаторы](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#type), [скрипты](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#type) и библиотеки функций.

Особенности языка MQL5:

- Объектная ориентированность;
- Синтаксис MQL5 похож на синтаксис языка C++;
- Большое количество функций, необходимых для анализа котировок, управления позициями, вызова технических индикаторов и других;
- Высокая производительность;
- Высокий уровень защиты от декомпиляции: новые, сложные алгоритмы шифрования, проверка целостности файлов и сложность самого языка;
- Поддержка [OpenCL](https://www.mql5.com/ru/articles/405), что позволяет использовать видеокарты для выполнения вычисления в MQL5-программах;
- Интегрированная среда разработки программ [MetaEditor](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#metaeditor), включающая отладчик.

Подробное описание всех конструкций языка и функций приведено в справочнике MQL5. Также всю интересующую информацию о MQL5 можно найти на сайте сообщества разработчиков [https://www.mql5.com](https://www.mql5.com/).

## Редактор для разработки торговых приложений MetaEditor [#](#metaeditor)

MetaEditor — это интегрированная среда разработки на языке [MQL5](https://www.mql5.com/), он является составной частью торговой платформы. MetaEditor позволяет создавать, редактировать, компилировать и отлаживать исходные тексты программ, написанных на языке [MQL5](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#mql5).

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

Детальное описание MetaEditor дано во встроенной справке по этой программе. Описание языка MQL5 может быть найдено во встроенном справочнике, а также на официальном сайте [MQL5.community](https://www.mql5.com/).

## MQL5 Algo Forge [#](#algoforge)

[MQL5 Algo Forge](https://forge.mql5.io/) — это онлайн хранилище кода и социальная сеть для разработчиков. Портал предоставляет множество преимуществ при создании торговых приложений:

- Безопасное хранение файлов в облаке и возможность восстановления при выходе вашего компьютера из строя.
- Доступ к своим кодам с любого компьютера при помощи аккаунта MQL5.community.
- Версионная работа с кодом на основе Git.
- Совместная работа над проектами с отслеживанием истории.
- Глубокая интеграция с MetaEditor — создание проектов, коммиты и получение изменений прямо из редактора.

Подробнее читайте в статье "[Как начать работу с MQL5 Algo Forge](https://www.mql5.com/ru/articles/18518)" и справке MetaEditor.

## Учебники по алготрейдингу [#](#algobook)

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

"[Программирование на MQL5 для трейдеров](https://www.mql5.com/ru/book)" — самый полный и детальный учебник по MQL5, подходит программистам любого уровня. Новички познакомятся с основами: изучат инструменты разработки и базовые понятия в программировании. Создадут первую программу, скомпилируют и запустят ее в торговой платформе MetaTrader 5. Пользователи с опытом программирования на других языках могут сразу же перейти к прикладной части: возможностям MQL5 для создания торговых роботов и аналитических приложений.

"[Нейросети в алготрейдинге на MQL5](https://www.mql5.com/ru/neurobook)" — учебное пособие по использованию методов машинного обучения при создании торговых роботов в платформе MetaTrader 5. Вы последовательно познакомитесь с основами нейросетей и возможностями их применения в алготрейдинге. По мере продвижения вы создадите и обучите собственный искусственный интеллект, постепенно дополняя его новыми функциями. Помимо изучения MQL5, вы научитесь писать программы на Python и OpenCL, а также узнаете о встроенных методах матриц и векторов, которые позволяют решать сложные математические задачи с помощью лаконичного и быстрого кода.

## Статьи по разработке торговых приложений [#](#articles)

На сайте [MQL5.community](https://www.mql5.com/) доступна обширная библиотека [статей по программированию на MQL4/MQL5](https://www.mql5.com/ru/articles). Статьи являются отличным справочным материалом по созданию программ, в них рассматривается множество практических задач по алготрейдингу. Новые статьи выходят каждую неделю.

Список всех доступных статей отображается прямо в MetaEditor. Чтобы найти интересующий материал, воспользуйтесь [онлайн-поиском](https://www.metatrader5.com/ru/terminal/help/startworking/interface#search).

![Статьи по программированию на MQL4/MQL5](https://www.metatrader5.com/i/help/terminal/ru/articles.png)

## Какие бывают типы приложений на MQL5 [#](#type)

Существует три основных типа торговых приложений.

### Советники

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

Все советники хранятся в папке [/MQL5/Experts](https://www.metatrader5.com/ru/terminal/help/start_advanced/structure#ea) торговой платформы.

### Пользовательские индикаторы

Пользовательские индикаторы — самостоятельно написанные технические индикаторы, предназначенные для анализа динамики цен. На основе алгоритмов индикаторов строятся торговые тактики и разрабатываются советники. Пользовательские индикаторы предназначены только для анализа динамики цен финансовых инструментов. Индикаторы не могут торговать и не имеют доступа к графикам.

Все индикаторы хранятся в папке [/MQL5/Indicators](https://www.metatrader5.com/ru/terminal/help/start_advanced/structure#indicators) торговой платформы.

### Скрипты

Скрипты — скриптом называется программа, написанная на языке [MQL5](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#mql5) и предназначенная для одноразового выполнения любых действий. Скрипт может выполнять как аналитические, так и торговые функции. В отличие от [советников](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#type), скрипты исполняются по запросу. Иными словами, если советник работает практически постоянно, то скрипт, отработав один раз, самостоятельно завершает работу.

Все скрипты хранятся в папке [/MQL5/Scripts](https://www.metatrader5.com/ru/terminal/help/start_advanced/structure#scripts) торговой платформы.

### Сервисы

[Сервисы](https://www.metatrader5.com/ru/terminal/help/algotrading/trade_robots_indicators#service) позволяют использовать собственные источники ценовых данных для платформы — передавать цены от внешних систем в режиме реального времени так, как это делают торговые серверы брокеров. Также сервисы можно использовать для выполнения других обслуживающих задач в фоновом режиме.

В отличие от советников, индикаторов и скриптов, сервисы не привязаны к конкретному графику. Они работают в фоновом режиме и начинают работу автоматически при запуске терминала (если они не были принудительно остановлены).

Все сервисы хранятся в папке [/MQL5/Services](https://www.metatrader5.com/ru/terminal/help/start_advanced/structure#scripts) торговой платформы.

> Внутри папок Experts, Indicators, Scripts и Services программы могут быть рассортированы по подпапкам, при этом в окне ["Навигатор"](https://www.metatrader5.com/ru/terminal/help/startworking/interface) будет отображаться структура их размещения.

## Как создать и запустить торговое приложение [#](#create)

Нажмите "![Создать в редакторе](https://www.metatrader5.com/i/help/terminal/ru/create_icon.png) Создать в редакторе" в контекстном меню окна ["Навигатор"](https://www.metatrader5.com/ru/terminal/help/startworking/interface) в разделе "Советники", "Индикаторы" или "Скрипты". Также для запуска MetaEditor можно нажать F4.

![Приступить к созданию торгового приложения](https://www.metatrader5.com/i/help/terminal/ru/ea_create.png)

После этого будет запущен [MetaEditor](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#metaeditor), и в нем автоматически откроется "Мастер MQL5". Он позволит сгенерировать шаблон нужной программы, что быстро приступить к разработке. Для примера создадим простой скрипт, который будет выводить в [журнал](https://www.metatrader5.com/ru/terminal/help/start_advanced/journal) надпись "Hello world".

![Мастер MQL5 сгенерирует шаблон приложения](https://www.metatrader5.com/i/help/terminal/ru/example_wizard_script.png)

В полученном шаблоне напишем код Print("Hello World"); и произведем компиляцию клавишей F7, чтобы получить исполняемый файл. Исполняемый файл имеет расширение EX5, именно такой файл может быть запущен в торговой платформе.

![Компиляция и ее результаты](https://www.metatrader5.com/i/help/terminal/ru/example_compile.png)

Результаты компиляции выводятся в журнал редактора.

В соответствии с типом программы, исходный код был сохранен в папку MQL5\Scripts\. В этой же папке был создан и исполняемый файл. Теперь можно вернуться в торговую платформу и запустить созданный скрипт.

![Запуск скрипта в торговой платформе](https://www.metatrader5.com/i/help/terminal/ru/example_run_script.png)

> Особенности работы с программами для автоматического трейдинга описаны в разделе ["Торговые советники и собственные индикаторы"](https://www.metatrader5.com/ru/terminal/help/algotrading/trade_robots_indicators).

## Как изменить торговое приложение [#](#modify)

Чтобы приступить к редактированию торгового робота или пользовательского индикатора, нажмите "![Изменить](https://www.metatrader5.com/i/help/terminal/ru/modify_icon.png) Изменить" в его контекстном меню в окне ["Навигатор"](https://www.metatrader5.com/ru/terminal/help/startworking/interface) или выделите его и нажмите "Enter". При этом будет открыт [MetaEditor](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#metaeditor), в который уже будет загружен исходный код выбранного индикатора. После изменения индикатора скомпилируйте его повторно (F7), иначе в платформе будет использоваться предыдущая, неизмененная версия.

## Как завершить работу торгового приложения [#](#quit)

Существует множество способов завершить работу торгового приложения в платформе.

| Торговый робот | Пользовательский технический индикатор | Скрипт |
| --- | --- | --- |
| - Нажмите "Удалить" в окне ["Список советников"](https://www.metatrader5.com/ru/terminal/help/charts_advanced/charts_objects_list#ea);<br>- Смените [шаблон](https://www.metatrader5.com/ru/terminal/help/charts_advanced/templates_profiles) графика;<br>- Смените [профиль](https://www.metatrader5.com/ru/terminal/help/charts_advanced/templates_profiles#profiles), при условии что в настройках платформы включена [соответствующая опция](https://www.metatrader5.com/ru/terminal/help/startworking/settings#profile);<br>- Выключите торговую платформу;<br>- Закройте график, к которому прикреплен эксперт;<br>- Наложите другой советник на тот же график;<br>- Нажмите "![Удалить советника](https://www.metatrader5.com/i/help/terminal/ru/ea_remove_icon.png) Удалить" в контекстном меню значка эксперта на графике. | - Нажмите "![Удалить индикатор](https://www.metatrader5.com/i/help/terminal/ru/delete_indicator_icon.png) Удалить" или "![Удалить окно индикатора](https://www.metatrader5.com/i/help/terminal/ru/delete_indicator_window.png) Удалить окно индикатора" в контекстном меню индикатора;<br>- Нажмите "Удалить" в окне ["Список индикаторов"](https://www.metatrader5.com/ru/terminal/help/charts_advanced/charts_objects_list#indicators);<br>- Смените [шаблон](https://www.metatrader5.com/ru/terminal/help/charts_advanced/templates_profiles) графика;<br>- Переоткройте график. | - Нажмите "Удалить" в окне ["Список советников"](https://www.metatrader5.com/ru/terminal/help/charts_advanced/charts_objects_list#ea). Данное окно также содержит список запущенных скриптов;<br>- Смените [шаблон](https://www.metatrader5.com/ru/terminal/help/charts_advanced/templates_profiles) графика;<br>- Смените [профиль](https://www.metatrader5.com/ru/terminal/help/charts_advanced/templates_profiles#profiles), при условии что в настройках платформы включена [соответствующая опция](https://www.metatrader5.com/ru/terminal/help/startworking/settings#profile);<br>- Смените символ [графика](https://www.metatrader5.com/ru/terminal/help/charts_analysis/charts);<br>- Смените [период](https://www.metatrader5.com/ru/terminal/help/charts_analysis/charts#operations) графика;<br>- Выключите торговую платформу;<br>- Закройте график, к которому прикреплен скрипт;<br>- Наложите другой скрипт на тот же график;<br>- Нажмите "![Удалить скрипт](https://www.metatrader5.com/i/help/terminal/ru/script_remove_icon.png) Удалить" в контекстном меню значка скрипта на графике. |

> Если торговое приложение запущено на графике, удаление соответствующего ей исполняемого файла из окна ["Навигатор"](https://www.metatrader5.com/ru/terminal/help/startworking/interface) не завершит ее работу.Отключение советников в [настройках торговой платформы](https://www.metatrader5.com/ru/terminal/help/startworking/settings#enable_ea) не является гарантией полного их отключения. Эта опция лишь запрещает советникам торговать.

## Как запустить скачанный файл исходного кода MQ5 [#](#mq5)

Если у вас имеется только файл исходного кода (*.MQ5), поместить его в папку, соответствующую типу приложения:

- Для советников — /MQL5/Experts
- Для индикаторов — /MQL5/Indicators
- Для скриптов —/MQL5/Scripts

Чтобы быстро перейти к папке хранения информации торговой платформы, нажмите "![Открыть каталог данных](https://www.metatrader5.com/i/help/terminal/ru/terminal_data_icon.png) Открыть каталог данных" в меню ["Файл"](https://www.metatrader5.com/ru/terminal/help/startworking/interface).

Чтобы запустить файл в торговой платформе, скомпилируйте его в [MetaEditor](https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading#metaeditor):

- Откройте MetaEditor клавишей F4.
- В MetaEditor в окне "Навигатор" откройте файл исходного кода двойным нажатием на нем левой кнопкой мыши.
- Скомпилируйте его клавишей F7.

В результате вы получите исполняемый файл *.EX5, который уже можно запустить в торговой платформе.

> Исходные файлы (*.MQ5) не отображаются в окне ["Навигатор"](https://www.metatrader5.com/ru/terminal/help/startworking/interface) торговой платформы.

## In this section

- [Торговые советники и собственные индикаторы](https://www.metatrader5.com/ru/terminal/help/algotrading/trade_robots_indicators)
- [Где взять торговых роботов и индикаторы](https://www.metatrader5.com/ru/terminal/help/algotrading/algotrading_get_ea_indicator)
- Как самому создать советника или индикатор
- [Тестирование стратегий](https://www.metatrader5.com/ru/terminal/help/algotrading/testing)
- [Как тестер загружает исторические данные](https://www.metatrader5.com/ru/terminal/help/algotrading/test_preparation)
- [Оптимизация стратегий](https://www.metatrader5.com/ru/terminal/help/algotrading/strategy_optimization)
- [Особенности тестирования](https://www.metatrader5.com/ru/terminal/help/algotrading/testing_features)
- [Отчет о тестировании](https://www.metatrader5.com/ru/terminal/help/algotrading/testing_report)
- [Визуализация тестирования](https://www.metatrader5.com/ru/terminal/help/algotrading/visualization)
- [Журнал тестирования](https://www.metatrader5.com/ru/terminal/help/algotrading/tester_journal)
- [Типы оптимизации](https://www.metatrader5.com/ru/terminal/help/algotrading/optimization_types)
- [Реальные и сгенерированные тики](https://www.metatrader5.com/ru/terminal/help/algotrading/tick_generation)
- [MetaTester и удаленные агенты](https://www.metatrader5.com/ru/terminal/help/algotrading/metatester)
- [Глобальные переменные](https://www.metatrader5.com/ru/terminal/help/algotrading/service_global)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ru/terminal/help", "name": "Справка по MetaTrader 5"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ru/terminal/help/algotrading", "name": "Алгоритмический трейдинг, торговые роботы"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading", "name": "Как самому создать советника или индикатор"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Как самому создать советника или индикатор", "acceptedAnswer": { "@type": "Answer", "text": "Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 ( MQL5 ), среда разработки MetaEditor и..." } }] }
```
