Приветствуем.
Работая с программой TSLab, иногда, а иногда часто), возникают пожелания, в виде необходимости новых блоков, которые в составе софта отсутствуют. Многие сложности, на самом деле решаемы имеющимся функционалом, хотя иногда конечно не обойтись без программирования.
В комментариях к предыдущей статье, попросили добавить блок — месяц года. Просто взять и добавить блок — чаще всего это цикл через 6 рук пройдет от тикета с требованием к реализации, далее принятие решение о срочности и тд и тп. не суть важна в бюрократии, а в том что сделать можно все своими руками!
Итак начнем. В тслаб имеется блок — дата, который транслирует дату в формате ггммдд, его и будем использовать чтобы получить месяцы.
Первый и самый важный шаг — вывести блок дата на график, чтобы узнать о формате, так как в разных блоках могут быть разные вариации написания.

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

Самые «ленивые» же, могут скачать готовый собранный индикатор.))
Пишите так же свои пожелания и трудности, в комментариях. Всегда открытое общение так же в нашем телеграмм канале.
Разные люди ведут блог или один и тот же чел? Почему анонимно?
Если формат кубика "Дата" "ггммдд", то достаточно сделать
(Convert.ToInt32(Дата) % 10000 ) / 100
Сделайте пожалуйста кубик "Купить по рынку прямо сейчас наплевать на всё и никаких отложений в Менеджер Команд". Чтобы он срабатывал независимо от настроек Торгового Агента и фаз Луны.