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

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


Цитата:

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

Теги:


Спасибо:


< 1 2 3 4  >
Mikhail Sukhov

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


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


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

XMbIPb

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


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

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

Alexander

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


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

XMbIPb

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


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


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

Mikhail Sukhov

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


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


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

Alexander

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


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

XMbIPb

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


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

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

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

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

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


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

chudokos

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


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


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

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

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

Спасибо:

Mikhail Sukhov

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


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


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

chudokos

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


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

chudokos

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


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

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

loading
clippy