Несколько вопросов по оптимизации производительности

Страницы: 1
RSS
Несколько вопросов по оптимизации производительности
 
Цитата
С целью оптимизации потребляемого трафика рекомендуется использовать автоматическое определение параметров заказа биржевых параметров с сервера QUIK. Он включается в настройках программы – это опция «Исходя из настроек открытых пользователем таблиц»
Я торгую российские акции (Акции и ДР, Д-Акции) и фьючерсы. Почему при включении рекомендуемой настройки "Исходя из настроек открытых пользователем таблиц" у меня принимаются котировки ещё и по SPBEX-акциям, кросс-курсам валют, облигациям и опционам? Ничто из перечисленного мне в явном виде в терминале не нужно. Ну ладно там 40 облигаций или 7 кросс-курсов, но зачем мне почти 7000 опционов? Какие таблицы могут требовать такие данные при торговле только акциями и фьючерсами? Понятно, что вручную могу всё это отключить, но хотелось бы понимать. Настройка-то правильная, но вот почему всё так работает?

Цитата
Отключение опции «Данные, отражающие текущее состояние и всю историю изменений» в меню «Система» / «Настройки» / «Основные настройки» / «Программа» на вкладке «Получение данных» позволит сэкономить ресурсы Вашего компьютера в части использования оперативной памяти. Включение данной опции актуально только для тех пользователей, которые явно просматривают данные в Таблице истории и Таблице изменений, а также используют экспорт информации из Таблицы Текущих Торгов через ODBC во внешние базы данных. Дополнительно мы рекомендуем отключить заказ истории данных по потоку биржевых параметров. Опция доступна из пункта меню «Настройки» / «Основные» / вкладка «Сохранение данных», галочка «Получать пропущенные данные». Отключение этой опции позволит минимизировать объём трафика в случае переподключения терминала к серверу QUIK в середине торговой сессии.
Я правильно понимаю исходя из этой формулировки, что на отображение графиков цены и объёма это не влияет? А вот если, например, я добавлю на график фьючерса открытый интерес (кол-во открытых позиций), то ничего не увижу кроме текущих значений?

Несколько вопросов по содержанию основных файлов Quik:
Файл alltrade.dat затирается перед загрузкой Quik и не может влиять на скорость загрузки, правильно?
Файл info.log содержит данные для таблиц, а данные для построения графиков находятся в папке Archive и, соответственно, затирание файла info.log не повлияет на данные для построения графиков?
Какой файл содержит графические построения на графиках (тренды, уровни и пр.)?
 
Добрый день.
Цитата
Я торгую российские акции (Акции и ДР, Д-Акции) и фьючерсы. Почему при  включении рекомендуемой настройки "Исходя из настроек открытых  пользователем таблиц" у меня принимаются котировки ещё и по  SPBEX-акциям, кросс-курсам валют, облигациям и опционам? Ничто из  перечисленного мне в явном виде в терминале не нужно. Ну ладно там 40  облигаций или 7 кросс-курсов, но зачем мне почти 7000 опционов? Какие  таблицы могут требовать такие данные при торговле только акциями и  фьючерсами? Понятно, что вручную могу всё это отключить, но хотелось бы  понимать. Настройка-то правильная, но вот почему всё так работает?

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

Цитата
Я правильно понимаю исходя из этой формулировки, что на отображение графиков цены и объёма это не влияет? А вот если, например, я добавлю на график фьючерса открытый интерес (кол-во открытых позиций), то ничего не увижу кроме текущих значений?  
Объясняем, как работает настройка.
Пункт меню Система/Настройки/Основные настройки/Программа/Сохранение данных/
«Получать пропущенные данные"

Галочка не стоит

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

Галочка стоит

QUIK получает с сервера все данные с начала торгов за этот день.

Цитата
Файл alltrade.dat затирается перед загрузкой Quik и не может влиять на скорость загрузки, правильно?  Файл info.log содержит данные для таблиц, а данные для построения графиков находятся в папке Archive и, соответственно, затирание файла info.log не повлияет на данные для построения графиков? Какой файл содержит графические построения на графиках (тренды, уровни и пр.)?
- файл alltrade.dat при запуске не затирается, если, конечно, у Вас QUIK запускается не с -clear
- info.log на графики не влияет - все верно.
- в файл с расширением wnd.
 
Цитата
Egor Zaytsev написал:
Наличие выбранных опций ("Исходя из настроек открытых  пользователем таблиц") несмотря на отсутствие открытых таблиц     является штатным поведением программы, так как QUIK кроме таблиц     заказывает и другие данные, к примеру маржинальные требования по     клиенту и другие биржевые параметры.
И это плохо.
 
Егор, а не поясните для чего могут быть всё-таки нужны данные по 7000 опционам на терминале, который заточен под торговлю акциями и фьючерсами? это же, наверное, довольно большой трафик и нагрузка на терминал... может я мог бы как-то перенастроить терминал, чтобы эти данные мне не поступали.
 
Цитата
sandyman написал:
Егор, а не поясните для чего могут быть всё-таки нужны данные по 7000 опционам на терминале, который заточен под торговлю акциями и фьючерсами? это же, наверное, довольно большой трафик и нагрузка на терминал... может я мог бы как-то перенастроить терминал, чтобы эти данные мне не поступали.
В новых версиях рабочего места     QUIK перечень заказываемых параметров был расширен и     изменен, в том числе вследствие устранения недоработок предыдущих     версий.
Поэтому да, такое может быть. Чтобы данные не поступали можно только отключить их трансляцию на стороне брокера. Т.е если вы ими не пользуетесь, то обратитесь к брокеру.
 
Egor Zaytsev, вы думали над тем, что когда добавляется хотя бы один опцион в ТТП, то данные будут приниматься по всем 6000 опционам? И какой будет (бесполезный) трафик при этом.

В WebQuik'е и мобильных Квиках, я так понимаю, такого нету - а то для этих решений это было бы слишком большой нагрузкой.
 
Цитата
Constantin написал:
Egor Zaytsev  , вы думали над тем, что когда добавляется хотя бы один опцион в ТТП, то данные будут приниматься по всем 6000 опционам? И какой будет (бесполезный) трафик при этом.

В WebQuik'е и мобильных Квиках, я так понимаю, такого нету - а то для этих решений это было бы слишком большой нагрузкой.
Добрый день.

Если в заказе данных отфильтрованы данные, то не должно такое происходить.
 
Если включена опция «Исходя из настроек открытых пользователем таблиц», то Квик включает все опционы (а также фьючерсы и т.д.). И если хотя бы один опцион включен в ТТП, то все заказываемые поля по этому опциону распространятся на весь класс опционов (6000 опционов). Тут не отфильтруешь без влезания в этот автоматический процесс и снимания опции «Исходя из настроек открытых пользователем таблиц».
 
Цитата
Constantin написал:
Если включена опция «Исходя из настроек открытых пользователем таблиц», то Квик включает все опционы (а также фьючерсы и т.д.). И если хотя бы один опцион включен в ТТП, то все заказываемые поля по этому опциону распространятся на весь класс опционов (6000 опционов). Тут не отфильтруешь без влезания в этот автоматический процесс и снимания опции «Исходя из настроек открытых пользователем таблиц».
Добры день.

В этом случае да.

Цитата
В WebQuik'е и мобильных Квиках, я так понимаю, такого нету - а то для этих решений это было бы слишком большой нагрузкой.
Верно, здесь используется другая технология.
 
Цитата
Egor Zaytsev написал:
Наличие выбранных опций ("Исходя из настроек открытых  пользователем таблиц") несмотря на отсутствие открытых таблиц     является штатным поведением программы, так как QUIK кроме таблиц     заказывает и другие данные, к примеру маржинальные требования по     клиенту и другие биржевые параметры.
Егор, а не поясните для чего могут быть всё-таки нужны данные по 6000 опционам на терминале, который заточен под торговлю акциями и фьючерсами? это же, наверное, довольно большой трафик и нагрузка на терминал... может я мог бы как-то перенастроить терминал, чтобы эти данные мне не поступали.
 
