К вечеру объем занимаемой терминалом QUIK памяти уменьшился до 97 Мбайт.
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 16:19:43
Повторил эксперимент. Закрыл QUIK и через минуту снова стартовал. При этом сервер не запрашивает код а необходимо ввести лишь пароль. Загрузка произошла существенно быстрее (не более 5 минут) Занимаемая память 1150Мбайт. Число пакетов сообщений всего 50 тысяч.
Причина очень медленной загрузки QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 16:01:09
В данной теме раскрою вам секрет, почему при старте терминала QUIK приходится ждать не просто минуты, а десятки минут. ------------------------ Все происходит очень просто. Любой желающий может повторить мой эксперимент. ------------------- Берем версию QUIK 12.8.3 Открываем диспетчер задач и наблюдаем объем занимаемой памяти Начальный объем примерно 170Мбайт, но он быстро увеличивается до 400 и потом медленно, минут за 5 до 800 Мбайт. Это происходит загрузка сохраненных данных торгов и истории. ---------------------------- После этого QUIK запрашивает логи и пароль и через некоторое время код со смартфона. --------------------- После этого QUIK сбрасывает объем занимаемой памяти до 400 МБайт и начинает через интернет получать данные для настройки графиков и таблиц . ------------------------- В конечном итоге он займет 1200 Мбайт (если удалите всю накопленную историю, то получите от 850 до 1100 Мбайт) --------------------- Т е ему надо получить с сервера данные и чего-то там наплодить размером от 400 до 800 Мбайт ======================= При этом процессе Вам надо наблюдать работу сети ================== Прикольно, но факт. Обмен данными с сервером происходит малыми посылками. Например , у меня для полной загрузки терминал QUIK обменялся с сервером аж 1 млн. пакетов. При этом канал Ethernet и Интернет был загружен аж на 0.1% !!! Т е при возможности обмена на скорости 100Мбит/s, сервер и терминал обмениваются мелкими пакетами на скорости в среднем 50 Кбит/s Т е в 2000 раз медленнее, чем возможно. -------------------------- Причем возникает естественный вопрос. Нафига надо обмениваться 1 000 000 сообщений при старте? Почему невозможно все передать на скорости в 1000 раз большей и пакетами в 1000 раз длиннее? ------------------------- Но это риторические вопросы. ================= Учитывая, что версии 12 занимают памяти в 2 раза больше, чем версии 8 (ранее писал 1200 -12 версия 600- .8 версия) следует ожидать еще большего зависания терминалов в следующих версиях. ------------------------------ Еще замечу, что у меня очень малая подписка на инструменты и индикаторы, открыто обычно не более 5 графиков и 2 стакана и таблицы, включая ТТП, с сотней инструментов. На бирже инструментов тысячи. ------------------------------------ Представляю сколько ждут начинающие, которые открывают сотню графиков и стаканов. ============================ Поэтому начинайте загружать терминал вечером. Утром все будет загружено. (Шутка)
Приколы терминала QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 15:13:06
Сейчас объем память уменьшился до 800 Мбайт, но я ничего не делал это он сам.
Приколы терминала QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 15:10:43
Проблема решилась просто. ------------------------------ Установил версию 12.8.3.4. Но сбербанк дает всем клиентам лишь 12.6 ---------------------------- Как я показал Выше 12.6 это глючная версия. ========================= Теперь подробнее, чем 12.8 отличается от 12.6 -------------------------------- 1) Объем занимаемой памяти составляет 850 Мбайт вместо 1200 Мбайт ------------------------- 2) Запуск терминала происходит в разы быстрее. --------------------------- 3) Мой скрипт работает как обычно, чудеса исчезли. ================ Просьба к разработчикам. Порекомендуйте сбербанку не предлагать 12.6 а срочно заменить ее на 12.8.3 ================================ «Скажите государю, что у них ружья кирпичом не чистят: пусть чтобы и у нас не чистили...».
написал: получаю большую загрузку процессора (на 8.7 такого не было) ----------------------- Тогда я удаляю свой скрипт Загрузка процессора возвращается в норму
Без обид, но вы просто не умеете программировать
Не занимайтесь плагиатом.
свободные средства для срочного рынка на едином счете
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 15:03:15
Ура! Сбербанк нашел мои позиции. Все работает.
Приколы терминала QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 09:17:17
Но самое прикольное, в том что объем занятой памяти всех приложений практически не изменился.
Приколы терминала QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 09:14:51
Так как после установки версии 12.6 начались чудеса, то решил провести подробные исследования процесса загрузки терминала. ------------- Для начала я восстановил архив котировок, который у меня составлял 100 Мбайт и запустил QUIK ---------------------- Начальный размер памяти при старте составил 800Мбайт:
терминал грузился 5 минут и конечный размер составил 1100 Мбайт
после того как ввел пароль терминал снова стал загружать данные с сервера и далал это следующие 5 минут начал с 800Мбайт
в результате получилось 1200Мбайт
============================== После этого я решил перезаказать данные для построения графиков . У меня лишь графики сбербанка и индекса Загрузка началась с 400Мбайт
В итоге загрузка данных продолжалась следующие 10 минут и результат 1200 Мбайт занятой памяти
================================ А теперь внимание, будет самое интересное. ==================== У меня есть скрипт советника, который без проблем работал уже 2 года на версии 8.7 ---------------------------------- Я его загружаю на версию 12.6 и о ЧУДО получаю 22 Мбайт !!! занятой памяти терминалом. Но при этом получаю большую загрузку процессора (на 8.7 такого не было) ----------------------- Тогда я удаляю свой скрипт Загрузка процессора возвращается в норму А что же с занятой памятью? 68 Мбайт вместо 1200 Мбайт
Зависание версии 12.6. при откреплении окна.
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 08:23:02
Теперь начались чудеса. Объем занимаемой памяти сократился до 80 МБайт.
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 08:22:07
Теперь начались чудеса. Объем занимаемой памяти сократился до 80 МБайт.
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 08:07:28
Версию 12.6 переустановил в новый каталог. Проблем с зависанием нет занимаемая память тоже в норме сократилась на 1000 Мбайт. ------------------------ Но проблема с исчезновением позиций по фьючерсам и неправильного расчета осталась. Помогите своим заказчикам - Сбербанку настроить сервер на единый счет
Зависание версии 12.6. при откреплении окна.
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 08:04:06
Проблему решил полной переустановкой в новый каталог версии 12.6.1 -------------------- При этом объем занимаемой памяти сократился на 1000 Мбайт.(на 1ГБайт) --------------
Зависание версии 12.6. при откреплении окна.
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 07:52:03
Спешу поздравить всех с ляпом в версии 12.6. ---------------------- Если открепить окно с графиком для перемещения его за пределы основного окна QUIK, например на второй монитор, то получаем зависание терминала. ----------------------- При этом загрузка процессора возрастает с 3% до 30%. -------------------------- Если это окно свернуть, то все возвращается обратно.
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 07:45:23
Про версию 12.8.3 скажите сбербанку. Они предлагают клиентам лишь 12.6
свободные средства для срочного рынка на едином счете
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 07:35:48
Просьба расскажите спецам сбербанка что они делают не так, так как они второй день уже трахаются а результатов нет.
свободные средства для срочного рынка на едином счете
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2026 07:33:45
Цитата
Izotova Liliya написал: , здравствуйте. Для анализа просьба прислать скриншот таблицы "Клиентский портфель" и примеры неверных расчетов системы.
Так как сбербанк перешел на единый счет, то приходится устанавливать версию 12.6.0.53. Загружаю уже целый час. При этом размер занятой памяти 1200Мбайт вместо 600 для 8.7. ----------------------------------- Позиции по фьючерсам вообще исчезли из QUIK. В онлайн банке они на месте. ------------------------------------- Вчера некоторое время позиции были -------------------------- Так как у меня нет акций а лишь позиции по фьючерсам, то никаких уровней маржи быть в принципе не может. Однако клиентский портфель был вчера таким:
а сегодня он такой: никаких сделок за прошедшее время не совершалось. но позиции по фьючерсам исчезли. --------------------- Сбербанк предлагает выкинуть КВИК и передавать заявки по телефону. Какой-то каменный век .
свободные средства для срочного рынка на едином счете
Пользователь
Сообщений: Регистрация: 30.01.2015
10.02.2026 19:27:06
Цитата
Alexander Kopyatkevich написал: Здравствуйте, ! Получить значение свободных средств для Срочного рынка с единой денежной позицией можно в таблице Клиентский портфель из параметра "НаПокупНеМаржин". Для этого нужно вызвать функцию GET_CLIENT_MARGINAL_PORTFOLIO_INFO и нужное Вам значение передастся в параметре LIM_NON_MARGIN.
Там не отображаются свободные средства по фьючерсам при отсутствии акций и наличии позиций по фьючерсам. Это связано с ошибкой в расчете клиентского портфеля. Алгоритм расчет портфеля брокер может сам задать? Если нет то в QUIKе системна ошибка расчетов.
Вопрос по единому счету
Пользователь
Сообщений: Регистрация: 30.01.2015
10.02.2026 17:33:44
и еще... Кто знает, где в документации QUIK найти список параметров таблиц, которые надо для торговли фьючерсами, а какие для торговли акциями для единого счета. ----------------------- Иначе транслируется куда мусора, который для фьючерсов не имеет смысла. Например уровень маржи. Прикольно, что подобные параметры cчитаются для фьючерсов. --------------------- Это в сбербанке не знают или разработчики так сделали?
Вопрос по единому счету
Пользователь
Сообщений: Регистрация: 30.01.2015
10.02.2026 17:29:05
Сегодня сбербанк перешел на единый счет Торгую лишь фьчерсами В результате нигде не могу найти сумму свободных средств по фьючерсам Кто знает где искать? ---------------- В сбербанке не знают.
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
10.02.2026 16:25:58
Сегодня Сбербанк переходит на единый счет. Целый день они пытаются нормально отобразить у меня фьючерсы. Три раза уже сфонил в тех поддержку и каждый раз обещают через очередные 2 часа исправить новый прикол. То свободные средства исчезли, средства отобразили - исчезли позиции. Круто.
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
10.02.2026 16:23:02
Сегодня в очередной раз попытался установить версию 12.6 которая выложена у сбербанка. Нормально запустить не получилось. Очень долго грузилась и потом работала с тормозами. ------------------------------ Пришлось вернуться на 8.7 =========================== Что меня очень удивило, так это то, сколько памяти сжирает версия 12.6 Просто ужас какой-то. ------------------------ одни и те же настройки --------------------- версия 8.7 -600 МБайт --------------------- версия 12.6 - 1260 МБайт -------------------- Прикольно, но печально.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
09.02.2026 14:11:18
, А я чем Вам могу помочь? Написать в тех поддержку Сбербанка, Смешно? Будет один из двух вариантов. Либо мой вопрос пропустит мимо ушей, либо тот кто его прочитает ничего не понимает в вашем софте и следовательно пропустит его мимо ушей. ---------------- Запросите у них логи сервера. Я Вам указал в картинках точные даты и время этих глюков. Если мало, то еще соберу.
Нужна ли внешняя БД для Lua/QUIK?
Пользователь
Сообщений: Регистрация: 30.01.2015
08.02.2026 13:23:12
Цитата
Quikdll написал: Приветствую, я пишу приложение на Lua для QUIK. И на данный момент в качестве БД используется обычный(ые) текстовый(ые) файл(ы), в котором(ых), в основном хранятся сделки и данные прошлых дней (по сути, куски таблиц заявкок, стоп-заявок, сделок и т.д., т.к при наступлении новой торговой сесии в QUIK они очищаются). У меня есть подозрение, что при реальной работе со временем могут возникнуть проблемы со скоростью запис и чтения. Я сам лично не проводил никаких тестов, поэтому хочу спросить, нужно ли задумываться о том, чтобы искать более быстрые и надежные варианты замены использования обычных текстовых файлов? Интересует реальный опыт. P.S приложение на данный момент пишется только на Lua/Qlua.
Как известно, Файловая система это тоже БД. Тоже использую эту БД. ---------------- Если не закрывать и снова открывать на каждом обращении, то скорость обращения не зависит от размера файла. ------------------------ Как уже неоднократно писал на форуме, задержка скриптов на Lua, как и задержка любого другого приложения при работе под windows и любой БД при чтении данных внутри циклов со Sleep или с обработкой событий определятся квантом времени Windows. --------------------------- Это 10-15 ms, по умолчанию, и не менее 2 ms при перепрограммировании системного таймера. ------------------- Решайте проблемы по мере их появления.
Закрытие главного окна текстового редактора, майкрософт ворда или самомго терминала квик приводит к прекращению работы программы, а не к продолжению ее работы втихую. Это нормально и привычно везде и всюду, в Windows, Linux и даже, прости господи, macos. Но не в гордости российского программирования от ARQA.
Вы путаете кислое с зеленым. --------------------------- Окно в редакторе текста - это область работы самого приложения. аналогично приложениям windows или Linux. -------------------- Но в самом приложении пользователь может и делает кучу окон которые открывает и закрывает по надобности. ----------------------- Таблица В скрипте - это не главное окно скрипта. ------------------------- Терминал QUIK который Вы осваиваете с трудом. ----------------- Когда закроете окно с графиков то терминал закроется? ---------------------- Для программирования надо не только читать школьные учебники по истории, но и учебники программирования.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2026 08:51:37
и еще.. На форуме встречал сообщения относительно другого банка, который периодически сбрасывает соединение. Тоже интересный прикол.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2026 08:47:21
Если это проблема связи сервера с биржей. То, как то прикольно, что у такого банка такие плохие каналы связи с биржей, что возникают часто аж на 5 минут разрывы соединения с биржей.
onstop и колбек пользовательского окна
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2026 08:42:39
Цитата
tohoki написал: Я пробовал искать по форуму, но ничего не нашел
у меня квик 12.8.3.4
запущен пользовательский скрипт, создающий окно. У окна есть колбек OnClose. Когда пользователь мышкой закрывает окно, нужно завершить работу скрипта. Нет проблем, завершаем.
Когда пользователь закрывает терминал при запущенном скрипте, завершать работу скрипта не нужно, она должна продолжаться автоматом при следующем запуске терминала.
Мне кажется, что такое поведение скрипта не является чем-то необычным и не должно требовать каких то сверхусилий.
Но нихрена! При закрытии терминала первым делом в окно скрипта сразу же приходит колбек OnClose - скрипт его обрабатывает и завершает скрипт. До OnStop дело не доходит даже, этот колбек будет вызван когда то позже.
Получается, что при вызове колбека onclose невозможно понять, что произошло - завершили скрипт или закрыли терминал.
Я чего то не понимаю или ВСЕ НА САМОМ ДЕЛЕ ТАК И ЕСТЬ?
Вы ошибаетесь. ---------------------------- Если скрипт создает окно, то у окна есть функция закрытия, но нет кобека закрытия окна. -------------------- OnClose - это колбек закрытие терминала QUIK или выгрузка файла qlua.dll OnStop - это колбек остановки скрипта из диалога управления (т е из окна запуска скрипта) Что не так?
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2026 08:30:47
и это возникает при относительно спокойном рынке. вот еще примеры такого прикола.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
07.02.2026 08:21:47
Цитата
Pivaev Maxim написал: , судя по Вашему описанию, четко прослеживается локализация проблемы: на участке от Торговой системы до брокера. Поэтому, для решения данной проблемы, все же предлагаем Вам обратиться к брокеру.
Обоснуйте. Почему в этом случае не срабатывает проверки каждые 30 секунд связи терминала с сервером? Связь есть а данных нет. Прикольно. При этом тест интернета показывает скорость 100 На втором мониторе я смотрю кино без задержки. А Ваш QUIK не принимает никаких данных с сервера. Что можете еще придумать?
написал: , Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main? 2) есть ли у Вас очередь событий?
1) 585 секунд. 2) Не знаю. А что это?
(Предыдущее сообщение отправилось по ошибке, не ту клавишу нажал).
Тогда вероятнее всего Вы просто теряете сообщения, когда по заявке совершаются несколько сделок относительно быстро.
Непонятно. Насколько я знаю, все функции OnTrade приходят в одном потоке, т.е. даже если две сделки совершились строго одновременно, функции по ним вызовутся последовательно, и их невозможно потерять.
Кроме того, в приведённом примере интервал между сделками несколько секунд. Это не быстро. Быстро - это когда десятки сделок в секунду. Я такое видел, и мой скрипт их успешно обрабатывает.
Если правильно вас понял, то Вы обрабатываете все события внутри колбеков. Т е Вы тормозите терминал QUIK на время работы вашего скрипта. Да, в этом случае события вероятно вы не пропустите. Но это лишь предположение, Судя по установленной Вами задержки, и в этом случае найдутся способные написать такой скрипт.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2026 14:42:21
Цитата
VPM написал: , На мой взгляд это из одной области и все туда же к " Сивой кобыле ". Ну вышла и вышла, еще показать себя надо. Ну или падение на 1.2%? Даже комментировать не буду.
А вот что важно, не найти. На пример почему Шанхай дает премию по серебру ~ 30$ за унцию серебра? Куда реки текут? На наших глазах делаются состояния. А расскажут потом. Но я собственно ответы нашел и тема стала не интересна.
Вы это на шанхайской биржи видели сегодня? Новость об этом не только в США но и в Азии.
Тест быстродействия многопоточного бота
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2026 11:54:44
Тема для начинающих писателей роботов ----------------------- Алгоритм теста: --------------------- Скрипт на Lua в терминале QUIK обрабатывает колбеки и выставляет заявки по требованию приложения. --------------------------------- Полученные события, кроме событий OnOrder, OnStopOrder, OnTransReply, которые обрабатывает сам, скрипт рассылает приложениям. ------------------------------------- Для каждого инструмента или класса работает отдельное приложение, которое получает данные от скрипта , прогнозирует изменение позиции и отсылает требования на выставление или снятие заявок скрипту. ----------------------------------- Приложения можно реализовать в виде отдельного скрипта для терминала QUIK , либо отдельного приложения Windows. -------------------------------------- Механизм обмена сообщениями реализован через файлы, поэтому он один и тот же как для скриптов так и для приложений. ------------------------------------- Весь процесс обмена сообщений пишется в лог файлы. Результаты теста такие: это логи событий, от скрипта к приложениям для инструментов. Первое число - задержка получения события приложением. В данном тесте задержка равна кванту windows, который установлен 2ms. В конце каждого события через символ "> " указано сколько всего событий в очереди.
это сообщения от приложений. Сообщение отсылается на каждое событие по данному инструменту: В сообщении первым указано время задержки приема его скриптом. Если сообщения от приложения скрипт получил одновременно, т е они были все записаны до того момента как скрипт их прочитал, то в таблице у них одно время и они отделены пустой строкой от следующих сообщений.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2026 11:04:02
Quik 12.6.0 зависает Сбербанк 2026 год, зависает QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2026 11:00:54
Цитата
Anton написал: Quik 12.6.0 сервер Сбербанка зависает. 2026 год Я торгую давно уже, лет 6 в сбере. Проблемы периодически возникают. Сервер у них один. Нагрузка большая и постоянно случаются проблемы. Зависает в основном когда нагрузка повышается, т. е. при большой волотильности когда свечи летают туда сюда. ту все и зависает. Подключится снова получается тоже не сразу. минут 5 теряется... а за это время можно много денег потерять... Торговать практически невозможно стало. Если раньше вылетало редко раз или 2. То сейчас по 5 по 10 раз может выкинуть. Ждать каких то нововведений и улучшений врят ли повезет.... За все время работы у этого брокера ... проблемы всегда бывают... Вот я и спросить пришел. Может какой брокер есть поудачнее??? Где и у кого работоспособность Quik лучше?? Подскажите свой опыт... Какаие варианты есть??? но только что бы в QUIK работать... другие программы не хочу уже изучать...
Тоже работаю со сбером последние пять лет, но не потому что хорошо, а просто удобно переводить деньги. -------------------- Хорошо работает финам, бкс - т е те кто, был сначала лишь брокером, а потом сделал свой банк. ---------------------
Вопрос к Разработчикам. Можете объяснить этот прикол?
, Вы внимательно читали, то что я написал? ------------------ Не хотел Вам проводить ликбез. Но приходится. ------------------------- 1) Это соединение TCP и он не разрывается целых 5 минут т е 300 секунд. Таких задержек на современных каналах связи быть не может. ------------------------------ 2) Терминал каждые 30 секунд обменивается с сервером короткими сообщениями чтобы подтвердить связь. И это полагаю у вас реально реализовано . Т е никаких задержек между сервером и терминалом нет. --------------------------------- 3) Задержка от биржи до брокера в 5 минут - это уже ЧП. -------------- Какие еще Вы можете придумать причины?
Все индикаторы на Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2026 14:01:58
Если правильно понимаю, то Встроенный индикатор Force Index это фактически нормированный (относительно предыдущей close)классический индикатор Force Index . Так как этот индикатор отображается в отдельном окне, то для торговли используются не абсолютные значения , а относительное его изменение либо движения вокруг нулевой линии. --------------- Стратегии Некоторые стратегии торговли с использованием Force Index:
Стратегия на пересечении нулевой линии. Если Force Index пересекает нулевую линию снизу вверх, это может быть сигналом к покупке, так как рынок переходит от медвежьего к бычьему тренду. Если Force Index пересекает нулевую линию сверху вниз, это может быть сигналом к продаже, так как рынок переходит от бычьего к медвежьему тренду.
Стратегия на дивергенциях. Например, если цена делает новый минимум, но Force Index показывает более высокий минимум, это может быть сигналом к покупке, так как рынок может готовиться к развороту вверх.
Force Index часто используется в сочетании с другими техническими индикаторами для повышения точности торговых сигналов. Например, с скользящими средними (MA) — пересечение Force Index с MA может служить сигналом для входа в сделку, с индексом относительной силы (RSI) — совместное использование с RSI позволяет более точно определить перекупленность или перепроданность рынка.
В итоге , для принятия решения, нет никакой разницы как он рассчитан.
написал: , Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main? 2) есть ли у Вас очередь событий?
1) 585 секунд. 2) Не знаю. А что это?
(Предыдущее сообщение отправилось по ошибке, не ту клавишу нажал).
Тогда вероятнее всего Вы просто теряете сообщения, когда по заявке совершаются несколько сделок относительно быстро. Если надо принять все то сделайте очередь сообщений. один из примеров есть в документации на библиотеку QLUA Другой есть в моей теме на форуме по универсальному обработчику событий
Тест ускорения скриптов
Пользователь
Сообщений: Регистрация: 30.01.2015
04.02.2026 14:36:27
Тест обмена данными через файлы терминал QUIK и приложение на Luajit. Результат ну очень... очень.... Смотрите сами: 6us - это время в мкс (0.001 ms) передачи данных от терминала к приложению
Таким образом нет особого смысла писать все алгоритмы робота в скриптах терминала. Достаточно одного скрипта, который раздает события по сторонним приложениям для каждого инструмента или класса инструментов и отправляет транзакции на сделки от приложений на сервер брокера. ------------------------ Приложения можно писать на любом языке программирования , размещать в облаках или у соседа на смартфоне.
Отключать сборщик мусора при работе с колбеками. Вы прикалываетесь?
Пользователь
Сообщений: Регистрация: 30.01.2015
04.02.2026 07:26:30
Тема для начинающих писателей роботов. -------------------------- Рано и поздно у Вас возникнет желание, либо необходимость, ускорить работу вашего робота. Да, это скорее всего, реально Но существует много ненужных телодвижений там, где что-либо делать не имеет смысла. ----------------------- Например, отключать сборщик мусора в колбеках , а потом его включать. ------------------------- Поясняю, почему в этом нет смысла. ====================== Для этого напишем следующий тест:
Код
local t1=nkQt.count(); local x1=collectgarbage("count");
print("занято память КБ= "..x1//1)
local e={}; for j=1,100000 do e[j]=j end --создаем таблицу
local t1=nkQt.count(); local x=collectgarbage("count")-x1;
e=nil; --удаляем таблицу в мусор
print("объем мусора КБ="..x//1)
local t1=nkQt.count(); local x=collectgarbage("collect")
print("сборка мусора(ms)="..(0.1*(nkQt.count()-t1))/1000)
local x=collectgarbage("count") print("занято память КБ= "..x//1)
В тесте создаем таблицу и заполняем ее. Потом удаляем таблицу. В результате у нас создается объем мусора в 2 Мбайта. Сборщик мусора собирает его за 0.038 ms(0.000038 сек). --------------------------- Как уже писал на форуме, Скрипт на луа из-за Sleep(1) в Main имеет задержу исполнения не менее 16 ms, равную кванту времени Windows. -------------------------------------- Многие, по рекомендации разработчиков QUIK, ставят Sleep(1000) т.е. задержку в 1000 ms ---------------------------------------- Таким образом, если до очередного срабатывания колбека включится сборщик, то он задержит колбек на 0.04 ms. и сборщик мусора создаст дополнительную задержку не более, чем в 0.25% от задержки от Sleep(1) ------------------------ Можно перепрограммировать системный таймер и получить задержку не менее 1 ms. ------------------------------ Тогда задержка от сборщика составит не более 4% от задержки Sleep(1), но это всего 0.00004 секунды. -------------------------------------------------- Полагаете, что с этим надо бороться. Вы серьезно? ======================================================== Для справки: ------------------ За квант времени в 1-2 мс поток получает возможность выполнить многие миллионы инструкций процессора. ------------------ Не забывайте и тот факт, что информация с биржи, поступающая к Вам через интернет, приходит с задержкой десять и более ms.
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
04.02.2026 05:56:32
, Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main? 2) есть ли у Вас очередь событий?
При запусках коллбеков не восстанавливается состояние скрипта по сборке мусора (QUIK 12.2.1.2)
Пользователь
Сообщений: Регистрация: 30.01.2015
03.02.2026 20:32:42
, Такой разработчик попался. Делать ему очевидно нечего.
Вопрос к Разработчикам. Можете объяснить этот прикол?
Пользователь
Сообщений: Регистрация: 30.01.2015
03.02.2026 20:29:58
, Все что Вы сказали, это очевидно. -------------------- Если, по-вашему мнению, причин много, но назовите хотя бы три. --------------------- Обращаю внимание на тот факт, что соединение ни сервер ни терминал не разорвали. Это значит, что для сервера нормально не отсылать данные на терминал . ------------------------ Сервер 5 минут не отсылает никаких данных на терминал. Хотя торговый день в полном разгаре и торги идут интенсивно. ----------------------- Назовите три причины такого поведения сервера. ------------------------ Да,. железо сбербанка, но софт ваш.
написал: В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке?
Конкретно trans_id мне не нужен. Но если по протоколу он должен прийти, и не приходит, значит что-то пошло не так. В другой раз не прийти может что-то более серьёзное, например комиссия. Или это другое? Вопрос отчасти пересекается с моим предыдущим вопросом про повторные OnTrade ( ). Т.е. по trans_id=0 я пытался фильтровать OnTrade, которые заведомо не последние.
Предположу, что он не приходит при выполнении заявки в нескольких сделках, либо в заявках, установленных до за пуска скрипта. Но это лишь предположение.
Не приходит полная версия OnTrade
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2026 06:34:47
Цитата
User12501 написал: В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке? ------------------- Поясняю: Сделка совершается по выставленной заявке. В сделке есть номер заявки, Номер есть всегда и по нему можно найти эту заявку. ----------------------------- trans_id - это номер транзакции, по которой уже выставлена заявка. т е транзакция уже давно исполнена. Вместо нее есть заявка. В данном случае и заявка исполнена, вместо нее есть сделка. Т е даже заявку нет смысла искать, а уж trans_id тем более...
Тест ускорения скриптов
Пользователь
Сообщений: Регистрация: 30.01.2015
01.02.2026 09:32:19
нагрузка процессора не изменилась.
Тест ускорения скриптов
Пользователь
Сообщений: Регистрация: 30.01.2015
01.02.2026 09:24:56
Ранее привел результаты теста обмена данными через файлы.
Основной вывод : ------------------------------ SLEEP в MAIN приводит к задержке работы скриптов минимум на квант Windows. Его величина по умолчанию равна 16 ms. ------------------------------- Прикольно то, что до Windows10 2004 года этот квант можно было сравнительно просто уменьшить до 0.5ms. Теперь это сделать просто не получится. -------------------------------- Для решения проблемы сделал другую функцию sleep, которая уменьшает этот интервал до 2 ms. ---------------------- Результаты теста: Тест с функцией sleep(1) из библиотеки QLUA Задержка 15985 мкс округляем 16 ms
написал: измеряете время от входа в колбек до входа в функцию main.
Ясно, к вам вопросов больше нет. Очевидно (но, видимо, не всем), что таким образом не возможно измерить время, затрачиваемое на вызов колбэка. Не путать со временем исполнения кода пользовательской функции колбэка.
Время на вызов колбека Вы можете измерить еще проще. Вызовите колбек функцию из своей dll. У меня получилось менее 1 мкс. --------------- Без обид, но вы просто не умеете программировать .
Задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте
Пользователь
Сообщений: Регистрация: 30.01.2015
31.01.2026 22:17:45
Цитата
Йцукен написал: В Lua сделать возможным задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте.
Пояснение: Сейчас, если в Lua-скрипте, заданы функции обратного вызова, в частности OnAllTrade, OnParam, OnQuote, то они будут вызываться для всех инструментов, данные по которым поступают в терминал, что влечёт высокий оверхэд на вызов этих самых колбэков. Под вызовом колбэков понимается именно их вызов терминалом. Не путать с исполнением Lua-кода пользовательской функции.
Ошибаетесь. Использую фильтр. затраты: если это не торгуемый инструмент, то 1 мкс, если торгуемый, то 5 мкс. Задержка доставки данных по интернету примерно в 10000 раз больше.
Передача данных из скрипта в скрипт QUIK или приложение
Пользователь
Сообщений: Регистрация: 30.01.2015
31.01.2026 22:12:47
Как указал ранее, задержка в 15 мс при обмене через файлы связана с квантом времени OC и возникает из-за наличия SLEEP в цикле функции main. ------------------ Если sleep удалить то получаем задержка обмена составляет не более 0.2 мс: