rss

Профиль компании

Финансовые компании

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

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

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

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

  • обсудить на форуме:
  • TSLab
★5
17 комментариев
Норм., полезный пост. Не по индикатору, а по сути.

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

Не критика, обоснованное пожелание. Примите как лекарство.
Чисто профилактическое — витаминка )
avatar

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

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

avatar

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

avatar
ch5oh, достаточно использовать блок открытие по рынку и не ставить настройки лимитным ордером.)

avatar

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


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

 

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

 

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

avatar
ch5oh, вполне реально если были тормоза у брокера
avatar

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

 

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

avatar
ch5oh, вот поддержу всеми руками и ногами, это жутко бесит. 
avatar
Антон Иванов, не сталкивался, но в шоке что так может быть. :(
avatar
Антон Иванов, значит, не только у меня такая болезнь? Уже не так одиноко в палате. =)
avatar
Я только начал осваивать TSLab. Скажите как можно избавиться от вывода всех чисел в финансовом формате (через пробел каждые 3 знака). Для дат и времени это смотрится, простите конечно, но и некрасиво, и не практично. 
 
avatar
Носорог, вывод куда? На Контрольную Панель?
avatar
ch5oh, да
avatar

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

 

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

 

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

 

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

avatar

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

avatar

теги блога Компания TSLab

....все тэги



UPDONW