Входящие параметры
Измените поведение индикаторов или стратегий с помощью набора входящих параметров.

Общее

В предыдущем разделе мы показали вам, как создать базовый индикатор с помощью Visual Studio с расширением Quantower Algo и использовать его на графике в торговой платформе. Мы создали индикатор Simple Moving Average с жестко запрограммированными параметрами. Но что, если нам нужно изменить эти параметры? Например, мы хотим использовать цены открытия вместо цен закрытия или использовать другой период. Перекомпилировать индикатор каждый раз не очень удобно, и мы предоставляем вам возможность легкой настройки ваших скриптов с помощью так называемых входных параметров.

Что такое входящий параметр?

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

Типы входящих параметров

Текст

Иногда может потребоваться, чтобы пользователь предоставил некоторую текстовую информацию, например, для отображения на графике. Для этого вам нужно объявить строковую переменную и пометить ее как InputAttribute. Вам необходимо указать имя входного параметра, которое будет отображаться на экране настроек:
1
[InputParameter("Text")]
2
public string text;
Copied!
Если вы вызовете экран настроек, вы увидите текстовое поле, которое вы можете использовать для ввода значения. Вот и все - ваш первый входной параметр готов:
Пример параметра ввода текста на экране индикатора «Настройки»
Если у вас есть несколько входящих параметров и вы хотите расположить их в соответствующем порядке, вы можете применить параметр SortIndex для каждого Входящего параметра:
1
[InputParameter("First text", 1)]
2
public string firstText;
3
4
[InputParameter("Second text", 2)]
5
public string secondText;
6
7
[InputParameter("Third text", 3)]
8
public string thirdText;
Copied!
Как видите, параметры отображаются в указанном порядке:
Отсортированные входящие параметры

Логический

Если вам нужен простой переключатель, например, для включения опции, вы можете использовать переменную типа bool с атрибутом InputParameter:
1
[InputParameter("Boolean")]
2
public bool boolean;
Copied!

Число

Один из важнейших типов входных параметров - числа. Входные параметры могут применяться к переменным типа int, double, long и decimal:
1
[InputParameter("Integer")]
2
public int intNumber;
Copied!
Вы можете указать дополнительные параметры - минимальное / максимальное значение, приращение и десятичные разряды.
1
[InputParameter("Double", 0, 0.00001, 10, 0.00001, 5)]
2
public double doubleNumber;
Copied!

Символ

Иногда может потребоваться возможность выбора символа, например, в случае расчета корреляции между символом на графике и другим символом. И снова - все, что вам нужно, просто объявить переменную и отметить ее атрибутом InputParameter:
1
[InputParameter("Symbol")]
2
public Symbol symbol;
Copied!

Акаунт

Если ваш скрипт выполняет какую-либо торговую операцию, вам необходимо указать настройки учетной записи. Используйте для этого переменную типа Account:
1
[InputParameter("Account")]
2
public Account account;
Copied!

Дата Время

Обычно настройки DateTime используются для указания некоторого диапазона истории, например, левой и правой границы загруженной истории:
1
[InputParameter("Date")]
2
public DateTime dateTime;
Copied!

Цвет

Параметры ввода цвета сохраняют значение цвета в формате RGB:
1
[InputParameter("Color")]
2
public Color color;
Copied!

Список с опциями

Список с опциями Входной параметр позволяет выбрать значение из предопределенного списка возможных состояний
1
[InputParameter("Simple price types list", 1, variants: new object[]{
2
"Close", PriceType.Close,
3
"Open", PriceType.Open,
4
"High", PriceType.High,
5
"Low", PriceType.Low,
6
"Typical", PriceType.Typical,
7
"Median", PriceType.Median,
8
"Weighted", PriceType.Weighted
9
})]
Copied!

Заключение

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