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  >
Mikhail Sukhov

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


XMbIPb Перейти

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


А чем стаканы пишите?
Спасибо:

XMbIPb

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


Гидрой.. только что заметил, что у меня экспорт остановился после этой ошибки.. теперь дыра будет.. как попроще сделать чтоб гидра сигнализировала(отправляла sms,email или пищала хотя бы) в такой ситуации?
Автор топика
Спасибо:

Mikhail Sukhov

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


XMbIPb Перейти
Гидрой..


Гидра данные откуда берет?

XMbIPb Перейти

только что заметил, что у меня экспорт остановился после этой ошибки.. теперь дыра будет.. как попроще сделать чтоб гидра сигнализировала(отправляла sms,email или пищала хотя бы) в такой ситуации?


Написать код в Гидре?
Спасибо:

XMbIPb

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


Mikhail Sukhov Перейти

Гидра данные откуда берет?

Quik
Автор топика
Спасибо:

Mikhail Sukhov

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


XMbIPb Перейти
Mikhail Sukhov Перейти

Гидра данные откуда берет?

Quik


Нашли одно место, где может произойти рассинхронизация, будет в 3.2.12 (выложим вначале на КодеПлекс).
Спасибо:

XMbIPb

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


Мигрировал на 4.0.3 - ошибка сохранилась...
Автор топика
Спасибо:

Kiruhin

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


свежая версия (билд 17554 на CodePlex) снова стала выбрасывать исключения:

18:45:13.1963215 Quik System.ArgumentException: Лучший бид 75 больше или равен лучшему офферу 74,7.
Parameter name: depths
at #=qOxrUlg4OPs6kyO$Tb$fK_AsvLvpbniHqbem3XR0IqYJ$YHh_unxSb72o8Lx33ST2.OnSave(List`1 #=qdG9D7o0S$VLm$p1X5mJGDg==, IEnumerable`1 #=qI8Yrjw3FSlsTGXzrB2G6Wg==, DateTime #=qglhOpOJV3Eak7bWImN1qFw==, #=qIq66bh$3sZ3H5Qsg8wylKQnhWDKIGWVQ4Kzav3bBjbTuEYdOmqUGMB8pZP7nVXWY #=qzo2XbdxQdj2YpWFIs1luwA==)
at #=qd51RpYzKvk8ZoX3tAE27Pv5dvwlvJ4cd9LHaruSH2tUb7IGlUdMBGa$XKsHI6h7y.#=qjzjdD5iOFmlnVM$CIAaWbg==(DateTime #=qVEeOLCMkwYeCQLpKOSch0w==, #=qIh_krYypcNrIs_TevJuc9w==[] #=qtnbKHRwSl2jMCyY0PYan3Q==, Boolean #=qm2cMzNZ$AhLbKVjYs1uVcw==)
at #=qd51RpYzKvk8ZoX3tAE27Pv5dvwlvJ4cd9LHaruSH2tUb7IGlUdMBGa$XKsHI6h7y.#=qG1RUXoghWzAcXUcOT9wvpc_mdO__lonqO_9aIcpIBx4PoFa9OeOonJ6KslJhoXMc_QLR7RRDGkUG0XQy2cwZOw==(IEnumerable`1 #=qLhXPr$anHsDxuqWw0hZPdg==)
at StockSharp.Hydra.Core.BaseMarketDataSource.SaveDepths(Security security, IEnumerable`1 depths, Boolean raiseDataLoadedEvent) in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Core\BaseMarketDataSource.cs:line 209
at StockSharp.Hydra.Core.TraderMarketDataSource.Load() in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Core\TraderMarketDataSource.cs:line 101
at StockSharp.Hydra.Worker.WorkerProcess.<Download>b__18(IMarketDataSource source) in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Hydra\Worker.cs:line 124
18:45:14.2103233 Quik System.ArgumentException: Лучший бид 150,47 больше или равен лучшему офферу 150,31.
Спасибо:

Mikhail Sukhov

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


Kiruhin Перейти
свежая версия (билд 17554 на CodePlex) снова стала выбрасывать исключения:

18:45:13.1963215 Quik System.ArgumentException: Лучший бид 75 больше или равен лучшему офферу 74,7.


Можете проверку в MarketDataTrader.OnMarketDepthsChanged вставить? Пока не понятно, на каком участке стакан приходит плохой.
Спасибо:

Kiruhin

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


Код
private void OnMarketDepthsChanged(IEnumerable<MarketDepth> depths)
{
	depths.ForEach(d =>
	{
		if (d.BestAsk.Price <= d.BestBid.Price)
			Log.SafeInvoke("Ошибка: d.BestAsk.Price <= d.BestBid.Price; {0}, {1}, {2}".Put(d.BestAsk.Price, d.BestBid.Price, d.Security.Code));

		//...

	});
}


этот код ничего в лог не пишет, когда ошибки продолжают валиться.
Спасибо:

Mikhail Sukhov

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


Kiruhin Перейти
этот код ничего в лог не пишет, когда ошибки продолжают валиться.


Я имел ввиду что-то типа такого:

Код
private void OnMarketDepthsChanged(IEnumerable<MarketDepth> depths)
{
	depths.ForEach(d =>
	{
		//Trace.WriteLine("MDA " +dc.Security+":"+dc._DebugId+":"+ dc.LastChangeTime.ToString("HHmmss.fff"));
		if (d.Bids.Length > 0 || d.Asks.Length > 0)
		{
			if (d.BestAsk.Price <= d.BestBid.Price)
				Log.SaveInvoke("Error 1");

			var clone = d.Clone();

			if (clone.BestAsk.Price <= clone.BestBid.Price)
				Log.SaveInvoke("Error 2");

			_depthsBuffer.Add(d.Security, clone);
		}
	});
}
Спасибо:

Kiruhin

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


да, в моем варианте валились ошибки NullReferenceException.
но все равно в логе видно, что уже в этот метод приходит плохой стакан

запустил Гидру с Вашим кодом, отпишусь позже.
Спасибо:

Kiruhin

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


17:51:22.3118925 Quik Error 1
17:51:22.3118925 Quik Error 2
17:51:30.3495156 Quik System.ArgumentException: Лучший бид 131660 больше или равен лучшему офферу 131655.
Имя параметра: depths
...

да, в этот метод стакан уже приходит неправильный.
Спасибо:

Mikhail Sukhov

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


Kiruhin Перейти
17:51:22.3118925 Quik Error 1
17:51:22.3118925 Quik Error 2
17:51:30.3495156 Quik System.ArgumentException: Лучший бид 131660 больше или равен лучшему офферу 131655.
Имя параметра: depths
...

да, в этот метод стакан уже приходит неправильный.


Получается, что то, что вы отписали здесь, неправильно?
Спасибо:

Alexander

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


Kiruhin Перейти
17:51:22.3118925 Quik Error 1
17:51:22.3118925 Quik Error 2
17:51:30.3495156 Quik System.ArgumentException: Лучший бид 131660 больше или равен лучшему офферу 131655.
Имя параметра: depths
...

да, в этот метод стакан уже приходит неправильный.


Выведите, пожалуйста, вместе с Error1 и Error2
d.BestAsk.Volume и d.BestBid.Volume
Спасибо:

Kiruhin

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


Alexander Mukhanchikov Перейти
Выведите, пожалуйста, вместе с Error1 и Error2
d.BestAsk.Volume и d.BestBid.Volume


13:43:42.8640657 Quik Error 1. 'VBM2': bestAsk (Price=5447, volume=49); bestBid (Price=5448, volume=1)
13:43:42.8640657 Quik Error 2. 'VBM2': bestAsk (Price=5447, volume=49); bestBid (Price=5448, volume=1)
13:43:56.3298895 Quik System.ArgumentException: Лучший бид 5448 больше или равен лучшему офферу 5447.
Parameter name: depths
at #=qOxrUlg4OPs6kyO$Tb$fK_AsvLvpbniHqbem3XR0IqYJ$YHh_unxSb72o8Lx33ST2.OnSave(List`1 #=qdG9D7o0S$VLm$p1X5mJGDg==, IEnumerable`1 #=qI8Yrjw3FSlsTGXzrB2G6Wg==, DateTime #=qglhOpOJV3Eak7bWImN1qFw==, #=qIq66bh$3sZ3H5Qsg8wylKQnhWDKIGWVQ4Kzav3bBjbTuEYdOmqUGMB8pZP7nVXWY #=qzo2XbdxQdj2YpWFIs1luwA==)
at #=qd51RpYzKvk8ZoX3tAE27Pv5dvwlvJ4cd9LHaruSH2tUb7IGlUdMBGa$XKsHI6h7y.#=qjzjdD5iOFmlnVM$CIAaWbg==(DateTime #=qVEeOLCMkwYeCQLpKOSch0w==, #=qIh_krYypcNrIs_TevJuc9w==[] #=qtnbKHRwSl2jMCyY0PYan3Q==, Boolean #=qm2cMzNZ$AhLbKVjYs1uVcw==)
at #=qd51RpYzKvk8ZoX3tAE27Pv5dvwlvJ4cd9LHaruSH2tUb7IGlUdMBGa$XKsHI6h7y.#=qG1RUXoghWzAcXUcOT9wvpc_mdO__lonqO_9aIcpIBx4PoFa9OeOonJ6KslJhoXMc_QLR7RRDGkUG0XQy2cwZOw==(IEnumerable`1 #=qLhXPr$anHsDxuqWw0hZPdg==)
at StockSharp.Hydra.Core.BaseMarketDataSource.SaveDepths(Security security, IEnumerable`1 depths, Boolean raiseDataLoadedEvent) in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Core\BaseMarketDataSource.cs:line 209
at StockSharp.Hydra.Core.TraderMarketDataSource.Load() in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Core\TraderMarketDataSource.cs:line 0
at StockSharp.Hydra.Worker.WorkerProcess.<Download>b__18(IMarketDataSource source) in D:\svalka\invest\_info\_sSharp\lib\stocksharp-17554\dev\Hydra\Hydra\Worker.cs:line 124
Спасибо:

Kiruhin

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


Mikhail Sukhov Перейти
Получается, что то, что вы отписали здесь, неправильно?

ага. ошибся. извините.
Спасибо:

Mikhail Sukhov

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


Можете проверить не Гидру, а в отдельной консольной программе написать такой код:

Код
var qt = new QuikTrader();
qt.NewSecurities += securities =>
{
	foreach (var security in securities)
	{
		if (security.Id == "ID инструмента")
		{
			qt.RegisterQuotes(security);
			break;
		}
	}
};
qt.MarketDepthsChanged += depths =>
{
	foreach (var depth in depths)
	{
		if (depth.Security.Id == "ID инструмента")
		{
			if (/* проверка */)
				Console.WriteLine("Ошибка");
		}
	}
};
qt.Connected += qt.StartExport;
qt.Connect();


Это покажет, приходят ли данные уже испорченные из Квика.
Спасибо:

Kiruhin

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


да. конечно.
я отпишусь.
Спасибо:

chudokos

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


Kiruhin Перейти
да. конечно.
я отпишусь.


Получилось ли у вас в какой момент данные уже испорченные приходят?
Спасибо:

Kiruhin

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


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

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
Спасибо:
1 2  >

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

loading
clippy