Уменьшить объем памяти и время старта QUIK-это просто
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 13:35:04
, Посмотрел в док к QUIK
Код
-clear – очистить служебные файлы, которые содержат торговые
данные (info.log (или curr_data.log в зависимости от настроек терминала),
acnt.dat, alert.ik, alltrade.dat, trades.dat, orders.dat).
В действительности этот ключ приводит лишь к уничтожению файла info.log. Файл ,news.log не уничтожается , остаются и файлы *dat. ---------------------------------- Те действие этого ключа не соответствует документации. =================== Мой бат файл уничтожает все log файлы. При этом легко добавить в него удаление и других файлов. Кроме того, его действие прозрачно и управляемо. Т е велосипед не такой же, а другой.
Уменьшить объем памяти и время старта QUIK-это просто
написал: Да,я знаю, что разработчики всегда рекомендуют стирать файлы log Но про команду и ключи не знал. Можете дать ссылку на документацию, где это написано?
F1 > Раздел 1. Подготовка к работе > Ключи запуска Рабочего места QUIK.
Цитата
написал: Не нашел в установочном пакете файл clear.cmd. Можете показать где этот файл?
Видимо, его наличие зависит от версии, либо брокера. В 10-ой версии от ВТБ и Сбера он ещё есть, в Junior 12 - уже нет.
Цитата
написал: чтобы использовать ключ -clear при запуске info.exe. надо либо использовать командный режим либо написать bat Файл
Отнюдь. Достаточно в свойствах ярлыка QUIK, в строке "Объект" добавить " -clear".
Благодарю за подсказку.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 12:50:07
Цитата
Йцукен написал: колбэки внутри sleep должны вызываться или как?
Sleep останавливает поток main, а функции колбеков вызываются в другом потоке, на который sleep не действует.
Почему Quik ест так много памяти??
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 12:25:57
Почему Quik ест так много памяти??
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 12:22:05
Цитата
Serge123 написал: Только стартовал Квик 12.8.3.4, ещё не залогинился, а уже занято 500 Мб! Стартую с параметром -clear, не помогает. Очистки через clear.cmd и т.п. тоже. Залогинился к ВТБ, он начинает неизвестно что качать изо всех сил и уже 740 Мб!! Причём, день ото дня это число подрастает! При этом торгую 1 тикером и получаю по нему ТТТ и обезличенные сделки (и всё!), которые получаю с момента подключения. Это уже становится невыносимым. Где взять версию Квика, которая ещё не ела столько памяти? Я микросхемы памяти не произвожу.
Если у брокера единый счет, то других вариантов кроме 12.8 нет. -------------------------- Проверьте подписку в настройках. когда ставите новую версию то бывает что на установлена для всех инструментов, а их более 4000. --------------------- Объем занятой памяти после старта обычно уменьшается. Удаляется мусор и выгружается не используемое на диск. ------------------ Например, при соединении с сервером у меня занятая память возрастает до 900 Мбайт. но сейчас она 43 MБайт ------------------------
Уменьшить объем памяти и время старта QUIK-это просто
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 07:34:57
, чтобы использовать ключ -clear при запуске info.exe. надо либо использовать командный режим либо написать bat Файл -------------------------- что я и сделал для тех кто не хочет или не знает как писать Bat файл и трахатся с командным режимом.
Уменьшить объем памяти и время старта QUIK-это просто
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 07:31:00
, Не нашел в установочном пакете файл clear.cmd. Можете показать где этот файл?
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 07:26:09
Третий этап старта, после того как разместил SBERF в другом окне, теперь занимает 1 минуту вместо 4. ---------------------- Объем памяти 970, при отключении индикаторов 890.
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
20.02.2026 07:06:07
Провел тесты, которые доказывают, что индикаторы на Lua и построение графиков являются определяющими в задержке запуска терминала по крайней мере 1-го этапа старта. ------------------------ Результаты: ----------------------------- 1) Исходный вариант рабочего варианта терминала. 90 сек. 680 Мбайт 2) Отключил скрипты Lua . Удалил каталог LuaIndicators. 45 сек. 620 Мбайт 3) Удалил построение графика 1мин для SBERF 20 сек 550 Мбайт ------------------ Полагаю, что сокращение времени от 2 до 4 раз наглядно доказывают влияние Lua индикаторов и графиков на время первого этапа старта терминала. ================= Резюме: В результате недельных исследований и тестирования терминала QUIK удалось выявить причины тормозов первого этапа старта терминала. В итоге время сократилось 3-6 раз, а занимаемая память с 900 до 680. ================ Остался лишь один вопрос, который я не могу понять. ----------------- Почему размер занимаемой памяти в третьем этапе старта терминала снова увеличивается до 900 Мбайт, при том, что ничего нового в начале торгов не возникло. --------------------- Вопрос риторический, так как дать на него профессиональный ответ никто не может. Или может?
Уменьшить объем памяти и время старта QUIK-это просто
написал: Предлагаю разработчикам включить этот bat файл в пакет установки.
В папке QUIK уже есть файл clear.cmd. Также, можно использовать ключ -clear при запуске info.exe. Поздравляю с изобретением очередного "велосипеда"!.
Да,я знаю, что разработчики всегда рекомендуют стирать файлы log Но про команду и ключи не знал. Можете дать ссылку на документацию, где это написано?
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 12:12:41
Для проверки своей гипотезы о том, что задержку создает размещение price двух инструментов в одном окне, вынес SBERF в отдельное окно
Время загрузки первого этапа составило 46 секунд т е гипотеза верна. Объем занятой памяти с применением bat файла тоже сократился и составляет 588 Мбайт вместо ранее 900.
Уменьшить объем памяти и время старта QUIK-это просто
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 11:04:40
Предлагаю разработчикам включить этот bat файл в пакет установки.
Уменьшить объем памяти и время старта QUIK-это просто
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 11:00:54
Всем, добрый день, -------------------- Ранее я уже писал, что в старте терминала QUIK условно можно выделить 3 этапа. ------------ Первый - автономная загрузка терминала до момента запроса пароля. Второй - ожидание кода авторизации со смартфона Третий - загрузка с сервера брокера текущего состояния торгов ------------------------ В этой теме я расскажу как сократить первый этап. Для этого написал bat файл (nk.bat)
Код
@echo off
del /f /q "*.log"
start "" "info.exe"
создайте его текстовым редактором и поместите в папку QUIK, где находится info.exe ---------------- чтобы запустить QUIK надо запустить этот файл (щелкнуть вместо info.exe по файлу nk.bat) ==================== Зачем нужен этот файл? Проблема в том, что терминал QUIK зачем-то при старте загружает в память info.log (этот файл особо влияет на объем занимаемой памяти) Данный bat файл сначала сотрет все log файлы, а потом запустит QUIK. ---------------------- Если не хотите удалять все лог файлы, то вместо *.log поставьте info.log . Этого достаточно, чтобы получить сокращение. ----------------------------- У меня при использовании этого bat файла объем памяти занятой терминалом сокращается с 900 Мбайт до 600 Мбайт. ------------------------- Для сбора статистики просьба сообщить как влияет bat файл в Вашем случае на старт терминала.
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 10:33:27
Как следует с вышеприведенного эксперимента , основной причиной медленного старта терминала является размещение на графике двух разных инструментов. Если один любой из инструментов убрать с этого графика то время первого этапа старта сокращается с 240 секунд ло 40 секунд. ------------------------------ Следующий эксперимент показывает как влияет на время загрузки наличие индикаторов и открытых окон. --------------------------- Если в моем варианте QUIK убрать окно с интервалом 1 минута (это самое большое окно на графике), время первого этапа старта сокращается до 10-15 секунд. -------------------------- Если убрать оставшиеся два окна с графиками, то время первого этапа сокращается до 6-10 секунд. ----------------------- Далее я расскажу как сокращать объем занимаемой памяти при старте а также напишу свои предположения о причинах таких тормозов -------------------- Продолжение следует..
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 08:26:53
Как и обещал, рассказываю в чем причина медленной загрузки и большого объема занимаемой памяти. --------------------------------- Рассматриваю лишь первый этап старта терминала, когда нет связи с сервером. ------------------------------------ Вам интересно узнать почему загрузка длится 4 минуты (240 секунд)? ================== Все оказалась очень просто. В QUIK есть ошибка. Она связана с тем, что на одном графике нельзя совмещать различные инструменты. ------------------- Хочу обратить внимание на то, что разработчики неправильно указали ошибку - считая что она связана с наличием диаграмм графиков с различными интервалами. --------------------------------- Вот доказательства; У меня есть три диаграммы с графиками сбербанка 1 минута, 30 минут и 1 день. На диаграмме 1 минута ВНИМАНИЕ!!! совмещены графики SBER и SBERF -------------------------- Вот терминал с исходными диаграммами: и он загружается 240 секунд ------------------------------------------------- а это терминал на котором отсутствует график SBERF на 1 минутой диаграмме Я удалил файл его истории из архива
и он загружается 40 секунд ================================ Продолжение следует...
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 07:49:08
Цитата
Pivaev Maxim написал: , уберите график SBERF [Price] из диаграммы, в котором интервал 1 минута. Время запуска значительно сократиться.
Согласен. Я тоже это нашел. ------------------- Но Вы написали : в которых создано сразу несколько графиков, и, при этом, временные интервалы существенно отличаются между собой. ------------------- А это утверждение не верно. Интервалы на этом графике 1 минута. ============================================== Попробуйте сделать так. Удалите из моего пакета все диаграммы с другим интервалом кроме диаграммы 1 минутой. ================================== Вы удивитесь, но время загрузки не изменится по сравнению с исходной, когда ничего не удаляли. ===================== Поэтому Вы ошибаетесь в диагностике причины. =================== Причина другая. Она состоит в том, что на графике совмещены два инструмента , а то что есть диаграммы с разными интервалами не влияет на время загрузки. ======================== Я не против если Вы оплатите мою работу по поиску ваших глюков.
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 07:06:35
, Какие графики надо удалить чтобы терминал загрузился быстро?
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2026 06:52:11
, Нашел причины всех этих проблем, в числе которых и указанные выше. Отчет об исследованиях напишу позже,
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 10:48:09
это сейчас
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 10:16:34
а это сейчас:
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 10:13:56
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 10:02:54
В данный момент совершены сделки и объем занимаемой памяти составляет 976 МБайт
написал: На объем и время при старте влияет повторный расчет индикаторов на Lua, циклический расчет индикаторов (возможно и графиков) для каждой свечи при старте и размер сохраненной истории, по которым считаются эти индикаторы.
Но как вы догадались, Холмс? Расчёт индикатора при старте не должен сильно отличаться от расчёта при его добавлении на график. При добавлении даже три раза пересчитывается, а при старте терминала - "только" два раза. Но если в индикаторе используется getCandlesByIndex, то есть свои нюансы в расчётах. Чтобы оценить влияние Lua-индикаторов, можно переименовать папку LuaIndicators, и сравнить время загрузки с индикаторами и без.
Приведите доказательства, Ватсон.
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 07:12:35
После указанное выше рабочей гипотезы, я добавил в индикаторы сборщик мусора в начале расчета. ------------------------- Не берусь утверждать, является ли это причиной, но сегодня при старте объем занятой памяти составил 875 Мбайт, а время третьего этапа составило 2 минуты. -------------------- Так как это лишь единственный эксперимент, то исследования продолжаются.
Причины тормозов при старте. Вскрытие покажет.
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 06:54:12
Всем,добрый день, Предлагаю обсудить проблему тормозов при старте терминала. ------------------- До последней прошедшей недели пользовался версией 8.7 Неоднократно пытался установить более свежую версию, но всегда получал тормоза и возвращался к 8.7 ------------------- На прошедшей неделе Сбербанк перешел на единый счет и мне пришлось устанавливать версии 12 так как исчезли параметры по фьючерсам. ----------------------- Сначала установил версию 12.6 которая выложена у Сбербанка. Получил увеличение объема занятой памяти терминалом в 2 раза с 600 Мбайт до 1200Мбайт и жуткие тормоза -------------------------- По совету разработчиков установил новую версию 12.8.4 Объем занимаемой памяти при старте сократился с 1200 до 900. Почему он изменяется ? ----------------------------- Самое странное, что во время торгов объем занимаемой памяти постепенно уменьшается. Если никаких действий не совершать , то объем занимаемой памяти сокращается до 50Мбайт. Но если начать что-то делать, то он снова увеличивается, но не более 700, а иногда и не более 350Mбайт. -------------------- Трудно что-либо придумать почему так происходит. -------------------------- Но так как максимальный объем всегда получается при старте и это приводит к очень длительной загрузки, то давайте обсудим возможные причины этого. ---------------------------- Время старта можно разделить на три этапа. Первый - запуск терминал. Второй -ввод пароля Третий- ввод кода со смартфона. ------------------- самый короткий интервал - второй. Задержки при нем пока не будем рассматривать. ----------------- Сначала я предположил, как и многие на форуме, что проблема медленной загрузки в длительном получении начальной информации с сервера брокера. Но теперь у меня другая рабочая гипотеза. ================= Основа ее в том, что время первого и третьего этапов одинаковое. Характерно , первый и третий этапы имеют одинаковое значение времени исполнения -в моем случае это по 4 минуты каждый. Но в первом этапе нет никакой связи с сервером. Получается, что соединение с сервером не влияет ни на объем занимаемой памяти ни на время старта. ================= Поэтому я считаю, что указанные проблемы (время старта и объем занимаемой памяти ) связаны исключительно с вычислениями, которые совершает терминал при старте. ===================== Более того, эта гипотеза подтверждается тем, что в третьем этапе терминал сначала уменьшает объем занятой памяти до 350 Мбайт. А потом медленно начинает увеличивать его до тех же 900 Мбайт что и в первом этапе. ===================== Как правило время и занятая память у всех пользователей разные. Это связано с конкретной настройкой интерфейса. Т е числом окон с графиками, числом таблиц и стаканов и числом скриптов на Lua. ===================== Полагаю, что максимальный объем памяти в момент старта возникает по причине, возможно не единственной, но одной из основных, РАСЧЕТА ИНДИКАТОРОВ НА LUA. ======================== Известно, что индикаторы на луа вычисляются несколько раз при открытии графика. ---------------------------------------- В результате такого расчета возникает куча мусора от этих расчетов, так как сборщик мусора при старте не работает. ------------------------ В начале третьего этапе терминал удаляет все расчеты первого этапа и память сокращается. ------------------------- Так как у меня установлена подписка вручную, то ничего нового при соединении с сервером не приходит. --------------------------------- Терминал снова начинает свой расчет индикаторов и графиков и это увеличивает объем памяти до максимума для всей сессии. ------------------------- Но это еще не все. Длительный расчет индикаторов и графиков при старте связан с тем, что хотя все свечи от первой до последней имеются в начале расчета, Расчет индикаторов, а возможно и построение графиков выполняется для каждой свечи отдельно в цикле Calculate. Так как большинство индикаторов - это интегральная обработка данных в окне, то при 3000 свечах (это то что сохраняет сервер) для каждого индикатора в цикле при старте вычисления в скользящем окне выполняются 3000 и более раз. Если история сохраняется на ПК, то со временем тормоза и объем занимаемой памяти растет. -------------------------------- Предположу, что это тупиковый момент в развитии QUIK и он требует кардинальных изменений. --------------------------- Еще заметил, что число подписанных инструментов не влияет на объем и время при старте. ------------------------ Резюме: На объем и время при старте влияет повторный расчет индикаторов на Lua, циклический расчет индикаторов (возможно и графиков) для каждой свечи при старте и размер сохраненной истории, по которым считаются эти индикаторы. ---------------------------- Тот факт, что объем памяти при старте версии 12.6 на 300 Мбайт больше, чем при старте версии 12.8 говорит о том, что, как говорил сатирик "что-то не так в консерватории" ------------------------- Возможно, решением было бы исключение повторных расчетов индикаторов и принудительный запуск сборщика мусора при завершении третьего этапа. ------------------------- Исследования продолжаются.... ========================= P.S. В настоящее время кувыркаюсь с единим счетом. Постоянно исчезают позиции по фьючерсам. Кроме того, как уже писал на форуме,но без ответа, сваливание в кучу информации об акциях и фьючерсах имеет не только систематические ошибки, но и противоречит ФЗ "О рынке ЦБ" Но это уже другая история
как вернуть левую шкалу на график?
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2026 05:27:14
Миллион раз так делаю. Иногда не сразу получается. Перед написанием совета специально сделал это несколько раз без особых проблем.
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 13:55:43
Обнаружил такой факт. Если в открытом окне с интервалом 1 минута сменить интервал на 5 минут, то объем занятой памяти сокращается примерно на 60 Мбайт.
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 13:11:37
Специально удалил таблицу ТТТ ничего не изменилось
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 13:07:44
Цитата
Nikolay написал: Сегодня специально убрал все таблицы текущих торгов, особенно с иностранными акциями. Была, оказывается, открыта в свернутом виде. И терминал прямо ожил. Т.е. ТТТ с большим числом записей дает такую загрузку терминала.
, Если у Вас квики от нескольких брокеров, то напишите какой размер у них файла справочника sec.dat.
Окно сообщений закрывает окно ввода
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 07:28:02
Версия 12.8.3.4 при старте терминала:
Как записать данные в массив?
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 06:49:01
Пример записи данных в таблицу скрипта есть в док QLua Приложение 1
Как записать данные в массив?
Пользователь
Сообщений: Регистрация: 30.01.2015
17.02.2026 06:41:48
Цитата
prugramzer написал: Квик выдает "attempt to index a nil value (local 'cc14')" , и в сс13 тоже ничего не пишет, тоже nil Как записывать данные в массив на луа?
ошибка: local cc13, cc14={}
cc13 -таблица, а сс14 -nil ---------------- Правильно: local cc13, cc14={},{}
Скрипт для обнаружение задержек данных
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 18:32:12
Вот так сегодня тормозит Сбербанк:
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 11:11:18 2026,задержка(сек)=60
Mon Feb 16 11:11:48 2026,задержка(сек)=90
Mon Feb 16 11:12:18 2026,задержка(сек)=120
Mon Feb 16 14:25:19 2026,задержка(сек)=39
Mon Feb 16 14:25:49 2026,задержка(сек)=69
Mon Feb 16 14:26:19 2026,задержка(сек)=99
Mon Feb 16 14:26:49 2026,задержка(сек)=129
Mon Feb 16 16:43:49 2026,задержка(сек)=32
Mon Feb 16 16:44:19 2026,задержка(сек)=62
Mon Feb 16 16:44:49 2026,задержка(сек)=92
Mon Feb 16 16:45:19 2026,задержка(сек)=122
Mon Feb 16 16:45:49 2026,задержка(сек)=152
Mon Feb 16 19:22:50 2026,задержка(сек)=42
Mon Feb 16 19:23:19 2026,задержка(сек)=72
Mon Feb 16 19:23:50 2026,задержка(сек)=102
Mon Feb 16 19:24:20 2026,задержка(сек)=132
Mon Feb 16 19:24:50 2026,задержка(сек)=162
Mon Feb 16 19:25:50 2026,задержка(сек)=58
Mon Feb 16 19:26:20 2026,задержка(сек)=89
Mon Feb 16 19:26:50 2026,задержка(сек)=119
Mon Feb 16 19:27:50 2026
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 18:30:00
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 11:11:18 2026,задержка(сек)=60
Mon Feb 16 11:11:48 2026,задержка(сек)=90
Mon Feb 16 11:12:18 2026,задержка(сек)=120
Mon Feb 16 14:25:19 2026,задержка(сек)=39
Mon Feb 16 14:25:49 2026,задержка(сек)=69
Mon Feb 16 14:26:19 2026,задержка(сек)=99
Mon Feb 16 14:26:49 2026,задержка(сек)=129
Mon Feb 16 16:43:49 2026,задержка(сек)=32
Mon Feb 16 16:44:19 2026,задержка(сек)=62
Mon Feb 16 16:44:49 2026,задержка(сек)=92
Mon Feb 16 16:45:19 2026,задержка(сек)=122
Mon Feb 16 16:45:49 2026,задержка(сек)=152
Mon Feb 16 19:22:50 2026,задержка(сек)=42
Mon Feb 16 19:23:19 2026,задержка(сек)=72
Mon Feb 16 19:23:50 2026,задержка(сек)=102
Mon Feb 16 19:24:20 2026,задержка(сек)=132
Mon Feb 16 19:24:50 2026,задержка(сек)=162
Mon Feb 16 19:25:50 2026,задержка(сек)=58
Mon Feb 16 19:26:20 2026,задержка(сек)=89
Mon Feb 16 19:26:50 2026,задержка(сек)=119
Mon Feb 16 19:27:50 2026
Гарантируется ли вызов колбэка при получении Квиком новых данных?, Вопросы разработчикам QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 16:09:46
Колбек вызывается перед записью в таблицу сделок ----------------------- Если колбек не вызван, то и записи в таблицу не будет
Гарантируется ли вызов колбэка при получении Квиком новых данных?, Вопросы разработчикам QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 16:08:49
Цитата
Йцукен написал: В документе "Использование Lua в Рабочем месте QUIK.pdf" на стр. 5-8 приведено описание событийной модели, как одного из подходов написания скриптов Lua в Рабочем месте QUIK. На стр. 8 приведён пример скрипта NumberOfTradesOnCallbacks.lua
Вопросы: 1) Гарантирует ли данный подход, что все данные по сделкам, которые получит терминал с момента запуска скрипта, будут обработаны скриптом в колбэке OnTrade? 2) Может ли быть такое, что данные на рабочее место поступили, а колбэк не был вызван?
1 да 2 нет
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 16:07:29
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 11:11:18 2026,задержка(сек)=60
Mon Feb 16 11:11:48 2026,задержка(сек)=90
Mon Feb 16 11:12:18 2026,задержка(сек)=120
Mon Feb 16 14:25:19 2026,задержка(сек)=39
Mon Feb 16 14:25:49 2026,задержка(сек)=69
Mon Feb 16 14:26:19 2026,задержка(сек)=99
Mon Feb 16 14:26:49 2026,задержка(сек)=129
Mon Feb 16 16:43:49 2026,задержка(сек)=32
Mon Feb 16 16:44:19 2026,задержка(сек)=62
Mon Feb 16 16:44:49 2026,задержка(сек)=92
Mon Feb 16 16:45:19 2026,задержка(сек)=122
Mon Feb 16 16:45:49 2026,задержка(сек)=152
Mon Feb 16 17:05:49 2026
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 13:29:06
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 11:11:18 2026,задержка(сек)=60
Mon Feb 16 11:11:48 2026,задержка(сек)=90
Mon Feb 16 11:12:18 2026,задержка(сек)=120
Mon Feb 16 14:25:19 2026,задержка(сек)=39
Mon Feb 16 14:25:49 2026,задержка(сек)=69
Mon Feb 16 14:26:19 2026,задержка(сек)=99
Mon Feb 16 14:26:49 2026,задержка(сек)=129
Mon Feb 16 14:27:19 2026
Варианты построения робота
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 12:03:54
Тема предназначена для начинающих писателей роботов ------------------ Вариантов написания роботов в терминале QUIK на луа множество. Кратко расскажу о них на основе своего опыта. ------------- По функциональному назначению можно разделить роботов на 3 класса. 1) Роботы , которые прогнозируют моменты изменения рынка для изменения позиции.Роботы-советники 2) Роботы, которые совершают транзакции на основе простейших алгоритмов и управляют стоп-заявками. 3) Роботы , которые объединяют функции 1 и 2. --------------- Любого робота можно написать либо в виде скрипта-индикатора,далее робот-индикатор, либо в виде скрипта не индикатора, далее робот-скрипт. Разница в том, что робот на основе индикатора запускается на графике инструмента, которым торгуем, а робот-скрипт, не индикатор, запускается без автоматической привязки к инструменту. ------------------ Робот индикатор самый простой в написании. в нем не надо подписываться на инструмент. В него автоматически поступают данные лишь конкретного инструмента. -------------------- Недостаток его в том, что его надо запускать на графике инструмента и следовательно надо открывать окно с графиком. Но обычно так все и торгуют. --------------- Робот-скрипт является универсальным и позволяет построить рой роботов, которые могут обмениваться данными и проводить расчеты параллельно. ---------------------------------- На этом пока все. Если есть вопросы, то отвечу --------------------- Продолжение следует...
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 11:31:46
Вообще-то, так как роботы есть разные, то целесообразность использования событий(колбеков) тоже разная. ---------------------- Поэтому сделал обработку для всех событий, а применяю в конкретном роботе то, что имеет смысл "здесь и сейчас". -------------------- Сейчас у меня все очень оптимально. Все события обрабатывает один скрипт Он же выставляет и снимает заявки. Остальные скрипты и приложения занимаются прогнозированием момента изменения позиции по конкретному инструменту Скрипт(приложение) на инструмент или класс.
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 11:23:20
Читать стакан в колбеке - это мазохизм какой-то.
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 11:21:14
Лазить в таблицы вместо колбеков имеет смысл ,например, для получения текущих значений счета или размера позиции. Но даже и в этом случае колбек может быть полезен.
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 11:15:11
Добавлю свои пять копеек в вашу вумную беседу... --------------------- Разные события обрабатываю по-разному. ------------------------ Обработка в main связана с очередью событий, если не хочется пропускать события. А стояние в очереди - это тоже время. ---------- Для оптимизации и минимизации: ----------------- OnTransReply Очень простой алгоритм, если нет ошибки. обработка ошибки сложнее, но она бывает редко. Поэтому его обработку делаю внутри функции колбека. Время обработки равно времени передачи в очередь. ----------------------- Применяю оптимизацию очереди. Суть в том, что если пришло событие по конкретному инструменту, которое уже есть в очереди, то событие в очереди уже устарело и его обрабатывать не следует.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 10:59:59
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 11:11:18 2026,задержка(сек)=60
Mon Feb 16 11:11:48 2026,задержка(сек)=90
Mon Feb 16 11:12:18 2026,задержка(сек)=120
Mon Feb 16 11:59:18 2026
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 09:42:20
время местное мск+1
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 09:41:24
Код
Mon Feb 16 10:27:48 2026,задержка(сек)=60
Mon Feb 16 10:28:18 2026,задержка(сек)=90
Mon Feb 16 10:28:48 2026,задержка(сек)=120
Mon Feb 16 10:29:18 2026,задержка(сек)=150
Mon Feb 16 10:30:18 2026,задержка(сек)=31
Mon Feb 16 10:30:48 2026,задержка(сек)=61
Mon Feb 16 10:31:18 2026,задержка(сек)=91
Mon Feb 16 10:31:48 2026,задержка(сек)=122
Mon Feb 16 10:40:18 2026
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 08:33:15
Сделал скрипт для их фиксации. Выложил на форум для всех желающих. Как соберу статистику выложу.
Скрипт для обнаружение задержек данных
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2026 08:30:40
Для обнаружения ситуаций, когда соединение с сервером нормальное, но с сервера не поступают данные ВООБЩЕ написал скрипт. Скрипт пишет данные о времени последней связи с сервером и фиксирует задержу в лог файле. скрипт в стадии тестирования. Желающие присоединяйтесь.
Код
function HMS(T)
local hms=0; for s in T:gmatch("[^:]+") do hms=60*hms+tonumber(s) end
return hms;
end
MaxTime=30
function main()
while run do
TS=getInfoParam("SERVERTIME")-- Время сервера
TW=getInfoParam("LASTRECORDTIME")-- Время последней записи
if TS and TW then
TL=getInfoParam("LASTPINGTIME") --Время последней проверки связи
if TL_OLD and TL~=TL_OLD then
local str=os.date()
if D>MaxTime then str=str..",задержка(сек)="..D; end
Log:seek("set",begin);
Log:write(str.."\n"); Log:flush();
if D>MaxTime then begin=Log:seek(); end
end
TS_HMS=HMS(TS); D=math.abs(HMS(TW)-TS_HMS)
end
TL_OLD=TL;
sleep(200);
end
end
function OnInit(ph)
ph=ph:sub(1,ph:len()-3).."log";
Log = io.open(ph, "w");Log:close(); Log = io.open(ph, "r+");
begin=Log:seek();
D=0;
run=true
end
Вопрос к Разработчикам. Можете объяснить этот прикол?