Компания TSLab
Компания TSLab Блог компании TSLab
03 февраля 2021, 14:57

Логические и математические рассуждения при реализации алгоритма

Приветствуем.

Работая с программой 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 блоков
Логические и математические рассуждения при реализации алгоритма

Самые «ленивые» же, могут скачать готовый собранный индикатор.))
Пишите так же свои пожелания и трудности, в комментариях. Всегда открытое общение так же в нашем телеграмм канале.

17 Комментариев
  • VladMih
    03 февраля 2021, 15:20
    Норм., полезный пост. Не по индикатору, а по сути.

    Разные люди ведут блог или один и тот же чел? Почему анонимно?
  • ch5oh
    03 февраля 2021, 15:36

    Если формат кубика "Дата" "ггммдд", то достаточно сделать

    (Convert.ToInt32(Дата) % 10000 ) / 100

  • ch5oh
    03 февраля 2021, 15:49

    Сделайте пожалуйста кубик "Купить по рынку прямо сейчас наплевать на всё и никаких отложений в Менеджер Команд". Чтобы он срабатывал независимо от настроек Торгового Агента и фаз Луны.

  • Носорог
    04 февраля 2021, 21:54
    Я только начал осваивать TSLab. Скажите как можно избавиться от вывода всех чисел в финансовом формате (через пробел каждые 3 знака). Для дат и времени это смотрится, простите конечно, но и некрасиво, и не практично. 
     

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн