Блог им. YUROCK13

Компьютер и скорость работы Quik.

Относительно давно был здесь топик, где автор рассказывал, как победил зависания квика, установив дополнительный вентилятор охлаждения на ноут, и он по своим наблюдениям сделал вывод, что Quik сильно напрягает и разогревает процессор.
 Достоверность его выводов, я сегодня подтвердил опытным путем.  В комнате сделал перестановку и убрал системный блок в угол, поставив рядом с батареей. И получился он у меня зажат между стеной и столом, и другой стеной сзади.  Причем зазоры я ему оставил между стенами не менее 10 см для вентиляции.
 Включил робота в отладочном режиме, поставил ему мониторинг всего четырех пар инструментов, так как волновала не производительность, а проверялся на логические ошибки и пошел домашними делами заниматься.
 Причем робот для расчета берет данные из стакана котировок и для заказа данных я использую функцию Subscribe_Level_II_Quotes(CLASS_CODE[i], SEC_CODE[i]). Так как преследую цель минимум различных манипуляций с квиком, когда работает робот, и не хочу открывать стаканы руками. Заметил такую вещь, что когда ставишь роботу мониторинг с выше 30 пар инструментов, то он в 30% и более не видит стаканов. Тогда я написал резервный вариант, если нужные данные не были получены из стакана из за  отсутствия, то он начинает их рассчитывать приближено, через данные от функции getParamEx. И каждые сто тысяч циклов робот выводит сообщение, в котором показывает в процентах сколько расчетов он совершил используя резервный вариант получения данных. 
 Опытным путем я выявил, что Quik не всегда выполняет функцию Subscribe_Level_II_Quotes, а иногда ее игнорирует и что на это влияет, толком не мог понять. И если открыть окна 30-40 стаканов руками, то квик либо зависает из за низкой скорости интернета, либо работает робот без резервного варианта получения данных, так как данные стаканов всегда доступны. Вот получается такая хитрая функция Subscribe_Level_II_Quotes, она вроде заказывает данные стакана по инструменту, но иногда не заказывает и какие факторы на это влияют не понятно.
 Ну вот работает мой робот, никаких я ему стаканов в Quik не открывал, все он сделал программно. Время на 100000 циклов у него было около 6 мин. и все данные он получал из стакана. Подхожу я к компьютеру минут через 50 и вижу, что на четыре инструмента он уже 80% получает данные по резервному варианту, то есть данные стакана ему не доступны. А время цикла увеличилось и я даже после 20 мин не вижу окончания 100000 тыс. циклов. Даже мышка тупит, не всегда есть ответ на нажатие лев. клавиши. Засовываю руку в угол,  там не воздух, а кипяток.  Вытащил системник из угла, взял фен и давай холодным  воздухом дуть внутрь решетки, на вход охл. процессора. Уже через 10 минут, опять ушло на 0 резервное получение данных, а цикл вернулся к 6 минутам. Вот как то так. Подумал, что для корректной работы нужно поставить принудительную еще вентиляцию, а то сеть позволяет, сервер позволяет, а компьютер не выдерживает нагрузки.
  • обсудить на форуме:
  • QUIK
