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

Exception: Лучший бид больше или равен лучшему офферу
Atom
9/14/2011
XMbIPb


Quote:

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...

Tags:


Thanks:


< 1 2 3 4  >
Mikhail Sukhov

Avatar
Date: 7/3/2012
Reply


Kiruhin
вообще что-то руки до стокшарпа не доходят последнее время, ничего не делал пока. выставил только maxErrorCount в значение побольше )
может, через недельку посмотрю... (от своего обещания не отказываюсь =) )


Судя по всему ошибка локальная, и только у вашего брокера. Так что можете не торопится. В любом случае ее устранение от нас вряд ли будет зависеть. Да и стаканы через квик - это та еще дезинформация.
Thanks:

XMbIPb

Avatar
Date: 8/24/2012
Reply


В 4.1.3 при экспорте из квика с 18:45 до 18:50 вылетает каждую секунду.. ну и до этого пару раз...

Можно что-то сделать?
Брокер Финам...
Thanks:

Alexander

Avatar
Date: 9/13/2012
Reply


В клиринг не надо сохранять стаканы.
Thanks:

XMbIPb

Avatar
Date: 10/24/2012
Reply


Alexander Mukhanchikov
В клиринг не надо сохранять стаканы.


А в остальное время? Может можно хотя бы как-то эти сообщения перехватить.. чтоб лог не засирать.. хотел вставить пустой обработчик в BaseMarketDataSource.. но боюсь какую-нибудь серьёзную ошибку пропустить.. а откуда конкретно это сообщение в лог заносится найти не могу...
Thanks:

Mikhail Sukhov

Avatar
Date: 10/24/2012
Reply


XMbIPb
А в остальное время? Может можно хотя бы как-то эти сообщения перехватить.. чтоб лог не засирать.. хотел вставить пустой обработчик в BaseMarketDataSource.. но боюсь какую-нибудь серьёзную ошибку пропустить.. а откуда конкретно это сообщение в лог заносится найти не могу...


Лучше в Квик написать, с вопросом, а почему это в клиринг стакан пляшет.[blink]
Thanks:

Alexander

Avatar
Date: 10/24/2012
Reply


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

XMbIPb

Avatar
Date: 4/4/2013
Reply


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

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

И так каждый день...
Thanks:

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

Avatar
Date: 4/5/2013
Reply


та же проблема.
Thanks:

chudokos

Avatar
Date: 4/21/2013
Reply


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


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

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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 4/22/2013
Reply


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


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

chudokos

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


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

chudokos

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


Если мы говорим про Квик, то да, данные без метки времени. Если брать от биржи, то конечно же с меткой.
Thanks:
< 1 2 3 4  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy