Настройка индикатора
Запустите индикатор на график, и перейдите на вкладку Входные параметры.

Indicator name
Введите имя пользовательского индикатора, линии которого будут использоваться в сигнале. UniversalAlert работает только с пользовательскими индикаторами. Все предустановленные индикаторы из папок Indicators\Trend, Indicators\Oscillator, Indicators\Volumes, Indicators\Bill Williams доступны в пользовательском варианте в папке Examples.

- Если пользовательский индикатор находится в папке MQL5 \ Indicators, - просто введите имя индикатора в поле ввода, например, My_Indicator.
- Если пользовательский индикатор находится в подпапке, например, MQL5 \ Indicators \ Examples, - введите в поле ввода имя подпапки и индикатора, например, Examples\My_Indicator.
Indicator timeframe
Укажите таймфрейм графика, на котором будет работать пользовательский индикатор и будет выполняться поиск сигналов.

Indicator input parameters 1
Введите входные параметры пользовательского индикатора.

Для пользовательского индикатора можно задать свои входные параметры, для этого нужно ввести их в параметр Indicator input parameters 1по следующим правилам:
- Вводите параметры в строгой последовательности, согласно исходного индикатора;
- Вводите все параметры без исключения, даже если они являются не значимыми, например цвет;
- Если параметров более одного, между каждым параметром необходимо ввести разделитель в виде знака ; при этом после последнего параметра разделитель ставить не нужно;
- Не вводить пробелы или другие знаки, не являющиеся параметрами;
Параметры делятся на типы, и важно вводить их по правилам установленным для каждого типа:
| Иконка | Тип переменного | Формат ввода |
|---|---|---|
| | int - целое число | Вводить в виде числа без каких либо дополнительных знаков, например 345. |
| | double - дробное число | Вводить в виде числа с разделителем в виде точки, например 345.67. |
| | string - текстовая строка | Вводить в виде текста, помещенного в кавычки "", например "текст". |
| | color - цвет | Вводить в виде строки содержащий цвет (из "Набор Web-цветов", строка должна начинаться с clr), например, clrRed. |
| | datetime - временная дата | Вводить в формате D'2015.01.01 00:00' |
| | выпадающий список | Введите номер строки выбранного значения. Нумерация начинается с 0 и идет сверху вниз.* |
* В редких случаях нумерация списка может иметь другой порядок, поэтому, если данные не совпадают при проверке показаний буфера индикатора, необходимо проверить правильность ввода номера строки выпадающего списка.
Для этого введите необходимые настройки в пользовательский индикатор и сохраните их как шаблон. Затем откройте шаблон в любом текстовом редакторе и найдите строку с нужным выпадающим списком. Эта строка будет содержать число, которое вам нужно будет ввести в параметры Universal Alert.

Данный индикатор поддерживает до 10 параметров включительно, если пользовательский индикатор имеет более 10 параметров, то будут применяться параметры только по умолчанию. Так же будут применяться параметры по умолчанию при неправильном их вводе или при не заполнении параметра Indicator input parameters 1.
APPLIED PRICE & Value APPLIED PRICE
Включите параметр APPLIED PRICE и укажите тип цены (Value APPLIED PRICE), если пользовательский индикатор имеет параметр Тип цены.

Indicator input parameters 2 (For CrossingLine)
Если в качестве паттерна выбрано CrossingLine (пересечение двух индикаторных линий) то введите настройки для второго индикатора в поле Indicator input parameters 2 (For CrossingLine) (процедура заполнения параметров аналогична с Indicator input parameters 1).

Signal bar number
Установите номер сигнальной свечи.
Сигнальная свеча — это свеча, на которой индикатор проверяет наличие сигнала (паттерна), и на этой свече размещается сигнальная стрелка.
Нумерация свечей начинается с 0 и идет справа налево.

- Свеча № 0 всегда является последней свечой справа, которая меняется в размере и еще не закрылась.
- Свеча № 1 всегда является предпоследней свечой справа, которая уже закрылась и не меняется в размере, и так далее.
Таким образом, каждый раз, когда появляется новая свеча, нумерация сдвигается вправо, и свеча, которая была № 0, становится № 1. Например, если вы установите номер сигнальной свечи равным 1, индикатор всегда будет проверять сигнал на предпоследней свече справа.
Buffer index Up (For CrossingLine: Line 1)
Установите номер буфера индикаторной линии для сигнала Up, если выбран тип паттерна CrossingLine (пересечение двух индикаторных линий) то здесь вводим номер буфера для первой индикаторной линии.

Индикаторный буфер — это специальный динамический массив, который используется для хранения данных пользовательского индикатора. Проще говоря: именно в этих буферах индикатор «накапливает» рассчитанные значения (например, цены, осцилляторы или сигналы), чтобы потом отобразить их на графике.
Каждая индикаторная линия имеет свой собственный номер буфера, и ваша задача на этом этапе — определить номер буфера линии, по которой будет генерироваться сигнал.
Как определить номер буфера?
Для примера возьмём индикатор Ichimoku, для сигнала будет использовать линию Tenkan sen. Запустите пользовательский индикатор Ichimoku на графике (напомним, этот индикатор находиться в папке Examples), и откройте окно "Окно данных" (в этом окне отображаться буферы индикаторных линий).

Для определения номера буфера можно использовать два способа:
- У большинства индикаторов все буферы имеют названия, поэтому вам нужно навести перекрестие на линию и сравнить названия.
- Если линия не помечена, наведите перекрестие на линию и сравните цену (значение) линии с ценами всех буферов индикаторов. Искомый буфер будет иметь ту же цену, что и в перекрестии.
В нашем примере искомый номер буфера равен 0 (нумерация буферов начинается с 0, и идет сверху вниз).
Обратите внимание, в редких случаях нумерация буферов не совпадает с нумерацией в окне данных (некоторые буферы могут быть скрыты), поэтому после запуска индикатора UniversalAlert обязательно проверьте показания выбранных буферов, как это сделать смотрите ниже (параметр Show buffer).
Buffer index Dw (For CrossingLine: Line 2)
Установите номер буфера индикаторной линии для сигнала Dw, если выбран тип паттерна CrossingLine (пересечение двух индикаторных линий) то здесь вводим номер буфера для второй индикаторной линии.

- Buffer index Up (line 1(CrossingLine)) — здесь задаем номер индикаторного буфера для сигнала Up, если выбран тип сигнала CrossingLine то здесь вводим номер буфера первой индикаторной линии.
- Buffer index Dw (line 2(CrossingLine)) — здесь задаем номер индикаторного буфера для сигнала Dw, если выбран тип сигнала CrossingLine то здесь вводим номер буфера второй индикаторной линии.
Значения Buffer index Up (line 1(CrossingLine)) и Buffer index Dw (line 2(CrossingLine)) могут быть равны, если для Up и Dw сигнала используется один и тот же буфер, например паттерн Bend для moving averages.
Pattern
Индикатор может выявлять семь типов сигнала (паттернов).

Для распознавания паттерна используются линия индикатора, уровни на шкале индикатора, а также цены открытия, закрытия, минимума и максимума свечи.

- High.
- Close.
- Open.
- Low.
IntersectionPrice
Закрытие бара выше/ниже индикаторной линии.


Сигнал Up:
Цена Close сигнальной свече выше индикаторной линии ( 2 ).
Цена Close свечи расположенной слева от сигнальной свечи ниже индикаторной линии ( 1 ).
Сигнал Dw:
Цена Close сигнальной свече ниже индикаторной линии ( 4 ).
Цена свечи расположенной слева от сигнальной свечи выше индикаторной линии ( 3 ).
IntersectionOscillator
Пересечение осцилляторной линии с заданным уровнем. Уровни задаются в параметрах Up Line (Oscillator) и Dw Line (Oscillator).


