Работая с TSLab, в некоторых ситуациях возникает потребность в новых блоках, не реализованных в программе. Многие сложности, на самом деле, решаемы имеющимся функционалом, хотя иногда, конечно, не обойтись без программирования.
Так как процесс разработки нового функционала программистами TSLab — достаточно трудоемкий процесс, состоящий из многих этапов, то от момента создания запроса до непосредственной реализации может пройти не одна неделя, а то и месяц (в зависимости от сложности задания). По этому многие вопросы, например, связанные с созданием индикаторов пользователь может решить своими руками!
Создание индикатора «Месяц года»
Итак, начнем. В TSLab имеется блок «Дата» , который транслирует дату в формате ггммдд , его и будем использовать, чтобы получить месяцы.
Первый и самый важный шаг — вывести блок дата на график, чтобы узнать о формате, так как в разных блоках могут быть разные вариации написания.
Следующий шаг — построить логику в голове, каким образом достать месяц из данного варианта формата. Прежде всего не воспринимаем это как дату, а принимаем ее за обычную число "161122 ". Чтобы добраться до месяцев, мне нужно прежде всего исключить год.
Значит мне нужно привести число к виду "160000 ". Далее из даты вычитаем ее и получаем остаток, то есть "1122 "
Чтобы получить такой вариант, достаточно использовать матметоды, которые уже встроены в редакторе формулы.
(Math.Truncate(Дата / 10000)) * 10000
Для начала 161122 делим на 10 000 и получится число "16,1122" , а используемый метод убирает десятичные и остается целое число "16" которое умножив на 10000 получим необходимое значение.
Далее процедуру нужно повторить с остатком из разницы на предыдущем шаге.
Math.Truncate(Формула1 / 100)
Таким образом мы получаем месяц года в понятном формате 1, 2, 3....12.
Ну, и чтобы не делать такие блоки каждый раз, когда они необходимы, достаточно создать свой собственный индикатор и пользоваться когда он нужен. Ниже скрин как создать индикатор, это всего 6 блоков
Пишите так же свои пожелания и трудности, в комментариях. Всегда открытое общение так же в нашем телеграм канале .