Блог им. SaOLin
Последние две недели на всех мировых рынках резко повысилась активность, количество биржевых данных выросло в 2-3 раза. Из-за этого у многих пользователей терминал QUIK начал безбожно тормозить и виснуть. Сервера брокеров также с трудом переваривают повышение нагрузки и наплыв клиентов, желающих что-либо купить-продать (по слухам кто-то из брокеров висел аж целую неделю))) ).
На Смарт-Лабе появилось несколько постов с советами как избавиться от тормозов. И меня сильно поразила неадекватность предлагаемых действий. Люди готовы покупать новое железо за бешеные деньги, создавать какие-то командные файлы и заниматься прочей ерундой. А нужно всего лишь включить голову и разобраться в причинах тормозов. Когда программисты разрабатывают какую-либо программу, они всегда оптимизируют ее для работы на определенном «средне статистическом» компьютере, закладывая при этом кратный запас по производительности. Если вдруг эта программа (QUIK) начинает неадекватно тормозить и виснуть на обычном современном компьютере — значит дело почти наверняка не в железе, и даже не в самой программе, а в ее конфигурации (настройках). Т.е. нам нужно правильно настроить терминал QUIK , а уже потом апгрейдить железо, менять туда-обратно версии и бухтеть на Смарт-лабе.
Обращаемся к Яндексу и находим два топика на сайте разработчика QUIK-a с официальными рекомендациями по повышению производительности.
https://forum.quik.ru/forum1/topic1539/
https://forum.quik.ru/forum1/topic1540/
Там написано много интересных нюансов, кому действительно нужно — прочитайте в первоисточнике. Постараюсь выделить главное на основе моего личного опыта.
1) Файл info.log
Чтобы этот файл не разрастался до неприлично больших размеров, заходим в настройки и выбираем «Только данные, отражающие текущее состояние».
2) Отключаем получение лишних данных.
В настройках выбираем пункт «Исходя из настроек открытых пользователем таблиц».
Опционально можно включить галочку «Запрашивать данные раз в 1 сек.», но по моему опыту эта опция не столь критична.
3) Таблицы «Клиентский портфель» и «Состояние счета».
В настройках включаем пункт «Обновлять через 1 секунд».
Отключаем галочку «Пересчитывать при изменении позиций».
Лично для меня именно эти два пункта стали критически важными. До их настройки мой терминал мог висеть по несколько минут не реагируя ни на какие команды и грузя ядро процессора на 100%. После — QUIK стал летать несмотря на 150 открытых окон (графики, стаканы и куча других окошек), загрузка ЦП стала 1-3%. Причина — на моем счете ведет торговлю HFT-робот (на стороннем сервере), который ежесекундно выставляет/снимает десятки заявок. При каждом(!) изменении в заявках QUIK полностью пересчитывал весь портфель, тратил на это уйму процессорного времени, уходя при этом в состояние зависания.
4) Таблицы «Обезличенных сделок», тиковые графики, файл alltrade.dat
Если нет критической необходимости, лучше полностью отключить получение тиковых данных (они же «обезличенные сделки»). Закрыть все тиковые графики и таблицы «Обезличенных сделок». Также открываем меню «Система» — «Заказ данных» — «Поток обезличенных сделок» и нажимаем кнопку «Очистить». Далее «Сохранить» и покидаем данное меню.
В QUIK-е есть особенность, что даже при заказе тиков по одному инструменту, терминал получает тики абсолютно по всем(!) инструментам, независимо от выбранных фильтров.
5) Таблица «Купить/Продать».
Однозначно закрываем эту таблицу, даже если она нам нужна. В ней отображаются ставки риска по всем маржинальным бумагам (по-русски «доступное плечо»). Например у брокера БКС в ней числится около 700 бумаг, и при каждом изменении цены любой из этих бумаг происходит пересчет таблицы. QUIK из-за этого уходит в полное зависание. Для меня таблица полезная, но смотреть ее я могу только до начала торгов, увы.
6) Возможно есть еще какие-то таблицы, оказывающие сильное влияние на производительность.
Сохраняем текущую конфигурацию («Система» — «Сохранить настройки в файл»). Начинаем по одной закрывать окна и вкладки. Смотрим результат. Возможно после закрытия определенных окон скорость работы терминала резко вырастет — значит мы нашли виновника. Радуемся и думаем что с этим делать.
Если после выполнения данных настроек ваш QUIK продолжает тормозить и глючить — вот тогда стоит начать играться с версиями терминала.
6-я версия однозначно самая шустрая. Но объективно морально устарела.
7-я версия шустрее 8-й. Причем 7.11-7.14 значительно быстрее 7.27 (по моим наблюдениям).
8-я версия. По моим наблюдениям 8.3 значительно меньше грузит процессор, чем например 8.1. В связи со скорыми изменениями на срочном рынке (подробнее https://smart-lab.ru/blog/599215.php) через несколько месяцев абсолютно все перейдут на 8-ку.
Но еще раз повторю — даже тормознутая 8-я версия при правильных настройках должна абсолютно комфортно работать в том числе на старом железе.
Сейчас я использую версию 8.1.0.30 от БКС и последние дни, несмотря на биржевую активность, QUIK редко грузит более 5% процессора, и работать в нем субъективно комфортно. И это при десятке вкладок, 100 открытых графиков, 50 стаканах и прочих таблицах. При этом у меня стоит компьютер 2014 года (уже не помню какой конфигурации). А на моем счете ежедневно выставляется 100-200 тысяч заявок и совершается много тысяч сделок по всем ликвидным акциям 1-2 эшелона (HFT-роботом, работающем на стороннем сервере). Сильно сомневаюсь, что нагрузка на ваш QUIK даже близко сможет приблизиться к моим условиям.
Всем спасибо за чтение. Буду рад, если мои советы кому-то помогут. Пишите в комментариях, возможно я упустил какие-то важные опции (например про пункт 3) я сам узнал пару дней назад и очень на себя матерился за годы тормозов и мучений).
На новом, 64-битовом Квике у меня такого не может возникнуть, т.к. на ПК стоит ОЗУ 8 Гбайт.
Rostislav Kudryashov, Очень странно. У меня в феврале был открыт стакан RIH0 и вроде бы никакого заметного повышения используемой памяти не было. В понедельник попробую, хотя возможно в 8.1 эффекта не будет в принципе.
А вот из-за активных торгов последние 2-3 недели 32-битный квик 6-й версии с полным info.log ежедневно вылетал с сообщением о нехватке памяти. Обычно где-то в 20.00-23.00. Но как бы не удивительно, последние недели полный суточный info.log весит 3-5 Гб, плюс 1.5-2 Гб alltrade.dat, что в сумме значительно превышает возможности 32-бит.
Кухонный трейдер, Если в такие моменты вы можете быстро открывать/закрывать окна в самом квике, легко переключаться между вкладками — то да, тормоза точно у брокера. Сейчас изредка лагают все брокеры, на то есть объективные причины. Но например у моего БКС 9 апреля 2018 всё ложилось в 10 раз сильнее чем на позапрошлой неделе. Т.е. они реально улучшили свои сервера. А вот Сбер похоже зеленый-неопытный )), судя по крикам на Смарт-Лабе.
Но бывает что тормозит именно клиентский терминал. Например я сам со своим QUIK-ом разобрался всего пару дней назад, а до этого пару лет думал что тормоза из-за 100 открытых графиков. А оказалось что все дело в двух галочках в настройках.
По больше бы таких «Прометеев» и Робин-гудов", пишущих, о наших насущных делах…
Спасибо, пост однозначно в избранное!
А можете простым языком объяснить за что отвечает п.2? В справке написано:
… но мне что-т все равно непонятно, что это за таблицы… а хочется всё такие понимать что отключаешь.a1pha, Есть таблица «Текущие торги» (в старых версиях называлась «Текущая таблица параметров»). В ней есть множество столбцов, типа, «Цена посл сделки», «Оборот», «Лот», «Лучшее спрос/предложение» и т.д. их там около 50. Все эти параметры постоянно обновляются, причем это происходит по каждой из тысяч бумаг, доступных в терминале. Например по бумагам типа Газпрома и Сбербанка может быть до 5 обновлений в секунду.
Если галочка включена — в файл info.log пишутся все обновления всех параметров по всем бумагам за текущий день. Это колоссальный объем данных, порядка 2-5 Гб ежедневно. Если галочка отключена — в памяти хранятся только актуальные значения (т.е. последние), они весят порядка 20-50 Мб.
У меня это пункт 1), а не 2).
a1pha, Мой пункт 2) Отключаем получение лишних данных.
Если у вас открыты таблицы только по акциям МосБиржи, то текущие параметры будут поступать только по ним. А например данные по акциям биржи СПб, или данные по опционам и фьючерсам срочной секции поступать не будут, т.к. они вам не нужны. QUIK сам выберет какие данные заказыват ьс сервера, а какие нет. Это будет сильно экономить и трафик и используемую память.
Спасибо вам большое за объяснение!
нахер вам смотреть на 50 бумаг и 20 графиков? и не надо загружать таблицу всех сделок — это тормозит сервак у брокера и всё зависает, когда тысяча дебилов, верящих что им она поможет, качают одновременно все сделки.
Андрей Андреичъ, Я не в курсе, торгую только фондовую секцию. Но вроде там по ссылке все четко расписано, что будет/не будет работать и на каких именно версиях.
https://forum.quik.ru/forum1/topic5117/
5) Таблица «Купить/Продать».
Подскажите что за таблица такая? В какой версии квика она так называется?
открыто:
Скажите, а откуда такие сведения — «В QUIK-е есть особенность, что даже при заказе тиков по одному инструменту, терминал получает тики абсолютно по всем(!) инструментам, независимо от выбранных фильтров»?
Stogov, https://forum.quik.ru/forum1/topic1539/
«Заказ полного набора всех сделок происходит вне зависимости от установленных в таблице обезличенных сделок фильтров или открытого тикового графика по конкретному инструменту.»
«Если, тем не менее, Вам нужны данные потока обезличенных сделок – рекомендуем определить список классов, которые Вам действительно необходимо получать. Трансляцию потока обезличенных сделок по остальным классам Вы можете отключить — для этого достаточно обратиться к Вашему брокеру.»
Я не проверял достоверность, но сотрудник ARQA пишет именно так. Меня это тоже удивило.
Единственное, это топик 2016 года. Возможно в новых версиях что-то поменяли.
Ребята! еще одна важная деталь! сделал все выше упомянутые настройки… в итоге выяснил что...
Тёмная тема супер тормозила, вернулся к светлой и всё полетело