Сигнал Up:
Линия индикатора на сигнальной свече выше уровня Up Line (Oscillator) ( 2 ).
Линия индикатора на свече расположенной слева от сигнальной свечи ниже уровня Dw Line (Oscillator) ( 1 ).
Сигнал Dw:
Линия индикатора на сигнальной свече ниже уровня Dw Line (Oscillator) ( 4
Линия индикатора на свече расположенной слева от сигнальной свечи выше уровня Dw Line (Oscillator) ( 3 ).
Если линия индикатора на свече расположенной слева от сигнальной свечи равна уровню, то условия этой свечи переключается на следующую свечу слева.
RepulsedPrice
Отбитие от индикаторной линии, сигнал подается если свеча пробила линию не глубже чем задано параметром Distance point (RepulsedPrice).


Сигнал Up:
Цена Close сигнальной свече ниже индикаторной линии ( 4 ) и расстояние от цены Close свечи до линии индикатора меньше значения установленного в Distance point (RepulsedPrice).
Цена Open сигнальной свечи выше индикаторной линии ( 3 ).
Цена Close свечи расположенной слева от сигнальной свечи выше индикаторной линии ( 2 ).
Цена Open свечи расположенной слева от сигнальной свечи выше индикаторной линии ( 1 ).
Сигнал Dw:
Цена Close сигнальной свече выше индикаторной линии ( 7 ) и расстояние от цены Close свечи до линии индикатора меньше значения установленного в Distance point (RepulsedPrice).
Цена Open сигнальной свечи ниже индикаторной линии ( 8 ).
Цена Close свечи расположенной слева от сигнальной свечи ниже индикаторной линии ( 5 ).
Цена Open свечи расположенной слева от сигнальной свечи ниже индикаторной линии ( 6 ).
RepulsedOscillator
Отбитие осцилляторной линии от заданного уровня. Уровни задаются в параметрах Up Line (Oscillator) и Dw Line (Oscillator). Глубина возможного пробития задается в параметре Distance (RepulsedOscillator).


Сигнал Up:
Линия индикатора на сигнальной свече ниже уровня Up Line (Oscillator) ( 2 ) и расстояние от линии индикатора до уровня меньше значения установленного в Distance (RepulsedOscillator).
Линия индикатора на свече расположенной слева от сигнальной свечи выше уровня Dw Line (Oscillator) ( 1 ).
Сигнал Dw:
Линия индикатора на сигнальной свече выше уровня Dw Line (Oscillator) ( 4 ) и расстояние от линии индикатора до уровня меньше значения установленного в Distance (RepulsedOscillator).
Линия индикатора на свече расположенной слева от сигнальной свечи ниже уровня Dw Line (Oscillator) ( 3 ).
Emergence
Смена пустого или нулевого значения индикаторного буфера на любое значение. Данный паттерн поддерживает два варианта использования:
- Buffer index Up (For CrossingLine: Line 1) != Buffer index Dw (For CrossingLine: Line 2) имеют разные значения, то есть, для сигнала Up и Dw используются разные буферы.
- Buffer index Up (For CrossingLine: Line 1) == Buffer index Dw (For CrossingLine: Line 2) имеют одинаковые значения, то есть, для сигнала Up и Dw используются один и тот же буфер. Данный вариант используется например для индикатора Parabolic SAR.


Сигнал Up:
Линия индикатора на сигнальной свече имеет значение больше или меньше 0 ( 1 ) (не равен 0 и не равен EMPTY_VALUE (пустому значению) ).
Линия индикатора на свече расположенной слева от сигнальной свечи имеет значение 0 или EMPTY_VALUE.
Сигнал Dw:
Линия индикатора на сигнальной свече имеет значение больше или меньше 0 ( 2 ) (не равен 0 и не равен EMPTY_VALUE (пустому значению) ).
Линия индикатора на свече расположенной слева от сигнальной свечи имеет значение 0 или EMPTY_VALUE.

Сигнал Up:
Цена Low сигнальной свечи выше индикаторной линии 2.
Цена High свечи расположенной слева от сигнальной свечи ниже индикаторной линии 1.
Сигнал Dw:
Цена High сигнальной свече ниже индикаторной линии 4.
Цена Low свечи расположенной слева от сигнальной свечи выше индикаторной линии 3.
Bend
Изгиб индикаторной линии.


Сигнал Up:
Линия индикатора на сигнальной свече ( 3 ) выше линии индикатора 2.
Линия индикатора 2 ниже линии индикатора 1.
Сигнал Dw:
Линия индикатора на сигнальной свече ( 6 ) ниже линии индикатора 5.
Линия индикатора 5 выше линии индикатора 4.
CrossingLine
Пересечение двух индикаторных линий. Параметры для первой линии вводить в Indicator input parameters 1,для второй линии в Indicator input parameters 2 (For CrossingLine).


Сигнал Up:
Линия индикатора #1 на сигнальной свече выше линии индикатора #2 ( 2 ).
<Линия индикатора #1 на свече расположенной слева от сигнальной свечи ниже линии индикатора #2 ( 1 ).
Сигнал Dw:
Линия индикатора #1 на сигнальной свече ниже линии индикатора #2 ( 4 ).
Линия индикатора #1 на свече расположенной слева от сигнальной свечи выше линии индикатора #2 3 ).
Способ оповещения
Выберите способ оповещения.

- Alert — всплывающее окно на графике.
- Push — push-уведомления на телефон.
- Email — сообщения на email.
- Sound — воспроизведения звука.
Если выбрано Sound - введите имя звукового файла в параметр Sound file. Файл должен быть расположен в каталоге каталог_терминала\Sounds или его подкаталоге. Проигрываются только звуковые файлы в формате WAV.
Если выбрано Alert, Push или Email - введите текст для сообщения в параметры Text to signal up и Text to signal dw.
Для Push и Email адреса доставки задаются в настройках терминала. Для получения дополнительной информации см. инструкцию к терминалу.
В параметр Distance from arrow to bar установите отступ стрелки сигнала от свечи (в пунктах).
Показать на графике значения индикаторных буферов

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

- Up или Dw - отображают данные из Up или Dw буферов.
- Номер буфера.
- Номер свечи.
- Данные из буфера.
При первом запуске индикатора включите эти параметры, чтобы убедиться в правильности настройки Universal Alert. (см. ниже).
На этом настройка индикатора завершена, и можно приступать к проверке данных.
Как проверить правильность считывания данных пользовательского индикатора индикатором Universal Alert
- Запустите настроенный индикатор Universal Alert с включенными параметрами Show buffer.
- Запустите настроенный пользовательский индикатор.
- Откройте окно "Окно данных".
- Наведите курсор или перекрестие на линию индикатора и сравните данные. Если данные совпадают, настройки верны. Обратите внимание, что если точность данных индикаторов различается, происходит округление в соответствии с математическими правилами; например, 1,6787687 будет округлено до 1,67877.


В этом примере мы подключили индикатор Universal Alert к индикатору Stochastic, а во втором примере — к индикатору Alligator. При наведении курсора на любую свечу данные индикаторов идентичны, что указывает на правильное подключение пользовательских индикаторов.
Далее вы можете начать тестирование сигнала.
Как тестировать Universal Alert в тестере стратегий
Для того чтобы в тестере стратегий на графике отображался пользовательский индикатор создайте шаблон для тестера стратегий.
Настройте свойства графика в удобном для вас формате (фон, цвет свечей и т. д.) и установите на график пользовательский индикатор с нужными настройками.
Обратите внимание: на график должен быть установлен только пользовательский индикатор; Universal Alert устанавливать не нужно, так как он будет запущен тестером стратегий.
После этого сохраните график в шаблоне под именем tester.tpl.

Для того чтобы в тестере стратегий не нужно было заполнять настройки для индикатора Universal Alert сохраните установленные настройки в шаблон под любым именем.

Перейдите в тестер стратегий и выберите вариант "Индикатор".

Перейдите на вкладку настройки и установите параметры тестирования.

Перейдите на вкладку «Входные параметры», щелкните правой кнопкой мыши по вкладке и выберите пункт «Загрузить» из выпадающего списка. Затем выберите ранее сохраненный шаблон для индикатора Universal Alert.

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


