---
title: "Интеллектуальное управление - Разработка программ - Справка по MetaEditor"
description: "Для удобства разработки программ в MetaEditor предусмотрены различные средства, от автоподстановок названий и подсказок к... - Интеллектуальное управление - Разработка программ - Справка по MetaEditor"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management"
---

[Справка по MetaEditor](https://www.metatrader5.com/ru/metaeditor/help) → [Разработка программ](https://www.metatrader5.com/ru/metaeditor/help/development) → Интеллектуальное управление

# Интеллектуальное управление

Для удобства разработки программ в MetaEditor предусмотрены различные средства, от автоподстановок названий и подсказок к функциям до закладок и [горячих клавиш](https://www.metatrader5.com/ru/metaeditor/help/workspace/hotkeys). Эти средства позволяют ускорить процесс написания кода, удобно перемещаться по нему и предотвратить появление ошибок.

В данном разделе описаны следующие функции:

- [Автоподстановка имен функций](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#substitute)
- [Информация о параметрах](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#info)
- [Переход к определению](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#definition)
- [Список функций](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#list)
- [Вставка комментариев](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#comments)
- [Дополнительные возможности редактирования кода](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#additional)
- [Работа с закладками](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#bookmarks)
- [Переход к строке](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#goto_line)
- [Сниппеты](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#snippet)
- [Вставка ресурсов](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#resource)
- [Преобразование текста](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#convert)
- [Слежение за буфером обмена](https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management#clipboard)

> Любые изменения кода можно откатить, выполнив команду "![Отменить](https://www.metatrader5.com/i/help/metaeditor/ru/undo_icon.png) Отменить" в меню ["Правка"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#undo) или на панели инструментов ["Стандартная"](https://www.metatrader5.com/ru/metaeditor/help/toolbar/toolbar_standard#undo), либо нажав горячие клавиши "Ctrl+Z".

## Автоподстановка имен функций [#](#substitute)

Когда вы пишете код программы, MetaEditor автоматически предлагает возможные варианты подстановки для встроенных и пользовательских функций, констант, переменных, членов классов, ключевых слов и т.д. Это ускоряет написание кода. Например, как только вы введете первые буквы названия функции, сразу открывается список функций с подходящими названиями. Выберите стрелками на клавиатуре подходящий вариант и нажмите "Enter":

![Список имен](https://www.metatrader5.com/i/help/metaeditor/ru/list_names.png)

Если список вариантов слишком большой, наберите еще несколько букв названия функции. Для вызова списка вручную нажмите "![Список имен](https://www.metatrader5.com/i/help/metaeditor/ru/list_names_icon.png) Список имен" в меню ["Правка"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#list_names) или "Ctrl+Space" после ввода первых символов названия.

## Информация о параметрах [#](#info)

Посмотреть сигнатуру функции можно прямо при написании кода, не открывая справочник по языку. Для этого установите курсор после открывающей скобки, с которой начинается описание параметров функции, а затем нажмите "![Информация о параметрах](https://www.metatrader5.com/i/help/metaeditor/ru/parameter_info_icon.png) Информация о параметрах" в меню ["Правка"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#parameter_info) или "Ctrl+Shift+Space". Информация о параметрах и типе возвращаемого значения функции будет показана в виде всплывающей подсказки:

![Информация о параметрах](https://www.metatrader5.com/i/help/metaeditor/ru/parameter_info.png)

На изображении выше для функции показывается следующая информация:

- [1 of 2] — означает, что у функции есть варианта вызова — с разными параметрами. Для переключения между ними используйте стрелки на клавиатуре или же щелкните левой кнопкой мыши на строке подсказки.
- bool — указывает на тип значения, возвращаемого функцией.
- ObjectSetInteger — название функции.
- (long chart_id, ... ) — перечисление возможных параметров функции, перед каждым параметром указывается его тип (в данном случае — "long"). Параметр, на котором в текущий момент находится курсор, отображается жирным шрифтом.

## Переход к определению [#](#definition)

Этот инструмент позволяет быстро перемещаться к определению (реализации) выбранного типа или элемента класса. Установите курсор на его имя и нажмите "![Перейти к определению](https://www.metatrader5.com/i/help/metaeditor/ru/go_to_definition_icon.png) Перейти к определению" в контекстном меню или "Alt+G". Если определение находится в другом файле, то он будет открыт, а курсор будет установлен в соответствующую его позицию.

Также функция позволяет переходить к включаемым файлам. Для этого установите курсор в любом месте строки, где он объявлен (директива #include), и выполните вышеуказанную команду.

## Переход к объявлению [#](#declaration)

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

## Список функций [#](#list)

Этот инструмент позволяет посмотреть список всех объявленных функций в текущем файле. Чтобы открыть список, нажмите "![Список функций](https://www.metatrader5.com/i/help/metaeditor/ru/list_funtions_icon.png) Список функций" в меню ["Правка"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#list_functions) или "Alt+M".

![Список функций](https://www.metatrader5.com/i/help/metaeditor/ru/list_functions.png)

В скобках справа от названия функции указываются ее параметры. Чтобы перейти к функции, нажмите на ее имя в списке. Каждый тип функций в списке помечен своей иконкой:

- ![Функция](https://www.metatrader5.com/i/help/metaeditor/ru/function_icon.png) — функция.
- ![Функция обработки событий](https://www.metatrader5.com/i/help/metaeditor/ru/function_event_icon.png) — функция обработки событий (On*).
- ![Публичный метод класса](https://www.metatrader5.com/i/help/metaeditor/ru/class_public_method_icon.png) — публичный метод класса (public).
- ![Защищенный метод класса](https://www.metatrader5.com/i/help/metaeditor/ru/class_method_protected_icon.png) — защищенный метод класса (protected).
- ![Приватный метод класса](https://www.metatrader5.com/i/help/metaeditor/ru/class_method_private_icon.png) — приватный метод класса (private).

## Вставка комментариев [#](#comments)

Для облегчения работы с комментариями в коде программы в меню ["Правка"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#comments) и на панели инструментов ["Стандартная"](https://www.metatrader5.com/ru/metaeditor/help/toolbar/toolbar_standard) доступен ряд функций:

- ![Заголовок функции](https://www.metatrader5.com/i/help/metaeditor/ru/function_header_icon.png)Заголовок функции — вставка заготовки комментария для функции;
- ![Блочный комментарий](https://www.metatrader5.com/i/help/metaeditor/ru/block_comment_icon.png)Блочный комментарий — вставка символов однострочного комментария;
- ![Закомментировать строки](https://www.metatrader5.com/i/help/metaeditor/ru/comment_lines_icon.png)Закомментировать строки — вставить комментарии "//" в начале каждой выделенной строки;
- ![Раскомментировать строки](https://www.metatrader5.com/i/help/metaeditor/ru/uncomment_lines_icon.png)Раскомментировать строки — убрать комментарии "//" из начала каждой выделенной строки.

Команда "![Блочный комментарий](https://www.metatrader5.com/i/help/metaeditor/ru/block_comment_icon.png) Блочный комментарий" (Ctrl+/) вставляет в текущей позиции курсора символы однострочного комментария:

```
//---
```

Команда "![Заголовок функции](https://www.metatrader5.com/i/help/metaeditor/ru/function_header_icon.png) Заголовок функции" (Ctrl+.) вставляет в текущей позиции курсора заготовку для комментария к функции:

```
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
```

## Дополнительные возможности редактирования кода [#](#additional)

Вы можете легко перемещать фрагменты кода из одной части программы в другую. Для этого выделите фрагмент, а затем перетащите его в нужную позицию (Drag'n'Drop").

В подменю ["Дополнительно"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#comments) меню "Правка" доступен ряд команд, упрощающих редактирование исходного кода:

- ![Увеличить отступ строк](https://www.metatrader5.com/i/help/metaeditor/ru/increase_indent_icon.png)Увеличить отступ строк — вставить три пробела (символ табуляции) в начале выделенных строк. Для вставки пробелов в одной строке, установите курсор в ее начале. Для вставки пробелов в нескольких строках, выделите их полностью.
- ![Уменьшить отступ строк](https://www.metatrader5.com/i/help/metaeditor/ru/decrease_indent_icon.png)Уменьшить отступ строк — убрать три пробела (символ табуляции) в начале нескольких выделенных строк. Аналогичное действие выполняется сочетанием клавиш Tab+Shift.
- ![Все прописные](https://www.metatrader5.com/i/help/metaeditor/ru/make_uppercase_icon.png)Все прописные — перевести все буквы выделенной фразы в верхний регистр. Аналогичное действие выполняется сочетанием клавиш Ctrl+Shift+U.
- ![Все строчные](https://www.metatrader5.com/i/help/metaeditor/ru/make_lowercase_icon.png)Все строчные — перевести все буквы выделенной фразы в нижний регистр. Аналогичное действие выполняется сочетанием клавиш Ctrl+U.

## Работа с закладками [#](#bookmarks)

Закладки предназначены для быстрого перехода к различным частям кода. Пометьте закладками нужные строки, а затем перемещайтесь между ними при помощи команд меню ["Правка — Закладки"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit#bookmarks) и контекстного меню исходного кода:

- ![Переключить закладку](https://www.metatrader5.com/i/help/metaeditor/ru/toggle_bookmark_icon.png)Переключить закладку — включить или выключить закладку на текущей строке, в зависимости от ее текущего состояния. Это же действие можно выполнить с помощью клавиш "Ctrl+F2";
- ![Следующая закладка](https://www.metatrader5.com/i/help/metaeditor/ru/next_bookmark_icon.png)Следующая закладка — перейти к следующей закладке в текущем коде. Это же действие может быть выполнено с помощью клавиши "F2";
- ![Предыдущая закладка](https://www.metatrader5.com/i/help/metaeditor/ru/previous_bookmark_icon.png)Предыдущая закладка — перейти к предыдущей закладке в текущем коде. Это же действие можно выполнить, нажав клавиши "Shift+F2";
- ![Убрать все закладки](https://www.metatrader5.com/i/help/metaeditor/ru/clear_all_bookmarks_icon.png)Убрать все закладки — убрать все закладки из текущего кода. Это же действие выполняется при нажатии клавиш "Ctrl+Shift+F2".

В MetaEditor также предусмотрены именованные закладки — закладки, которым присвоен цифровой идентификатор. Чтобы установить такую закладку, нажмите клавишу с цифрой от 0 до 9, удерживая клавишу Ctrl. Чтобы перейти к ранее установленной закладке, нажмите соответствующую цифру, удерживая клавишу Alt.

## Переход к строке [#](#goto_line)

Для быстрого перехода к любой строке кода в текущем файле нажмите "![Перейти к строке](https://www.metatrader5.com/i/help/metaeditor/ru/go_to_line_icon.png) Перейти к строке" в меню ["Поиск"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_search) или "Ctrl+G". Будет открыто следующее окно:

![Перейти к строке](https://www.metatrader5.com/i/help/metaeditor/ru/goto_line.png)

В окне указывается диапазон строк с кодом в текущем файле. Для перехода к строке введите ее номер и нажмите "ОК".

## Сниппеты [#](#snippet)

Сниппеты — это небольшие шаблонные фрагменты исходного кода, описывающие ту или иную конструкцию языка MQL4/MQL5. Они облегчают и ускоряют написание исходного кода. Например, при помощи них в код программы можно быстро добавить заготовку для описания класса или цикла. Для этого достаточно ввести ключевое слово — class или for. После этого курсор изменится на ![Возможна вставка сниппета](https://www.metatrader5.com/i/help/metaeditor/ru/snippet_cursor.png), означающий возможность вставки сниппета. Нажмите "Tab", и в код программы будет вставлена заготовка для класса или цикла for, соответственно.

![Пример сниппета](https://www.metatrader5.com/i/help/metaeditor/ru/snippet_example.png)

Для перехода между активными полями сниппета (в данном случае, это имя, конструктор и деструктор класса) используйте клавиши "Tab" и "Shift+Tab".

Изменение одного активного поля автоматически изменяет и остальные. Например, при изменении имени класса автоматически изменяются имена конструктора и деструктора; при изменении имени переменной в одном из выражений цикла "for" изменяются переменные и в остальных его выражениях.

Система работы со сниппетами также распознает уже описанные структуры, классы, перечисления, методы и функции. Установите курсор в пределах описания соответствующей конструкции и нажмите "Ctrl+Enter". После этого вы сможете перемещаться между членами (для классов, структур и перечислений) и аргументами (для методов и функций) при помощи клавиш "Tab" и "Shift+Tab", а также редактировать их совместно, как это описано выше.

В данный момент поддерживаются следующие сниппеты:

| Ключевое слово | Значение |
| --- | --- |
| #import | Объявление импорта. |
| OnBookEvent | Обработчик OnBookEvent. |
| OnCalculate | Обработчик OnCalculate. |
| case | Селектор case. |
| OnChartEvent | Обработчик OnChartEvent. |
| class | Объявления класса. |
| OnDeinit | Обработчик OnDeinit. |
| do | Объявление цикла do while. |
| enum | Объявление перечисления. |
| for | Объявление цикла for. |
| if | Объявление условия if. |
| else | Объявление условия else. |
| OnInit | Обработчик OnInit. |
| OnStart | Обработчик OnStart. |
| struct | Объявление структуры. |
| switch | Селектор switch. |
| OnTester | Обработчик OnTester. |
| OnTesterInit | Обработчик OnTesterInit. |
| OnTesterPass | Обработчик OnTesterPass. |
| OnTesterDeinit | Обработчик OnTesterDeinit. |
| OnTick | Обработчик OnTick. |
| OnTimer | Обработчик OnTimer. |
| OnTrade | Обработчик OnTrade. |
| OnTradeTransation | Обработчик OnTradeTransation |
| while | Объявление цикла while. |

## Вставка ресурсов [#](#resource)

Для облегчения разработки приложений в меню ["Правка — Вставить"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit) доступен ряд команд для быстрой вставки файлов ресурсов.

### Настройки в виде #property

Вставляет в текущую позицию программы директиву #property и сразу открывает список всех доступных в языке [свойств программы](https://www.mql5.com/ru/docs/basis/preprosessor/compilation).

### BMP/WAV в виде #resource

Чтобы добавить изображение или звуковой файл в ресурсы программы, достаточно выполнить эту команду и выбрать BMP или WAV-файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлена директива #resource с правильно указанным путем к выбранному файлу.

```
#resource "\\Images\\image.bmp"
```

### DLL/EX5 в виде #import

Чтобы импортировать функции из внешней DLL-библиотеки или EX5/EX4-файла, достаточно выполнить эту команду и выбрать файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлена пара директив #import с правильно указанным путем к выбранному файлу.

```
#import "..\Experts\SendNotification.ex5"

#import
```

Между директивами добавьте описание импортируемых функций.

### MQH в виде #include

Чтобы добавить включаемый файл в код программы, выполните эту команду, а затем выберите MQH-файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлена директива #include с правильно указанным путем к выбранному файлу.

```
#include <Arrays\Array.mqh>
```

### Набор параметров в виде #property

Чтобы добавить набор параметров для тестирования советника в код программы, выполните эту команду, а затем выберите SET-файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлена директива #property с правильно указанным путем к выбранному файлу.

```
#property tester_set "\\Profiles\\Tester\\Moving Average.set"
```

### Дата и время в виде ГГГГ.ММ.ДД чч:мм:сс / UNIX-времени

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

![Вставка даты и времени в код](https://www.metatrader5.com/i/help/metaeditor/ru/insert_datetime.png)

### Цвет в виде clrColor

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

![Вставка цвета в код](https://www.metatrader5.com/i/help/metaeditor/ru/insert_color.png)

### Файл в виде бинарного массива

Эта команда позволяет включить в текст программы любой файл в виде бинарного массива. Выполните ее и выберите нужный файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлен char-массив.

Используя эту функцию, можно, например, переносить шаблоны графиков вместе с экспертами/индикаторами: включите свой шаблон в код программы в виде массива, затем при помощи функции FileSave сохраните его на диск. После этого шаблон можно применить к графику при помощи функции ChartApplyTemplate.

```
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- файл шаблона в виде бинарного массива
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // массив данных в примере сокращен
     };
//--- сохранение и применение шаблона
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }
```

### CSV в виде текстового массива

Чтобы добавить данные из текстового файла в код программы, выполните эту команду, а затем выберите TXT или CSV-файл (должен находиться в пределах каталога \MQL5). В текущую позицию программы будет добавлен string-массив нужной размерности с данными из файла:

```
string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };
```

## Преобразование текста [#](#convert)

MetaEditor позволяет легко преобразовывать формат исходных данных. Для этого откройте нужный файл, выделите в нем текст и выполните одну из команд в меню ["Правка — Преобразовать"](https://www.metatrader5.com/ru/metaeditor/help/main_menu/main_menu_edit):

- ASCII в HEX
- ASCII в Base64
- ASCII в бинарный массив
- HEX в ASCII
- Base64 в ASCII

## Слежение за буфером обмена [#](#clipboard)

Функция слежения за буфером позволяет повысить удобство работы с исходным кодом за счет быстрого доступа к последним использованным данным. Нажмите Alt+V в любой позиции исходного кода, выберите в меню любую из ранее скопированных строк, и она будет вставлена по месту.

![Для вставки из истории буфера обмена нажмите ALT+V или воспользуйтесь панелью инструментов](https://www.metatrader5.com/i/help/metaeditor/ru/clipboard.png)

Для включения/отключения слежения воспользуйтесь соответствующей командой на панели инструментов или [настройками редактора](https://www.metatrader5.com/ru/metaeditor/help/beginning/settings#common).

## In this section

- Интеллектуальное управление
- [Поиск и замена](https://www.metatrader5.com/ru/metaeditor/help/development/source_code_find)
- [Стилизатор](https://www.metatrader5.com/ru/metaeditor/help/development/styler)
- [Компиляция](https://www.metatrader5.com/ru/metaeditor/help/development/compile)
- [Дополнительная защита программ (MQL5 Protector)](https://www.metatrader5.com/ru/metaeditor/help/development/mql5_cloud_protector)
- [Отладка кода](https://www.metatrader5.com/ru/metaeditor/help/development/debug)
- [Профилирование кода](https://www.metatrader5.com/ru/metaeditor/help/development/profiling)
- [Помощь AI Assistant](https://www.metatrader5.com/ru/metaeditor/help/development/ai_assistant)
- [Генерация включаемого кода](https://www.metatrader5.com/ru/metaeditor/help/development/generate_mqh)
- [Работа с C++ DLL (интеграция с MS Visual Studio)](https://www.metatrader5.com/ru/metaeditor/help/development/c_dll)
- [Работа с Python](https://www.metatrader5.com/ru/metaeditor/help/development/python)
- [Поддержка OpenCL](https://www.metatrader5.com/ru/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help", "name": "Справка по MetaEditor"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help/development", "name": "Разработка программ"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ru/metaeditor/help/development/intelligent_management", "name": "Интеллектуальное управление"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Интеллектуальное управление", "acceptedAnswer": { "@type": "Answer", "text": "Для удобства разработки программ в MetaEditor предусмотрены различные средства, от автоподстановок названий и подсказок к функциям до закладок и..." } }] }
```
