TSLab может использовать индикаторы написанные на .NET и собранные в библиотеку .dll.
Для примера напишем индикатор, который считает цену OHLC4 по формуле:
Создадим новый проект в Visual Studio и назовем MyHandlers. Как создавать проект смотрите в статье Создание проекта в Visual Studio.
В проект добавим библиотеки TSLab.Script.dll, TSLab.Script.Handlers.dll, TSLab.DataSource.dll, TSLab.Utility.dll. Создадим новый класс OHLC4 и напишем следующий код:
Мы создали класс OHLC4 от интерфейса IBar2DoubleHandler. Этот интерфейс реализует один метод Execute, который принимает на вход инструмент и выдает список чисел.
У класса мы указали атрибут HandlerCategory, с названием MyHandlers. Это название категории куда будет помещен наш индикатор в TSLab. HelperName - указывает название индикатора, которое будет отображаться с TSLab, можно написать любое другое название.
В методе Execute мы сделали расчет значения OHLC4 простым выражением:
Теперь можно собрать проект нажав F6. Если все сделали правильно, то студия сохранит, соберет проект и создаст файл MyHandlers.dll в папке проекта \bin\Debug.
Этот файл надо скопировать в папку TSLab: %APPDATA%\..\Local\TSLab\TSLab 2.0\Handlers
Теперь запустим TSLab и в режиме редактора должен отобразиться наш новый индикатор.
Теперь подключим наш новый индикатор, выберем инструмент и запустим.
Видим что на графике отобразилась синяя линия, это и есть цена OHLC4.
Чтобы каждый раз вручную не копировать файл .dll можно в студии прописать команду для автоматического копирования. Файл будет сам копироваться после каждой сборки проекта.
Но следует помнить, что перед сборкой нужно закрыть TSLab, т.к. файл не сможет перезаписаться.
Команда (устарело): xcopy /Y MyHandlers.dll "%APPDATA%\..\Local\TSLab\TSLab 2.0\Handlers"
Команда (новая): xcopy /Y "$(TargetDir)$(TargetFileName)" "%LOCALAPPDATA%\TSLab\TSLab 2.0\Handlers"