ParamOptimization
API: Роботы (Script)
Класс, для создания пользовательского интерфейса
Описание класса ParamOptimization для возможности вводить пользователю данные от числовых значений разных типов до булевого значения.

Например:
Объект данного класса имеет 6 перегрузок:

1. Параметры конструктора для bool значений
Параметры:
public ParamOptimization(bool valBool, string nameParam, string description = "")

Создание конструктора
public ParamOptimization Reverse = new ParamOptimization(true, "Реверс", "Реверс позиций");

Обращение к значению переменной в коде:
bool valueReverse = Reverse.ValueBool;

Результат в ETS
2. Параметры конструктора для ввода времени

Параметры:
public ParamOptimization(TimeSpan valueTime, string nameParam, string description = "")

Создание конструктора
public ParamOptimization Time = new ParamOptimization(new TimeSpan(5,8,14), "Время", "Используется время для расчетов");

Обращение к переменной в коде
DateTime time = Time.ValueDateTime;

Результат в ETS

3. Параметры конструктора использования второго инструмента

Параметры:
public ParamOptimization(Script.EnumTypeGetIEnumerable typeGetIEnumerable, string nameParam, string description = "", bool visibleAccount = true)

Создание конструктора
public ParamOptimization Instr = new ParamOptimization(EnumTypeGetIEnumerable.GetSeccodeList, "Использование дополнительного инструмента", "Инструмент");



Обращение к инструменту в коде, к примеру к цене закрытия свечи
double result = Instr.FinInfo.Candles.CloseSeries[bar];

Результат в ETS
4. Параметры конструктора для загрузки файла

Параметры:
public ParamOptimization(string valueString, string nameParam, bool controlPath, string description="");

Создание конструктора
public ParamOptimization Value = new ParamOptimization("", "Путь", true, "Выбор пути файла");

Обращение к переменной в коде
string val = Value.ValueString;

Результат в ETS
Если переменная controlPath имеет значение false, то вместо выбора файла, будет текстовое поле
5. Параметры конструктора для выбора string значений

Параметры:
public ParamOptimization(string valueString, List<string> list, string nameParam, string description)

Создание конструктора
public ParamOptimization Value = new ParamOptimization("EMA", new List<string>() { "EMA", "SMA" }, "Скользящая средняя", "Тип скользящей средней для расчетов");

Обращение к выбранному значению в коде
string val = Value.ValueString;

Результат в ETS
6. Параметры конструктора для ввода double значений

Параметры:
public ParamOptimization(double value, double startStep, double endStep, double stepOptimization, string nameParam, string description = "")

Создание конструктора
public ParamOptimization Value = new ParamOptimization(36, 0, 5, 1, "Значение", "Входное значение для расчетов");

Обращение к переменной в коде
double val = Value.Value;
double val = Value.ValueInt;

Результат в ETS
Если пользователь введет число 36,6 и будет обращение в коде: double val = Value.ValueInt, то значение округляется до 37, что может привести к неправильным расчетам.
Использование индикаторов

Параметры:

public CreateIndicator(Script.EnumIndicators name, int pane, string addName)

Создание индикатора «Фрактал»

public CreateIndicator FractalsDotted = new CreateIndicator(EnumIndicators.FractalsDotted, 0, "")

Конструктор класса имеет 3 параметра:
  1. EnumIndicators – перечисления(enum) индикаторов;
  2. Номер панели, на которую выводится индикатор;
  3. Название.


Взаимодействие с индикатором в коде

var Up = FractalsDotted.param.LinesIndicators[0].LineParam[0].Value
var Down = FractalsDotted.param.LinesIndicators[1].LineParam[0].Value

Обращение к верхнему фракталу
double upValue = FractalsDotted.param.LinesIndicators[1].PriceSeries[bar]

Обращение в нижнему фракталу
double downValue = FractalsDotted.param.LinesIndicators[0].PriceSeries[bar]


Метод ChangeParamOptimization позволяет в коде поменять(изменить) значение, указанное в ParamOptimization

Например, объявим ParamOptimization со значением double и изменим с помощью выше указанной функцией.

public ParamOptimization Value = new ParamOptimization(36, 5, 5, 1, "Значение");

Присвоим новое значение и изменим.
Value.ValueInt = 5;

ChangeParamOptimization(Value);

Таким образом, значение 36 заменится на значение 5.