Цитата
sandyman написал:
Цитата
Egor Zaytsev   написал:
Наличие выбранных опций ("Исходя из настроек открытых  пользователем таблиц") несмотря на отсутствие открытых таблиц     является штатным поведением программы, так как QUIK кроме таблиц     заказывает и другие данные, к примеру маржинальные требования по     клиенту и другие биржевые параметры.
Егор, а не поясните для чего могут быть всё-таки нужны данные по 6000 опционам на терминале, который заточен под торговлю акциями и фьючерсами? это же, наверное, довольно большой трафик и нагрузка на терминал... может я мог бы как-то перенастроить терминал, чтобы эти данные мне не поступали.
Добрый день.

Когда включаете опцию "Исходя из настроек открытых  пользователем таблиц", то система заказывает ряд необходимых параметров, соответственно для опционов тоже есть этот ряд параметров,
а так как опционов не один, то заказывается для каждого. В этом случае либо со стороны брокера отключить данный класс, либо настроить в QUIK вручную.  
 
Масштаб проблемы намного больше. При установке опции "Исходя из настроек открытых  пользователем таблиц" и при наличии во всех открытых таблицах терминала всего 2-х фьючерсов FORTS в диалоге выбора параметров, согласно сводке "Общая информация", у меня оказываются выбранными:
- 17 классов из 27 доступных,
- 10226 (!) инструментов из 11624,
- 62 из 124 параметров.

При этом выбраны такие классы как Опционы, МБ ФР Облигации, Паи - этих инструментов вообще нет и в помине не было в таблицах. Для проверки терминал запускался "чистым" - с удаленными всеми *.dat, *.log, *.wnd. Результат совершенно аналогичный. Понятно, что для различных расчетов и механизмов контроля терминалу нужны определенные параметры некоторых инструментов, даже если их нет в открытых таблицах - например, ГО или курсы валют. Но такой номенклатуры и в таком масштабе это просто немыслимо! Я боюсь спросить - они все действительно заказаны и поступают с сервера? Не удивляюсь, что многие жалуются на производительность и нехватку ресурсов. В общем, просьба вернуться к этой проблеме. Либо предоставить здесь разъяснения о необходимости КАЖДОГО из 62 параметров КАЖДОГО из 10226 заказанных инструментов.
 
Добрый день.

Наличие выбранных опций ("Исходя из настроек открытых пользователем таблиц") несмотря на отсутствие открытых таблиц является штатным поведением программы, так как QUIK кроме таблиц заказывает и другие данные, к примеру маржинальные требования по клиенту и другие биржевые параметры.
Данная информация не является параметрами каких-либо не открытых Вами таблиц, а служит в том числе для учета текущих позиций, работы плагинов (если таковые используются).
Настроек, изменяющих данное поведение, к сожалению, нет, такова реализация программы.
 
Цитата
Egor Zaytsev написал:
Добрый день.

Наличие выбранных опций ("Исходя из настроек открытых пользователем таблиц") несмотря на отсутствие открытых таблиц является штатным поведением программы, так как QUIK кроме таблиц заказывает и другие данные, к примеру маржинальные требования по клиенту и другие биржевые параметры.
Данная информация не является параметрами каких-либо не открытых Вами таблиц, а служит в том числе для учета текущих позиций, работы плагинов (если таковые используются).
Настроек, изменяющих данное поведение, к сожалению, нет, такова реализация программы.


Таким образом, разработчики Quik'a упорствуют в своих заблуждениях: речь не об необходимых параметрах, а об МУСОРЕ. Например,  работаю ТОЛЬКО на FORTS, но автоматический заказ списка бумаг и параметров почему-то включает все акции, массу других абсолютно не нужных бумаг. И какие-то маржинальные параметры и прочие технические параметры здесь вовсе ни при чем: по факту я устанавливаю ТОЛЬКО те фьючерсы и опционы, которыми торгую. БОЛЬШЕ НИЧЕГО.