★11
29 комментариев
на ноуте робота гонять самое то 
avatar
вроде же в квике можно выводить все потоки через ODBC напрямую в базу данных, зачем вообще встраиваться в его код с помощью lua, кроме как заявки выставлять?
avatar
Макс Обухов, теоретически можно, а практически у меня такого опыта нет, и не сталкивался я с ODBC, может и дойду до этого. Я ни сколько не программист, все мои знания это qbasic в школе, Ассемблер для пик микроконтроллеров и языки МЭК для программирования промышленных контроллеров, а также средства разработки программного обеспечения codesys, GX IEC Developer.
 Нет у меня практического опыта в написании независимых приложений под различными ОС. Надо было мне немного автоматизировать КВИК ознакомился с брошюркой языка LUA и дополнительных функций для квика, и подумал вот это шара, не сложней чем ассемблер, и главное у меня в голове возник алгоритм, как это все исполнить и в принципе работает. Может в будущем и изучу С++, visual studio, ODBC. Но на это надо время, и с этим надо работать на практике, везде нюансов хватает. А пока что для меня самый простой путь, это скриптовые языки в готовых приложениях. Ведь не зря их делают и под quik — Qlua, ecxel — VBA, 1С.  Они позволяют без практического опыта и знаний  большого перечня различных библиотек, решать задачи связанные с этим приложением. Все мои проблемы в принципе не выходят за пределы квик. И порой чтобы написать скрипта, достаточно прочитать маленькую брошюрку к используемому языку и иметь понятный алгоритм в голове.

Роджер (веселый)., ODBC — это просто. По сути это коннектор к базе данных. Ставите себе какой нибудь mysql, создаете таблички, настраиваете подключение и вуаля. Делается ну за пару часов. А дальше любым скриптовым языком хоть lua работаете с базой, а в квик только сигналы отправляете купить/продать/заявка и т.п. Преимущество в том, что для таких задач нормальная БД гораздо лучше подходит, нежели весьма убогий и тормозной внутренний мир квика
avatar
Макс Обухов, это ведь надо приложение писать, которое будет обрабатывать табличку,  ecxel или 1с если туда экспортировать, будут наверное тормознутей квика. Плюс у меня всегда стоят лимитные заявки, которыми надо управлять, снимать, ставить новые. В идеале то конечно в плане универсальности, лучше изучить создание приложений под ОС windows. И используя стандартные форматы обмена данными, расчетную часть оставить в своем приложении.  Но все равно, писать программы для любых торговых терминалов гораздо сложней, чем в конкретном на его языке. Придется много различных трудностей решить.
arqatech.com/ru/support/files/quik-workstation/
Самую новую ставьте 8.11


Температура проца  легко мониторится  https://www.hwinfo.com/
Проц ниже 70 градусов,  это холодный  проц!
Проц 70-90 градусов горячий, выше  90 градусов бывает при разгоне,  там и 110 можно увидеть.
Не надо фанатеть по охлаждению, сделайте  обычное недорогое хорошее охлаждение. Никакое  охлаждение не сделает ваш комп в разы  мощнее,  а софт безглюковым.
И помните,  новая компутерка, 6 ядер рязани, 16 оперативы ddr4 3200,  1 терабайт М2  стоит всего  50 к  рублей.
Алексей Никитин, квик однопоточный :) Нужен процессор с максимальной частотой на одно ядро (желательно без буста), в этом плане интелы помощнее были, когда я последний раз смотрел.


avatar
А зачем вам 30 -40  стаканов ?  вероятно вам  нужнен только бид офер,  а  его легко взять из таблицы  котировок, и  это  не создает дикой  нагрузки  как  стаканы 
Алексей Никитин, Ну как Вам сказать. Все зависит от заявки, зная стакан я могу рассчитать цену, или как она в моменте просядет при удовлетворении моей заявки с запасом. И могу просчитать среднюю цену исполнения моей заявки. А зная бид и офер, я не знаю конечной цены удовлетворения моей заявки. Это уже альтернативный вариант, где я по биду и оферу рассчитываю цену удовлетворения моей заявки используя средние значения из статистики. Для заявки сто тысяч на ликвидном инструменте, почти одно и тоже. А вот для миллиона уже разные значения. И при доступности стакана, данные берутся по времени быстрей, чем getParamEx. Точнее код исполнен таким образом, что сначала трижды пытаюсь получить стакан, если не получилось, то уже в через заказ данных через текущую таблицу. Из за этого очень долго.
Роджер (веселый)., мде! квик конечно по прежнему грусть!
Жутко тормозной.
avatar
У меня может быть открыто 4-5 терминалов, и всё работает норм. Но стоит запустить Квик и всё… ноут тормозит донельзя…
𝗙𝗼𝗿𝘁𝘂𝗻𝗮, каких терминалов?
avatar
asfa, mt5, jforex, tos, multicharts
Где-нибудь в циклах опроса стаканов используется функция sleep?
Если нет, то попробуйте вставить. Должно разгрузить процессор.

