Несколько инструментов

Блок Внешний скрипт может принимать несколько инструментов. В этом случае класс скрипта нужно наследовать от интерфейса IExternalScriptMultiSec.

Существует два варианта подключения блоков.

Вариант 1:

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

Вариант 2:

Добавить блок Мульти-источник, в нем выбрать необходимые инструменты.
Двойным кликом по мультиисточнику открывается форма, инструменты выбираются списком.
Мульти-источник соединить с блоком Внешний скрипт.
В примере добавлены блоки Инструмент по номеру. Этот блок извлекает инструмент по указанному номеру из Мульти-источника и подает его на панель графика. Данный блок можно не добавлять если скрипт (c#) сам выводит графики.

Пример скрипта:

В метод Execute приходит массив инструментов (ISecurity[]). Выведем в лог список названий инструментов.

using System.Text; using TSLab.Script; using TSLab.Script.Handlers; namespace MyLib { public class MultiSecurities : IExternalScriptMultiSec { public void Execute(IContext ctx, ISecurity[] securities) { var sb = new StringBuilder(); for (int i = 0; i < securities.Length; i++) sb.Append($"{i + 1}.{securities[i].Symbol}; "); ctx.Log(sb.ToString(), MessageType.Info, true); } } }

Результат: