• 11 марта 2019, 11:42
    • |
    • Igr
  • Еще

Робот показывает что с утра цены в стакане акций были перевернуты. Вы такое не наблюдали? Примерно на 8 секунде торгов Или у меня робот что то намудрил.....

ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
Вечером или завтра когда запишется можно будет посмотреть в архиве кускальпа что там с котировками было на протяжении дня. А по каким акциям такое наблюдалось? Самому любопытно посмотреть было бы на такую аномалию.
avatar

tranquility, по многим, сбер об и пр, газпром, гмк, лук, втб, мос б

отпишись потом нашёл что нет  

 

а ты в роботе делаешь поверку на правильность цен?  

avatar
Igr
tranquility, а ты весь стакан записываешь или только крайние цены, какую вообще информацию сохраняешь? 
avatar
Igr
Igr, уже стыдно говорить, но я не торгую все еще)) Зато вон к роботу логи в формате кускальпа почти допилил, с возможностью потом прогонять по ним бектесты. Сделки за день ртс со стаканом глубиной по 10 котировок в обе стороны и штукой пятью поводырями занимает около 5 мегабайт. А если только котировки распаковать как есть, получится 0.5 Гб. Это если из ордерлога их собирать, если записывать из квика, наверное, меньше должно получиться. По первому вопросу, похоже, обязательно надо проверять такие вещи, чтобы беды не случилось)
avatar

tranquility, у меня робот на луа написан, подключение обычное, так я сначала заметил что время сервера бывает не верное, как будто приходят прошлые данные, а теперь вот цены, сегодня сильная разница была, как будто стакан перевернут, до этого не замечал, прописал что б робот сообщение записывал когда цены не верны, и вот сегодня ещё несколько раз было когда цена покупки была равна цене продажи

может ещё какие подобные нюансы есть.... 

 

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

 

 

avatar
Igr
Ну, вот файл с котировками:
ftp://zerich.qscalp.ru/2019-03-11/SBER.2019-03-11.Quotes.qsh
вот утилита которая его распаковывает в текстовый вид:
www.qscalp.ru/store/qsh2txt.zip

В общем, у меня и у этой утилиты распаковывается все в два совершенно одинаковых файла, а тот алгоритм что у меня используется, если я не ошибаюсь, не очень устойчив к ошибке в данных (например, когда перепутаны биды и аски). Т.е. если бы там была какая-то аномалия, файлы бы получились разные. Так что, если интересно, копайтесь сами, если чего найдете, расскажите, пожалуйста!)
avatar

tranquility, ничего не нашёл

а у вас запись происходит в какой момент, если в стакане что то меняется, цены количество, и в любой строке? 

avatar
Igr
Igr, да, каждая новая запись котировок появляется при любых изменениях предыдущей. Сохраняются только изменения (при этом кодируются для уменьшения записываемого объема данных, чтобы на записывать лишние нули, а потом еще все архивируется gzip что дает ужимание еще раза в 2). А время котировок — это время когда они поступили в записывающую программу. Я еще в своем старом формате записи торгов столкнулся с проблемой что в квике котировки передаются без времени. От идеи брать время сервера почему-то пришлось отказаться (там вроде миллисекунд нет) и тоже пришлось брать время со своего компа в луа скрипте.
avatar

tranquility, ну время сервера я использую для определения начала торгов и окончания

да, нет миллисекунд 

но время компа и сервера точно отличается, тем более в миллисекундах, например момент начала торгов у вас не будет совпадать, так же как перерыв или окончание торгов

 

сейчас когда время сервера приходит не верное, то я в этот момент ничего не делаю, робот не воспринимает пришедшую в этот момент информацию… но на 100% не уверен что это верно, надо узнавать как информация поступает в квик, но у меня пока так

avatar
Igr
Igr, а насколько сильно может различаться время сервера в процессе торгов?
avatar

tranquility, не понял, отличаться от времени компа? точно не могу сказать, вроде не более секунды если время компа синхронизировано, иначе думаю что и больше секунды может быть 

а так бывает время сервера приходит прошлое, т.е. сейчас 14:19:34 а следующие 14:19:33, потом 14:19:34, 14:19:35 

 

при том я территориально далеко от Москвы, в Уфе, я думаю это тоже влияет 

avatar
Igr
Igr, я имел ввиду как велико различие должно быть чтобы Ваше ПО считало это ошибкой и останавливало торговлю. И как часто такое встречается?
avatar

tranquility, ну т.к. время системное только в секундах, вот их и сравниваю, если пришедшее время меньше предыдущего — значит ошибка 

как часто не могу точно сказать 

avatar
Igr
Igr, и насколько приходится останавливать торговлю? Или «до выяснения обстоятельств»? По поводу такой ситуации в описании формата .qsh пишут:
Независимо от количества потоков в файле, каждый кадр снабжается сквозным штампом времени, который может соответствовать моменту получения или записи данной порции информации. Ситуация, когда последующий штамп времени имеет меньшее значение, чем предыдущий, является допустимой, но некорректной с точки зрения логики потоков
Если время берется с одного компа который пишет данные, то это странно, что предыдущее время может быть меньше последующего. Может, оно как раз с сервера берется? Но тогда откуда там миллисекунды? Запутано все, в общем…
А! Вероятно, такая фигня может происходить в моменты синхронизации часов с сервером поставляющим точное время. Тогда может возникнуть скачок на какую-нибудь миллисекунду. А если пинг до сервера вдруг скакать начал, что вообще, наверное, и сотня-другая миллисекунд может получиться.
avatar

tranquility, как таковой паузы нет, робот не перестаёт работать, просто данные с неверным временем или ценой — игнорируются

 

ага

avatar
Igr

Только зарегистрированные и авторизованные пользователи могут оставлять ответы.

Залогиниться

Зарегистрироваться

теги блога Igr

....все тэги



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