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

Блок 'Внешний скрипт' может принимать несколько инструментов. В этом случае класс скрипта нужно наследовать от интерфейса 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);
        }
    }
}

Результат:

Last updated