Как результат такой НЕКОРРЕКТНОЙ работы автоматики Quik'a: я вынужден каждый четверг - после экспирации недельных опционов - устанавливать ВРУЧНУЮ списки получаемых бумаг. Потому что автоматика за пару часов убивает ресурсы системы : весь этот биржевой мусор забивает 2 ГБ оперативной памяти намертво.

Или же отвечающие в ветке НЕ ПОНИМАЮТ СУТИ ПРОБЛЕМЫ?  
 
Добрый день.

Мы понимаем суть претензий, однако также мы хорошо представляем ресурсоёмкость переделывания архитектуры ПО в данном месте. Со своей стороны мы обещаем подумать над тем, что было бы можно с этим сделать. С Вашей стороны - можем посоветовать расширить размер ОЗУ на Вашем ПК.
 
Добрый день!
Извиняюсь, что оживляю эту тему, но решил не создавать отдельную, т.к. вопрос фактически тот же самый.
Я недавно начал изучать QLua и столкнулся с проблемой, связанной с "фичей", обсуждаемой в этой теме.
Мне, например, необходимо получать данные по определенным опционам, и я хотел подписываться на конкретные опционы (внутри скрипта) и отслеживать параметры по OnParam, но выяснилось, что мне приходят оповещения вообще по всем опционам (при использовании опции "получение данных по открытым таблицам")
Получается, что вместо проверки данных по условно 100 опционов, скрипт должен проверять обновления по 12000 опционов и как я понял из этой темы, такое поведение ПО и предполагается, т.к. все опционы подтягиваются по умолчанию. По сути проблема очень сильно обостряется, когда необходимы параметры теор цены и волатильности,  т.к. тогда даже по 10К неликвидных опционов будут прилетать обновления и их придется обрабатывать (ведь у них будет обновляться теор цена).

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

С уважением!
 
Воистину "не ведаете, чего просите". Уже выпросили фильтры ТВС, в результате потеряли контроль над списками получаемых бумаг со стороны скрипта, еще вот здесь надо добавить, чтобы уже на глушняк. У меня другое предложение - выкинуть к чертовой матери все фильтры, пусть всегда едет все, что есть на сервере, скрипт сам может разобраться, что сохранять/обрабатывать, а что игнорировать.
 
Цитата
Anton написал:
Воистину "не ведаете, чего просите". Уже выпросили фильтры ТВС, в результате потеряли контроль над списками получаемых бумаг со стороны скрипта, еще вот здесь надо добавить, чтобы уже на глушняк. У меня другое предложение - выкинуть к чертовой матери все фильтры, пусть всегда едет все, что есть на сервере, скрипт сам может разобраться, что сохранять/обрабатывать, а что игнорировать.
Я не против, чтоб было как есть, если на то есть объективные причины. Как я написал - у меня нет опыта в этой области, поэтому я могу запросто не понимать тонкстей и важных моментов.
Просто эта штука бросилась в глаза и показалась (на мой нубский взгляд) странной, поэтому решил поискать и спросить тут, чтоб быть уверенным, что я не пропустил какого-то простого способа, как побороть эту штуку, а то было бы тупо наделать костылей, а потом оказалось бы, что есть простое решение вопроса.
 
Цитата
NoWay написал:
простое решение вопроса.
Простейшее решение это
Код
if (нужная бумага) then
    делаем что надо
end
И это по-любому надо делать, так как откроете табличку какую-то "чисто посмотреть", даже при наличии фильтров, и все из нее к вам в скрипт поедет все равно. А вот когда к вам что-то не приехало, вот тут начинается метание икры, то ли фильтр какой-то включен, то ли просто сделок нет, то ли вам брокер бумагу отрезал. Зачем вот эти сложности себе создавать, один if все решает и ничего не стоит ни в плане сложности написания, ни в плане производительности квика, ни в плане трафика, все равно откроете любой новостной сайт и загрузите недельный квиковский трафик за три минуты.
 
