ra81
ra81 личный блог
18 ноября 2014, 11:13

Финам превращается в кухню?

По просьбе алготрейдера, а так же товарища по несчастью, Александра выкладываю все нижеследующее. Так же параллельно все изложенопо этой ссылке на форуме TSLab
 Уже несколько месяцев борюсь с багами Финама и Транзака. Все было им написано, расписано, данные были переданы. Да, они немного сделали и ликвидировали потерю тиков, почти. Ранее была потеря в тысячи штук, сейчас редко доходит до 100. Все остальные проблемы пока не решены. Дублирование, левые номера сделок и так далее. При всем при этом разработчики этого добра похоже сами и не пробуют тестировать свой софт. Авось прокатит и никто не заметит баги, если они есть.  Но не вышло. Так как алгоритмы используемые мной активно используют тиковые данные, стал замечать что сигналы расходятся на двух машинах. Эти компы стоят в соседних комнатах. Было весьма странно. Начали копать данный вопрос. Подключил RA81 и он помог мне разрыть проблему и показать как мой брокер меня разводит. Поскольку требовать исправлений устал, решил выносить сор из избы. Возможно так проблему заметят и решат быстрее.

 Для анализа тиковых проблем использовался софт по конвертации бин файлов ТСЛаб в текстовики. Дальше самописная программа сравнивала текстовые файлы и получался результат. Сравнивались данные между двумя компами, и потом они же сравнивались в файлом биржи. Биржевые данные брались с фтп сервера биржи.Были, так же, проверены брокеры АЛОР и ПЛАЗА. Там все чисто и совпадает полностью с биржей (время для алора и плазы не проверялось на совпадение с биржевым).Проверяемый инструмент RIZ4.

Список обнаруженных проблем:

  1. Расхождения в данных между двумя машинами
  2. Потеря тиков
  3. Дублирование тиков
  4. Кривое время и номер сделки
  5. В номера сделок RIZ попадают сделки от Лукойла.
  6. Время отлично от биржевого.

Если нет желания ломать глаза над испорченными картинками (которые смартлаб превращает в нечитаемые) и кривым форматированием, можно все это прочитать в другом месте с хорошим качеством

Расхождения в данных между двумя машинами

Если два компа стоят в одной комнате то результаты полученные от транзака могут быть совершенно разными. Вот пример за 11.11.2014 с двух машин в одной комнате. Как видим разница в числе строк достаточно велика (смотреть последнюю строчку).Финам превращается в кухню?
При этом ниже будет показано что на одной машине много дублей (повторения данных), а на другой их нет. При этом число потерянных(есть в биржевых данных но транзак их не прислал) тиков тоже различается на обоих машинах.

Потеря тиков

Суть проблемы в том что часть тиков теряется и не доходит до клиента. Проверялось на нескольких машинах. Сравнивалось все с текстовиком полученным с фтп биржи РТС. Число потерь для Ri доходило до нескольких тысяч. В среднем от 100 до 1000 тиков. После некоторых фиксов со стороны финама стало лучше, но не устранили до конца.

Потеря тиков было проверена по логам транзак коннектора и подтсверждается то, что тики реально не приходили и ТСЛаб их не мог потерять.
Бывает что потеря только одной сделкиФинам превращается в кухню?

Еще отличия от биржевой информации имеются.Финам превращается в кухню?
Сравнение тиков производится по трем параметрам: номер сделки, цена и объем. Если все 3 совпали, тогда сделки считаются идентичными. Время не используется, так как с миллисекундами у транзака были проблемы, как увидим ниже.
Лишних продублированных тиков целых 628.
Были потеряны:Id:970581134; Price:103450; Volume:1; Date:2014-11-11 10:00:00.000Id:970828687; Price:103150; Volume:1; Date:2014-11-11 12:06:37.007Id:970936123; Price:102920; Volume:1; Date:2014-11-11 13:08:33.137Id:970938231; Price:102970; Volume:1; Date:2014-11-11 13:09:02.060
За этот же день за 11 ноября 2014 года с другой машины стоящей в той же комнате результат следующий:Финам превращается в кухню?
Потеряны тики:Id:970581134; Price:103450; Volume:1; Date:2014-11-11 10:00:00.000Id:970713564; Price:103720; Volume:1; Date:2014-11-11 11:02:29.857Id:970736109; Price:103840; Volume:1; Date:2014-11-11 11:11:21.443Id:970829358; Price:103180; Volume:4; Date:2014-11-11 12:07:01.583Id:970852703; Price:102990; Volume:1; Date:2014-11-11 12:15:59.397Id:971104243; Price:103170; Volume:1; Date:2014-11-11 14:51:26.823Id:971155754; Price:102330; Volume:1; Date:2014-11-11 15:24:38.530Id:971165279; Price:101980; Volume:10; Date:2014-11-11 15:26:55.640Id:971265256; Price:102480; Volume:2; Date:2014-11-11 16:11:33.717Id:971481847; Price:102430; Volume:3; Date:2014-11-11 17:51:26.330

Дублирование тиков

