Компания 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
    Норм., полезный пост. Не по индикатору, а по сути.

    Разные люди ведут блог или один и тот же чел? Почему анонимно?
      • VladMih
        03 февраля 2021, 17:57
        Компания TSLab, имхо зря. Всегда приятней общаться с человеком, а не с «абстракцией». К тому же, при отличном отношении к кампании, с её отдельными сотрудниками не всегда всё гладко — поэтому хотелось бы знать кому… лучше не высказывать своё мнение.

        Не критика, обоснованное пожелание. Примите как лекарство.
        Чисто профилактическое — витаминка )
  • ch5oh
    03 февраля 2021, 15:36

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

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

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

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

      • ch5oh
        03 февраля 2021, 21:25

        Компания TSLab, оказывается, недостаточно. Если бы всё было так просто, человек с моим опытом не просил бы Вас сделать такой кубик. Понятно, можно и самому написать (теоретически). Но хотелось бы некоторое стандартное решение. Проверенное Вашими тестерами и армией других Пользователей.


        ПС Не хотел вдаваться в подробности. В 2-х словах суть проблемы: при каких-то непонятных мне обстоятельствах программа почему-то решает что "Сигнал на открытие позиции пропущен" и несмотря на использование в схеме кубика "Открыть позицию по рынку" позиция не открывается, на графике рисуются желтые маркеры пропущенной сделки и далее меня посылают в… Менеджер Команд, конечно.

         

        Первые несколько раз было смешно. Попытка воспроизвести ситуацию на модельном примере проблему не повторила. Получается, что «специфика исполнения» происходит только во время реальной торговли на реальном боевом алгоритме.

         

        =) Заговор, однако.

          • ch5oh
            03 февраля 2021, 21:36

            Компания TSLab, Вот и нужен кубик, который будет свободен от этих мерехлюндий. Соединение с брокером есть? Есть. Оно рвалось в этот момент? Нет. Статус коннектора не поменялся с зеленого на какой-то иной цвет.

             

            Будьте любезны швырнуть рыночную заявку в рынок.

        • Антон Иванов
          04 февраля 2021, 14:33
          ch5oh, вот поддержу всеми руками и ногами, это жутко бесит. 
          • Носорог
            04 февраля 2021, 21:56
            Антон Иванов, не сталкивался, но в шоке что так может быть. :(
          • ch5oh
            04 февраля 2021, 22:59
            Антон Иванов, значит, не только у меня такая болезнь? Уже не так одиноко в палате. =)
  • Носорог
    04 февраля 2021, 21:54
    Я только начал осваивать TSLab. Скажите как можно избавиться от вывода всех чисел в финансовом формате (через пробел каждые 3 знака). Для дат и времени это смотрится, простите конечно, но и некрасиво, и не практично. 
     
    • ch5oh
      04 февраля 2021, 22:58
      Носорог, вывод куда? На Контрольную Панель?
      • Носорог
        05 февраля 2021, 04:56
        ch5oh, да
        • ch5oh
          05 февраля 2021, 07:54

          Носорог, видимо, здесь речь о том, что было бы правильно дать возможность Пользователям самим форматировать числа в элементах управления на Контрольной Панели?

           

          Например, при использовании GridPane (вывод данных в табличном виде) у нас есть возможность указывать формат отображения чисел. Нужна аналогичная возможность для NumericValue и NumericUpDown.

           

          =) Пишем все вместе запрос в техподдержку и со временем эта возможность обязательно появится.

           

          А вот кубик на безусловный вывод заявок в рынок, видимо, придется писать самим. Чувствуется по разговору (по его отсутствию), что проблематика не была до конца понята вышестоящим начальством...

  • Носорог
    05 февраля 2021, 08:34

    «было бы правильно дать возможность Пользователям самим форматировать числа в элементах управления на Контрольной Панели» — это идеальная формулировка мысли, которую я пытался передать :)

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

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