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


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

Теги:


Спасибо:


1 2  >
Mikhail Sukhov

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


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

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


Спасибо:

ddd888

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


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

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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

ddd888

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


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

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

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

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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

ddd888

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


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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

ddd888

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


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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

ddd888

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


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

Спасибо:
1 2  >

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

loading
clippy