avatar
Я на ноуте увеличил задние ножки, приклеил вырезанные из резины толщиной 5 мм. к штатным.
Ноут греться стал заметно меньше.
avatar
1. попробуй действительно делать sleep паузы между опросом котировок,
2. попробуй как это будет отрабатывать если окошко квика минимизировать
avatar
ПBМ, Да посыл то топика был в том, что если вы работаете в квике и еще и роботом, то следите за температурой процессора. Так когда комп на столе стоял, то я даже не замечал нагрева. И то что у квика есть свой внутренний мир, который сам решает, какую функцию выполнять и как ее выполнять и тем самым пытается поддержать свою работоспособность в тех или иных внешних обстоятельствах, где температура проц, объем запрашиваемых данных, скорость сети имеют значения. На то, будет он выполнять код или нет, как ты от него этого хочешь.
Роджер (веселый)., Зависит от способа работы с катком, например если параллельная работа нескольких функций у вас с выбором результата той что быстрее ответит, то может быть Квик замедляется, но отвечает, но выбирается более быстрый ответ и от этого кажется что Квик вообще не ответил на медленный запрос.
А если медленно отвечающую функцию нагружать запросами, у нее скопится очередь запросов и станет только хуже со временем ответов, вот я о чем
avatar
Вижу предложения по уменьшению опросов стаканов… А зачем их вообще опрашивать, там же колбэк есть? Т.о. если стакан не меняется, функция не срабатывает вообще.
avatar
Денис Г., вот в том то и дело, что если все поставить колбэк, то при мониторинге 20 ликвидных инструментов квик зависнет не проработав и минуты. И покажет такую картинку.

при принудительном нагревании процессора возрастают течки тока, что может привести к необратимой потери части работающих ячеек.
вообще не пойму а квик многопоточное приложение? как-то смотрел нагрузку проца и там одно ядро загружено по полной, а остальные пять сочкуют)
avatar
Glago, каждая функция main() в скрипте QLua создаёт отдельный поток. Функции обратного вызова (OnAllTrade() и т.п.) работают в главном потоке.
avatar
Rostislav Kudryashov, вы не поняли, имелись ввиду ядра многоядерного процессора
avatar
Glago, квик однопоточный. Дополнительные потоки только под скрипты создаются, но это именно отдельный поток или суррогат внутри луа — я не в курсе.
avatar
задайте вопрос на форуме арки — там полно программеров тусит, может что дельное посоветуют
avatar
И как, помогают эти роботы? Много денег приносят? :)
avatar
investor.jr, почти на 100% больше, чем скупка краткосрочных ОФЗ. При доходности ОФЗ26205 — 4,25% без учет. комиссий, дают доходность почти 9% уже с учетом комиссий. И это все синтетика (арбитраж) считай без риска. ОФЗ могут быть даже рискованней с учетом специфики нашего государства.
Роджер (веселый)., тоже думал что за херня, у меня комп достаточно мощный, за 300К брал, и одновременно запущены четыре торговых терминала всегда от разных брокеров, притом два из них квика. И вот недавно на квик один навешал 3-4 робота, да так что комп просто по ощущениям превратился в пентиум 1 или 2 ))) Мышка даже стала лагать. Сами роботы притом работают исправно, но все остальное начинает жестко подвисать. Вот сижу думаю что надо взять либо бук какой, либо второй комп под роботов, так как основной комп не должен быть так перегружен. Это просто писец какой-то.
avatar

теги блога Роджер (веселый).

....все тэги



UPDONW
Новый дизайн