Часть сделок повторяется в файле тиков. Проверка производилась по номерам, цене и объему сделок и было обнаружено что некоторые номера повторяются. Число дублей было меньше чем число потерь, но всегда идет вместе с потерями.Финам превращается в кухню?
Как видим ниже слева, появилась пачка тиков которые в прошлом уже были и их время и номера говорят о том что они явно не вписываются в текущем месте. Это как раз и есть дубль тики.Финам превращается в кухню?Слава богу ТСЛаб отрабатывает дубли нормально и в выдаче пользователю их убирает. Сохраняет все как шлет финам, но потом лишнее ликвидирует. Поэтому данный трабл не сказывается на торговле.

Кривое время и номер сделки

Проблема имеет смешанный характер. Если сравнить два источника с разных компов, то видим что попадаются места где часть параметров тика не совпадает с параметрами другой машины. Пример на картинкеФинам превращается в кухню?Видно что порядоковый номер тика совпадает, НО время тика справа неожиданно большое и не вписывается. При этом миллисекунды совпадают а вот секунды нет. При этом так же отличается номер сделки. Все остальные параметры совпадают. Значит проблема в кривых данных по времени и номеру сделки.
Так же попадаются варианты где кривой ТОЛЬКО номер сделки, а время при этом нормальное.Финам превращается в кухню?

В номера сделок RIZ попадают сделки от Лукойла.

У нас есть проблемный тик. Он тупо не вписался в порядок. Имеет номер и время выбивающееся из общей массы.
Финам превращается в кухню?
Проверяем через тупой скрипт тслаба результат для проблемного тика
Финам превращается в кухню?
Как видим время и номер совпадают. То есть в бинарнике тслаба ТОЧНО записано такое же время какое записано в текстовике, который получили из бинарника. Конвертер бинарных файлов не тупит и работает верно.
Если вытащим из тслаба предыдущий тик и последующий, дабы проверить правильный ли порядок тиков нам дает ТСЛаб, а то может быть он их тоже неверно нам выдает?
Финам превращается в кухню?
Ниже из лога транзака видим что тик  970713563 есть (сей тик расположен в бинарном файле аккурат перед 638), и время его совпадает. То есть ТСЛаб честно попытался отсортировать то барахло что нам прислал транзак и выдает пользователю уже в отсортированном виде! Порядок выдачи ВЕРНЫЙ.
Посмотрим теперь в логи от транзаковского коннектора Финама. Как известно коннектор полностью отвечает за передачу данных, и даже Ведет свой лог файл. ТСлаб тут не имеет отношения.Видим сначала 563 тик.
Финам превращается в кухню?
Далее видим даже по времени получения инфы что пришел 638 тик. Между 563 и 638 НЕ было никаких данных. Время тоже видим совпадает с временем из бинарного файла на картинке выше.
Финам превращается в кухню?
Таким образом ТСЛаб честно записал все то, что пришло от Транзака в том же совершенно порядке. Все сохранил в бинарник.
Далее смотри файл с фтп биржи со сделками за этот день и что видим???Финам превращается в кухню?
638 сделка вообще не по RIZ4 а по LKZ4 прошла. То есть совсем по другому инструменту. При этом так же видим что предыдущая от 638 по RIZ4 была 632 сделка, а последующей была 659. То есть ТСЛаб нам сделки, выше на картинке, выводил правильно! В правильном порядке, в том в котором сделки совершались на бирже. Только вот 638 сделка была по другому инструменту и ВРЕМЯ у нее другое для Лукойла судя по файлу биржи. Но ТСлаб об этом знать не мог.
При этом наблюдаем что на другой машине как раз сделка пришла правильная и номер ее попадает в общий порядокФинам превращается в кухню?
Так что еще раз видим отличие получаемых данных на одной машине и на другой. Что очень здорово.

Время сделки отлично от биржевого.

Посмотрим на сделки возле выделенной. Одну сверху и одну снизу. Это взято из файла тслаба. То есть это то что нам прислал Транзак. В том же порядке.Финам превращается в кухню?
Теперь эти же сделки но уже в файле от биржи. ВРЕМЯ НЕ СОВПАДАЕТ! Так же смотрим другие сделки ниже по тексту. Тоже самое. Время отличается.Финам превращается в кухню?
Финам не может транслировать время сделки без искажения? Что еще он искажает?
Для доп проверки взял случайную сделку. Сравниваю информацию из бинарников ТСлаба и файл биржиФинам превращается в кухню?
Как видим время отличается. Лезу в лог Транзака чтобы проверить какое пришло время сделки
Финам превращается в кухню?
То есть финам прислал именно то время которое в бинарниках ТСлаба, НО оно отлично от времени биржи.
68 Комментариев
  • Cheshirscy
    18 ноября 2014, 11:19
    Фига се выкрутасы
  • Русанов Андрей
    18 ноября 2014, 11:21
    что за жалобы?
    пиши в поддержу!
  • Borrris
    18 ноября 2014, 11:24
    +4 Интересно было почитать… как клиенту Финама ))))
  • Жиробас
    18 ноября 2014, 11:26
    матрица какая то

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

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