Цитата
Anton написал:
Цитата
NoWay написал:
простое решение вопроса.
Простейшее решение это
Код
   if  (нужная бумага)  then 
    делаем что надо
 end 
  
И это по-любому надо делать, так как откроете табличку какую-то "чисто посмотреть", даже при наличии фильтров, и все из нее к вам в скрипт поедет все равно. А вот когда к вам что-то  не приехало , вот тут начинается метание икры, то ли фильтр какой-то включен, то ли просто сделок нет, то ли вам брокер бумагу отрезал. Зачем вот эти сложности себе создавать, один if все решает и ничего не стоит ни в плане сложности написания, ни в плане производительности квика, ни в плане трафика, все равно откроете любой новостной сайт и загрузите недельный квиковский трафик за три минуты.
проблем if/else/end написать нет и понятно, что проверять все надо независимо от фильтров квика; есть сомнения по поводу того, насколько критично будет для моих целей постоянно проверять лишние 200-500 опционов , а раз в минуту - 12 тысяч ( когда у них поменяется теор цена и OnParam вызовется каждым опционом)

у меня последний опыт с квиком - vba и эксель, и там лишние 10К if/else уже играют роль
в случае с QLUA эти 500 - 10К незначительная нагрузка?
 
Цитата
NoWay написал:
насколько критично будет для моих целей постоянно проверять лишние 200-500 опционов , а раз в минуту - 12 тысяч ( когда у них поменяется теор цена и OnParam вызовется каждым опционом)
Не будет критично. Вся ТВС за день выкидывается скриптом за секунды, а там миллион-два записей есть. Можете попробовать запустить следующий скрипт и перезаказать ТВС, увидите, насколько медленнее будет работать, чем без скрипта (спойлер - ненамного).
Код
local stopflag = false
local f = io.open(getScriptPath() .. "\\attlog.txt", "w")

main = function()
   while not stopflag do
      sleep(1000)
   end
end

OnS top = function()
   stopflag = true
end

OnAllTr ade = function(t)
   f:write(string.format('%s %s\n', t.class_code, t.sec_code))
end
 
Рекомендую отключить опцию  "Исходя из настроек открытых  пользователем таблиц" навсегда
и настроить квик  вручную
так как нет надобности каждый день  перестраивать все заново.
------------------
В итоге будете точно знать что у вас приходит.
 
Цитата
Николай Камынин написал:
Рекомендую отключить опцию  "Исходя из настроек открытых  пользователем таблиц" навсегда
и настроить квик  вручную
так как нет надобности каждый день  перестраивать все заново.
------------------
В итоге будете точно знать что у вас приходит.
На самом деле тут тоже есть свои неудобства
Надо каждый раз делать вручную проверку, не добавились ли новые опционы, которые могли бы быть интересны моей программе (например опционы определенной даты экспирации). К примеру если я хочу делать аналог опционной доски и хочу видеть все опционы данной серии, тогда надо каждый день проверять, не приехали ли новые.
Если таких "досок" штук 10-15, то это уже не самая приятная рутина
 
Нормальный способ есть, создаем таблицу луа с ключами - кодами бумаг и значениями boolean, в колбеке вместо тысячи иф просто берем из этой таблицы значение по коду бумаги (луа индексирует таблицу за O(1)). Получаем
1) true - бумага нам известна и выбрана для обработки
2) false - бумага нам известна и не выбрана для обработки
3) nil - бумага нам неизвестна, сигналим юзеру, что появилась новая и нужно его решение. Естественно, не из колбека сигналим, иначе повесим квик.
Но вот наличие фильтров эту простую и эффективную схему портит, появляется неопределенность, стоит там галка не стоит, а может кто-то открывал таблицу и закрыл потом и галка сбросилась, а может еще тысяча вариантов. Чистой воды убийство детерминизма эти фильтры.
Страницы: 1
Читают тему (гостей: 1)
Наверх