Главная таблица

Главная таблица предназначена для вывода результатов при реальной торговле. Результаты выводятся в колонки, которые задаются с помощью кода (пример реализации ниже). У каждой колонки имеется "Название" и "Значение".

На скриншоте ниже, представлен пример дополнительных колонок -- "Кол-во 1", "Кол-во 2" и "PNL", определенные для вывода информации о кол-ве купленных валют.
Дополнительные столбцы для вывода информации
Возможности использования главной таблицы:

1) Выводить значения результатов робота

2) Закрашиваться колонки цветом

3) Создать неограниченное кол-во колонок


Пример реализации вышеописанных колонок:


1) Создание таблицы
За создание таблица отвечает метод AddColumnToMainTable, в котором необходимо создать список колонок.
Элемент в списке будет соответствовать номеру колонке в главной таблице при запуске робота в реальном времени.

public override List<ScanerParamModel> AddColumnToMainTable()
{
List<ScanerParamModel> list = new List<ScanerParamModel>()
{
new ScanerParamModel()
{
Name = "Кол-во 1",
TypeValue = CfgSourceEts.EnumScanerParamType.typeString
},
new ScanerParamModel()
{
Name = "Кол-во 2",
TypeValue = CfgSourceEts.EnumScanerParamType.typeString
},
new ScanerParamModel()
{
Name = "PNL",
TypeValue = CfgSourceEts.EnumScanerParamType.typeString
},
};

return list;
}

2) Вывод значений

MainTableColumn[0].ValueString = "0.3456";
MainTableColumn[1].ValueString = "0.11856;"
MainTableColumn[2].ValueString = "0.15";

Данное присвоение значений к колонкам таблица происходит в методу Execute

Возможные ошибки при создании главной таблицы

При создании колонок может возникнуть ошибка, если к свойству Name (при создании нового элемента в списке) присвоить название инструмента по которому робот торгует.

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