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

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


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


Tags:


Thanks:


< 1 2 
Mikhail Sukhov

Avatar
Date: 6/2/2010
Reply


Я кое-что подкрутил. Сохраните проект. Когда выпушу новый билд 2.0 - проверьте еще раз. Ок?

Thanks:

ddd888

Avatar
Date: 6/2/2010
Reply


Да, конечно! :) Когда ожидается новый билд?

Thanks:

ddd888

Avatar
Date: 6/8/2010
Reply


Пытаюсь теперь проверить все на последней версии 2.0.1. В моей версии с GUI все вроде пошло очень шустро и в самый разгар наплыва информации о торгах - после обеда. Теперь пытаюсь в консоле отследить время появления сделок. Но начали появляться новые доселе неизвестные ошибки:

  • при запуске _trader.StartDde("инструменты") - появляется ошибка: "в экземпляре объекта нет ссылки на объект", а просто _trader.StartDde()
  • "Нет информации о главном окне Quik. Возможно, было неуспешное подключение." Хотя окна, как я понимаю ведь не менялись? Функция StartDde("инструменты") как-то изменилась? Вручную, экспорт запускается нормально и все идет, но зачем так, если есть программные методы? :)

"

Thanks:

ddd888

Avatar
Date: 6/8/2010
Reply


И еще вопрос. Для теста скорости вывода данных я добавил такой код для экспорта стакана:

this.somesec = this._trader.Securities.Where(q => q.Code == "RIM0").LastOrDefault(); this._trader.RegisterQuotes(this.somesec); var _marketDepth1 = this._trader.GetMarketDepth(this.somesec); this.Quotes.AddRange(_marketDepth1.OrderByDescending(e => e.Price).Select( e => new SampleQuote { Price = e.Price, Ask = e.OrderDirection == OrderDirections.Buy ? e.Volume.ToString() : "", Bid = e.OrderDirection == OrderDirections.Sell ? e.Volume.ToString() : "", })); this._trader.GetMarketDepth(this.somesec).Changed += new Action(TestSpeed_Changed);

Аналогичный код в другой программе на 1.8 у меня работал нормально, а сейчас почему-то нет. Из квика экспорт стакана идет, а в прогрмму ничего не приходит. Что тут может быть неправильно?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/8/2010
Reply


Запускать экспорт теперь нужно только после событие Connected (например, в его обработчике). Я в SampleConsole показал это.

Thanks:

ddd888

Avatar
Date: 6/9/2010
Reply


Спасибо, попробую с Connected.

Запустил тест 2.0.1 после 18:00. Скорость хорошая, впрочем после 18 часов и на 1.8 была нормальная. Среднее время задержки 400-500 мс. Общее количество загруженных сделок - больше 1 млн. Самое интересное посмотрю завтра - как на максимальной загрузке себя поведет.

Thanks:

ddd888

Avatar
Date: 6/9/2010
Reply


Наблюдается очень хорошая скорость! Вы молодец, Михаил! :) Задержка при максимуме информации в среднем не более 1-2 с. По-моему, это очень хороший результат. В связи с этими тестами, заметил, что часто сам Квик тормозит - оставание вывода информации может доходить до 5-10 с. Но S#2.0.1 справляется вполне адекватно. Хочу еще проверить как зависит производительность программы от количества одновременно получаемой информации - потому что это явно влияет на скорость вывода: во время вечерних торгов после 18 часов как я писал - запаздывание 0.4-0.5 с, в разгар сессии - 1-2 с. Пока только не придумал, как это измерить.

Thanks:

ddd888

Avatar
Date: 6/10/2010
Reply


Что еще радует - в моем варианте со всевозможными GUI скорость остается такой же высокой. Значит,раньше все-таки дело было не совсем в отрисовке. =)

Thanks:
< 1 2 

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

loading
clippy