Exception: Лучший бид больше или равен лучшему офферу
Atom Ответить
14.09.2011


Цитата:

Quik 13:56:10.7069351 System.ArgumentException: Лучший бид 157985 больше или равен лучшему офферу 157980.
Имя параметра: depths
в #=qw1XTJ7dV75pMzOz0hBo$siihDG5OZdJczlcSqCrqHeW9oeTyyyg2z_7_I_sdd8zP.OnSave(List`1 #=qHt7Kciyn5dIQU9bM1p8X6A==, IEnumerable`1 #=qWN5vLK9lgnuirNLbwKPXEQ==, DateTime #=qKKv4d0DmzYEe_LwI_ZTphg==, #=qgSOV1vXH9QyFDywKzjytlUKtRfBvlDa$lfa1pqF_C53vfXDOQ1XxQKKwFTI8v3b1 #=qZLgnP865s$8zaZAaVaUHkw==)
в #=qYHpTVY2S45tYaMYO2yPLP0Kwx4gEDfz9gCrc15vsqp2yDFNlUoPV9z$CnkxhiFm_.#=qLylBwxWKZJxUOHK9AhQfJg==(DateTime #=qYJ4ET8pqjhGXfYJzJxL7WA==, IEnumerable`1 #=qc5Kcj8dkw_HrZhkiXNAARw==, Boolean #=qCYaiWtpxLFpeKOuk9WIa0g==)
в #=qYHpTVY2S45tYaMYO2yPLP0Kwx4gEDfz9gCrc15vsqp2yDFNlUoPV9z$CnkxhiFm_.Save(IEnumerable`1 #=qWRtxCXnEO09I0nh9jQVyCg==)
в StockSharp.Hydra.Worker.<>c__DisplayClass16.<Download>b__10(IMarketDataSource source) в E:\StockSharpReleases\StockSharp_3.2.11\Hydra\Hydra\Worker.cs:строка 210

Начало периодически выскакивать в 3.2.11...

Теги:


Спасибо:




33 Ответов
< 1 2 
Alexander

Фотография
Дата: 24.10.2012
Ответить


Переопределить RaiseProcessDataError. Там фильтровать. Только если так.
Это приходит по идее туда и пишется через this.AddErrorLog
Спасибо:

XMbIPb

Фотография
Дата: 04.04.2013
Ответить


Alexander Mukhanchikov Перейти
Переопределить RaiseProcessDataError.

А где он теперь находится?
Просто я тогда так и не докопался.. а сейчас(в 4.1.9) гидра стала падать из-за этой ошибки.. специально останавливаю экспорт в 18:45.. но пока он останавливается, успевает прилететь этот эксепшн и гидра падает..

И так каждый день...
Автор топика
Спасибо:

Андрей Шабанов

Фотография
Автор статей
Дата: 04.04.2013
Ответить


та же проблема.
Спасибо:

chudokos

Фотография
Дата: 21.04.2013
Ответить


Андрей Шабанов Перейти
та же проблема.


Аналогично, в 18:45 Гидра вылетает после того как несколько раз приходят ошибки, что бид больше оффера.
Вообще, не знаю, рассматривали ли вы такой вариант, но это можно вынести в настройки, пусть пользователь сам решает останавливать ли закачку или нет. В том, что бид больше оффера не всегда есть проблема. Например, в пред.торговые полчаса на споте все трейдеры ставят заявки, а сделки еще не проходят. Там бид больше оффера может быть спокойно, это не ошибка.
К тому же, пользователь сам может выбирать что он потом с этими стаканами будет делать. Их можно чистить самому или алгоритм обработки данных строить так, чтобы обходить такие вещи. А так получается, данных совсем нет, что есть грустно.

Вы постоянно модифицируете работу с данными, уже очень много сделали, молодцы.
К сожалению, я .NET только осваиваю, надеюсь выйти на хороший уровень и помочь. Из тех идей, которые есть по обработке данных по мимо инструмента чистки стаканов от ситуаций "оффер ниже бида", есть следующие (возможно, у кого-то дойдут руки и желание их сделать):
- Удаление плохих тиков (например, сделка была на 20% выше/ниже предыдущей)
- Проверка и удаление дублированных данных (это алгоритм может быть использован также в следующем пункте)
- Склеивание файлов, записанных их разных источников (как клеить стаканы, учитывая, что время пишется локального компьютера, я не знаю, но идеи есть)
- Приведение времени записанных стаканов ко времени проведения сделок (если это вообще возможно)
- Фильтрация стаканов (аналог создания свечек по сделкам, но тут еще проще - просто отфильтровать часть данных) по разным таймфреймам
- Заполнение данных по пустым дням из других источников (я так понял, что это есть в склеивании данных, но еще не тестировал, можно ли не склеивая заполнить пропуски)

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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.04.2013
Ответить


chudokos Перейти
В том, что бид больше оффера не всегда есть проблема.


Конкретно в этом случае - это косяк Квика, 100%. Судя по всему, это РТС, и неправильно собирается стакан. Не уверен, стоит ли вообще писать кривые данные.

chudokos Перейти

