Блог им. Cellinsky

tslab и c#

Я периодически поругиваю tslab, но есть у него вещи, которые искупают недостатки. Писал как-то о проблеме, что движок с некой периодичностью (раз в неделю, в несколько, итп) может потерять кусок данных за несколько дней. Было 4000 баров, а стало 3800. Это приводит к тому, что мы вошли например в позицию, а с утра данные за два последних дня куда-то уехали. Мы в позиции, а с чего не понятно. Такая фигня возникает исключительно с itinvest, и в целях своевременного выявления я привинтил внешний скрипт, контролирующий по журналу, что число баров в инструменте всегда увеличивается. Всё было хорошо довольно долго, но на прошлой неделе метод перестал работать. В журнал перестали попадать записи нужного формата, хотя ничего не трогалось. Привязаться к чему-то еще не удалось, значит пойдем другим путём. Давно я целился в tslab api, что-бы делать какие-то мелкие вещи, и ребята откровенно порадовали. Вот тут   — как ставить и интегрировать среду разработки.  Здесь  доходчиво объясняются основные моменты, а тама можно найти исходники всех кубиков от версии 2.0, поэтому не придется взрывать себе разум, восстанавливая логику если нужно всего-то поправить чуть-чуть оригинал. 

В моём случае, есть кубик 'Сообщение', который сбрасывает в журнал запись по триггеру. Если категория 'DEBUG' то только в лог, если любое другое, то еще и в окно журнала событий программы. Одна беда, мне нужно не просто сообщение, а еще и численное значение поданное на вход. Не проблема, берем MessageHandlers.cs , впиливаем туда доп. вход и его обработку в меру своего умения программировать и вуаля. Теперь можно завести на вход номер бара и спокойно его отслеживать. Красота.

Правда я так и не понял, зачем там два обработчика Execute, т.к. что в режиме лабы, что в агенте — выполняется второй… Но на всякий случай оставил. Правленый исходник выложил тут может кому еще пригодится.

  • обсудить на форуме:
  • TSLab
★21
12 комментариев
Правда я так и не понял, зачем там два обработчика Execute
В программирование есть понятие «переопределение методов». Если на пальцах — это методы с одинаковым названием, но разным набором входных параметров. Соответственно и выполнение пишется разное.

Соответственно, у вас подключение:
в журнал запись по триггеру...  на вход номер бара
что соответствует второму Execution.

Если бы вы подключили по другому (какой то набор триггеров судя по всему), то срабатывал бы первый Execution
avatar
Андрей К, в программировании это называется перегрузкой, т.е. когда название функции / метода одинаковое, но сигнатура разная )))

Константин, ой да, спутал с переопределением операторов, спс =)
avatar
Андрей К, это-то да, там в примерах достаточно случаев, когда разные Execution на разное число параметров (например кубик сложения, где число параметров от 2 до 6) — всё понятно. Но в данном случае входящих ровно два (в оригинале один), и условие запуска первого метода, стали для меня загадкой.
avatar
Поругивать надо, конечно! 
Но русских аналогов, к сожалению, нет.
avatar
VladMih, это точно. Так что всё беззлобно :)
avatar
торгую в айти… тслаб + смартком — проблем нет...
в чем проблема написать в техподержку?
avatar
ves2010, на СЛ проще черкануть. Причем сразу двух зайцев можно убить.
avatar
Всегда думал, что для шарпа есть студия. Ан нет, тут какой-то велосипед изобрели.
avatar

dnmsk, для шарпа — студия. Не волнуйтесь.

Для трейдеров — блок-схемы.

avatar
ch5oh, забыл поволноваться)
avatar

теги блога Sergey Cellinsky

....все тэги



UPDONW
Новый дизайн