Скорость вывода данных

Скорость вывода данных
Atom
5/28/2010
ddd888


Добрый день, Михаил! Сколько не бился над проблемой, но при эскпорте "все сделки" все время начинается замедление поступления данных из квика. Причем чем больше времени проходит - тем больше оставание - сегодня за 3 часа отставание достигло аж 30 минут! Перепробовал разные способы. И в S#1.8 и в S#2.0 ситуация одинковая. В конце концов до предела отфильтровал данные всех сделок в квике - стал получать только даныне по фьючерсам. Только тогда скорость вроде бы нормализовалась. А до этого во "всех сделках" были действиетльно "все сделки". Заметил также, что во время вечерней сессии скорость обработки и отрисовки нормальная - т.е. фактически после завершения торговли акциями = уменьшения постуающей информации. Получается, что для системы есть какой-то предел количества поступающей информации?


Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 5/31/2010
Reply


Для того, чтобы точно убедиться в чем проблема, попробуйте перестать отрисовывать (кстати что именно). Например, просто выводить сигнал о данных в консоль. Например, как сделано здесь

http://groups.google.ru/group/stocksharp/browse_thread/thread/b68f5d9bc2134b48

Thanks:

ddd888

Avatar
Date: 5/31/2010
Reply


Да, так и сделаю. Создал отдельный проект с классом вывода данных в консоль: _trader.NewTrades += trades => Console.WriteLine(trades.Max (c=>c.Time).ToString ())

Поскольку уже вечер и сделок мало, то сейчас данные идут нормально. Завтра потестю во время основных торгов.

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


С учетом того, что QuikTrader всасывает все данные за сессию (а следовательно, вечерка должна иметь больше данных, чем дневная), уже уменьшает вероятность ошибки в S#. Но тест конечно провести нужно. Возможно проблема не с памятью, а с производительностью.

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


С производительностью компьютера? Похоже на это. Сегодня я с утра веду тестирование. В таблицу "все сделки" специально по такому случаю загнал все бумаги, что дает квик. Результаты следующие: в целом, задержки с выводом в консоль практически нет - максимум отставание составляет 5 сек, но обычно - 1-2 сек. (Могу выложить скринскан). Правда, где-то в середине дня заметил отставание в 10 минут (после того как таблицу загрузил по максимуму), но потом оно само собой куда- то исчезло. Единственно что смущает - это отставание то возникает, то пропадает почти полностью. Надо делать какой-то вывод, а он напрашивается такой, что в моем "сампле" основное время "воруется" GUI? А как же без него совсем обойтись - писать все настройки через код? :)....

В целях этого же теста еще попытался вывести паралелльно котировки "стакана" таким образом:

_test.somesec = (Security)_test._trader.Securities.Where(q => q.Code == "RIM0").LastOrDefault(); _test._trader.RegisterQuotes(_test.somesec);

но последняя строка выдала исключение: "в экземпляре объекта нет ссылки на объект". Хотя через отладку _test.somesec был вполне "загружен" данными. Про какой объект тогда говорит исключение?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


  1. Попроьбуйте выключить вообще все окна. Чтобы в них данные не добавлялись на отображение.
  2. NullReferenceException говорит о том, что _test равен null. А то что Вы подумали, называется ArgumentNullException.
Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


  1. Выключить окна в квике? Или вообще в среде? В самой программе только консоль включается.
  2. Он исключение мне по-русски выдает. Хотя я бы все равно, конечно, разницы не понял. Спасибо за подсказку. :)
Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


У Вас уже обычная консоль или все таки WPF?

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


Да, тест я сделал в обычной консоли без всяких WPF. Сейчас работает и задержек нет. Но правда уже вечер. И правда, стакан что-то не получается там туда отобразить. Куда этот экземпляр объекта девается, не пойму?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


И Вы говорите на консоли начинает подтормаживать днем?

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


Да, у меня сегодня в среднем было - 1-2 сек. И это то, что видно чисто визуально. А иногда быаает так - в какой-то момент заметил, что квик сам не всегда стабильно выдает данные - иногда он сам как бы тормозится, а потом за раз выдает то, что задержал на какое-то время - в этот момент, по-моему, и происходит основное "торможение" в QuikTrader. Сейчас визуально задержек не видно, но я добавил функцию вычисления разницы между текущим временем и временем последней сделки в миллисекундах. Интересно, что разброс выдается от 60 мс до 900 мс.

Thanks:
1 2  >

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

loading
clippy