- Удаление плохих тиков (например, сделка была на 20% выше/ниже предыдущей)
- Проверка и удаление дублированных данных (это алгоритм может быть использован также в следующем пункте)
- Склеивание файлов, записанных их разных источников (как клеить стаканы, учитывая, что время пишется локального компьютера, я не знаю, но идеи есть)
- Приведение времени записанных стаканов ко времени проведения сделок (если это вообще возможно)
- Фильтрация стаканов (аналог создания свечек по сделкам, но тут еще проще - просто отфильтровать часть данных) по разным таймфреймам
- Заполнение данных по пустым дням из других источников (я так понял, что это есть в склеивании данных, но еще не тестировал, можно ли не склеивая заполнить пропуски)


1) Это можно сделать самостоятельно через Storage API
2) Что есть дублированные данные?
3) Нет смысла в том плане, что овчинка не стоит выделки.
4) Опять же, нет смысла, так как есть более правильные пути.
5) См пункт 1.
6) Не совсем понятно, что предлагается сделать

chudokos Перейти

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


Если мы говорим про Квик, то да, данные без метки времени. Если брать от биржи, то конечно же с меткой.
Спасибо:

chudokos

Фотография
Дата: 24.04.2013
Ответить


Михаил Сухов Перейти
chudokos Перейти
В том, что бид больше оффера не всегда есть проблема.


Конкретно в этом случае - это косяк Квика, 100%. Судя по всему, это РТС, и неправильно собирается стакан. Не уверен, стоит ли вообще писать кривые данные.

chudokos Перейти

- Удаление плохих тиков (например, сделка была на 20% выше/ниже предыдущей)
- Проверка и удаление дублированных данных (это алгоритм может быть использован также в следующем пункте)
- Склеивание файлов, записанных их разных источников (как клеить стаканы, учитывая, что время пишется локального компьютера, я не знаю, но идеи есть)
- Приведение времени записанных стаканов ко времени проведения сделок (если это вообще возможно)
- Фильтрация стаканов (аналог создания свечек по сделкам, но тут еще проще - просто отфильтровать часть данных) по разным таймфреймам
- Заполнение данных по пустым дням из других источников (я так понял, что это есть в склеивании данных, но еще не тестировал, можно ли не склеивая заполнить пропуски)


1) Это можно сделать самостоятельно через Storage API
2) Что есть дублированные данные?
3) Нет смысла в том плане, что овчинка не стоит выделки.
4) Опять же, нет смысла, так как есть более правильные пути.
5) См пункт 1.
6) Не совсем понятно, что предлагается сделать

chudokos Перейти

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


Если мы говорим про Квик, то да, данные без метки времени. Если брать от биржи, то конечно же с меткой.


Скажем так, стоит или не стоит, это все же, на мой взгляд, вопрос индивидуальный. Тем более, что из-за этой ошибки не записываются ВСЕ данные после этого. К тому же трейдер знает, что там есть косяк, и готов к этому, тем более что это косяк во время клиринга. Возьмем классику - Каца и Маккормика, сколько времени в книге они уделяют корректным данным их очистке, полноте и т.д. Из того что он описывает, далеко не все вендоры дают полностью корректные данные, так это США, где все за деньги и должно быть вылезано. Да и бизнес-аналитику возьмите, данные и дублированные попадаются и неполные и некорректные, но борются с этим же. А если их нет совсем, то что анализировать тогда?
Вы часто грешите на Квик, у них есть косяки, не спорю, но очень редко. Он транслируют данные из шлюза - это раз, два - я никогда визуально не видел в сессионное время кривых стаканов от Квика. Возможно дело не в Квике, а в "парсинге"?
Как-то я проверял тиковые сделки от биржи, думаете там не было косяков? ) Так это первоисточник!

1) Не совсем знаю что это, но буду знать, что можно взять там ) Я так понимаю, для этого нужно обладать умением программировать на .NET
2) Остались после записи Гидрой ранних версий, сейчас вроде бы нет. Проверю еще раз
3) Возможно
4) Какие, подскажите, я голову сломал уже? )
5) Ок
6) Ну, например, сделок по какому-то инстурменту нет за какие-то дни, Гидра видит за какие, качаем с Финама или других мест только за эти дни. Также можно сверку делать. Например, квик отключился, сервер упал или еще что, сделки за день есть не все, но мы этого не знаем. Как проверить есть ли все сдекли, нужно скачать с другого места и сравнить хотя бы количество сделок, если различия больше какого-то порога, понимаем, что данные есть, но не полные.

Биржевые стаканы приходят из шлюза с меткой времени, честно?
Спасибо:

XMbIPb

Фотография
Дата: 29.04.2013
Ответить


Я конечно понимаю, что кривые стаканы это не гидрин косяк.. но может всё-таки можно научить её их игнорить или хотя бы увеличить maxErrorCount, чтоб из-за них экспорт не вставал?
Только из-за этой фигни приходится сидеть на старой версии...
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.04.2013
Ответить


XMbIPb Перейти
Я конечно понимаю, что кривые стаканы это не гидрин косяк.. но может всё-таки можно научить её их игнорить или хотя бы увеличить maxErrorCount, чтоб из-за них экспорт не вставал?
Только из-за этой фигни приходится сидеть на старой версии...


В план поставили задачу по изменению поведения.
Спасибо: chudokos
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy