Робот показывает что с утра цены в стакане акций были перевернуты. Вы такое не наблюдали? Примерно на 8 секунде торгов
Или у меня робот что то намудрил.....
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
Вечером или завтра когда запишется можно будет посмотреть в архиве кускальпа что там с котировками было на протяжении дня. А по каким акциям такое наблюдалось? Самому любопытно посмотреть было бы на такую аномалию.
Igr, уже стыдно говорить, но я не торгую все еще)) Зато вон к роботу логи в формате кускальпа почти допилил, с возможностью потом прогонять по ним бектесты. Сделки за день ртс со стаканом глубиной по 10 котировок в обе стороны и штукой пятью поводырями занимает около 5 мегабайт. А если только котировки распаковать как есть, получится 0.5 Гб. Это если из ордерлога их собирать, если записывать из квика, наверное, меньше должно получиться. По первому вопросу, похоже, обязательно надо проверять такие вещи, чтобы беды не случилось)
tranquility, у меня робот на луа написан, подключение обычное, так я сначала заметил что время сервера бывает не верное, как будто приходят прошлые данные, а теперь вот цены, сегодня сильная разница была, как будто стакан перевернут, до этого не замечал, прописал что б робот сообщение записывал когда цены не верны, и вот сегодня ещё несколько раз было когда цена покупки была равна цене продажи
может ещё какие подобные нюансы есть....
при том когда цены перевернулись робот пытался отправить заявку где вместо количества фьючей стояла вообще не цифра, как так получилось так и не знаю… но это спасло от лишних убытков) заявка не прошла
Ну, вот файл с котировками:
ftp://zerich.qscalp.ru/2019-03-11/SBER.2019-03-11.Quotes.qsh
вот утилита которая его распаковывает в текстовый вид: www.qscalp.ru/store/qsh2txt.zip
В общем, у меня и у этой утилиты распаковывается все в два совершенно одинаковых файла, а тот алгоритм что у меня используется, если я не ошибаюсь, не очень устойчив к ошибке в данных (например, когда перепутаны биды и аски). Т.е. если бы там была какая-то аномалия, файлы бы получились разные. Так что, если интересно, копайтесь сами, если чего найдете, расскажите, пожалуйста!)
Igr, да, каждая новая запись котировок появляется при любых изменениях предыдущей. Сохраняются только изменения (при этом кодируются для уменьшения записываемого объема данных, чтобы на записывать лишние нули, а потом еще все архивируется gzip что дает ужимание еще раза в 2). А время котировок — это время когда они поступили в записывающую программу. Я еще в своем старом формате записи торгов столкнулся с проблемой что в квике котировки передаются без времени. От идеи брать время сервера почему-то пришлось отказаться (там вроде миллисекунд нет) и тоже пришлось брать время со своего компа в луа скрипте.
tranquility, ну время сервера я использую для определения начала торгов и окончания
да, нет миллисекунд
но время компа и сервера точно отличается, тем более в миллисекундах, например момент начала торгов у вас не будет совпадать, так же как перерыв или окончание торгов
сейчас когда время сервера приходит не верное, то я в этот момент ничего не делаю, робот не воспринимает пришедшую в этот момент информацию… но на 100% не уверен что это верно, надо узнавать как информация поступает в квик, но у меня пока так
tranquility, не понял, отличаться от времени компа? точно не могу сказать, вроде не более секунды если время компа синхронизировано, иначе думаю что и больше секунды может быть
а так бывает время сервера приходит прошлое, т.е. сейчас 14:19:34 а следующие 14:19:33, потом 14:19:34, 14:19:35
при том я территориально далеко от Москвы, в Уфе, я думаю это тоже влияет
Igr, и насколько приходится останавливать торговлю? Или «до выяснения обстоятельств»? По поводу такой ситуации в описании формата .qsh пишут:
Независимо от количества потоков в файле, каждый кадр снабжается сквозным штампом времени, который может соответствовать моменту получения или записи данной порции информации. Ситуация, когда последующий штамп времени имеет меньшее значение, чем предыдущий, является допустимой, но некорректной с точки зрения логики потоков
Если время берется с одного компа который пишет данные, то это странно, что предыдущее время может быть меньше последующего. Может, оно как раз с сервера берется? Но тогда откуда там миллисекунды? Запутано все, в общем…
А! Вероятно, такая фигня может происходить в моменты синхронизации часов с сервером поставляющим точное время. Тогда может возникнуть скачок на какую-нибудь миллисекунду. А если пинг до сервера вдруг скакать начал, что вообще, наверное, и сотня-другая миллисекунд может получиться.
tranquility, по многим, сбер об и пр, газпром, гмк, лук, втб, мос б
отпишись потом нашёл что нет
а ты в роботе делаешь поверку на правильность цен?
tranquility, у меня робот на луа написан, подключение обычное, так я сначала заметил что время сервера бывает не верное, как будто приходят прошлые данные, а теперь вот цены, сегодня сильная разница была, как будто стакан перевернут, до этого не замечал, прописал что б робот сообщение записывал когда цены не верны, и вот сегодня ещё несколько раз было когда цена покупки была равна цене продажи
может ещё какие подобные нюансы есть....
при том когда цены перевернулись робот пытался отправить заявку где вместо количества фьючей стояла вообще не цифра, как так получилось так и не знаю… но это спасло от лишних убытков) заявка не прошла
ftp://zerich.qscalp.ru/2019-03-11/SBER.2019-03-11.Quotes.qsh
вот утилита которая его распаковывает в текстовый вид:
www.qscalp.ru/store/qsh2txt.zip
В общем, у меня и у этой утилиты распаковывается все в два совершенно одинаковых файла, а тот алгоритм что у меня используется, если я не ошибаюсь, не очень устойчив к ошибке в данных (например, когда перепутаны биды и аски). Т.е. если бы там была какая-то аномалия, файлы бы получились разные. Так что, если интересно, копайтесь сами, если чего найдете, расскажите, пожалуйста!)
tranquility, ничего не нашёл
а у вас запись происходит в какой момент, если в стакане что то меняется, цены количество, и в любой строке?
tranquility, ну время сервера я использую для определения начала торгов и окончания
да, нет миллисекунд
но время компа и сервера точно отличается, тем более в миллисекундах, например момент начала торгов у вас не будет совпадать, так же как перерыв или окончание торгов
сейчас когда время сервера приходит не верное, то я в этот момент ничего не делаю, робот не воспринимает пришедшую в этот момент информацию… но на 100% не уверен что это верно, надо узнавать как информация поступает в квик, но у меня пока так
tranquility, не понял, отличаться от времени компа? точно не могу сказать, вроде не более секунды если время компа синхронизировано, иначе думаю что и больше секунды может быть
а так бывает время сервера приходит прошлое, т.е. сейчас 14:19:34 а следующие 14:19:33, потом 14:19:34, 14:19:35
при том я территориально далеко от Москвы, в Уфе, я думаю это тоже влияет
tranquility, ну т.к. время системное только в секундах, вот их и сравниваю, если пришедшее время меньше предыдущего — значит ошибка
как часто не могу точно сказать
А! Вероятно, такая фигня может происходить в моменты синхронизации часов с сервером поставляющим точное время. Тогда может возникнуть скачок на какую-нибудь миллисекунду. А если пинг до сервера вдруг скакать начал, что вообще, наверное, и сотня-другая миллисекунд может получиться.
tranquility, как таковой паузы нет, робот не перестаёт работать, просто данные с неверным временем или ценой — игнорируются
ага
Только зарегистрированные и авторизованные пользователи могут оставлять ответы.
Залогиниться
Зарегистрироваться