Добрый день! По скриншотам ответить на ваш вопрос, к сожалению, не сможем.
Просим выслать на почту нашей поддержки (quiksupport@arqatech.com) дамп процесса в момент зависания, архив рабочего места QUIK со скриптами, которые работали на момент появления ошибки, и подробное описание проблемы.
Действительно, если терминал совершал аварийное отключение в момент сохранения графиков, с ними могло произойти что угодно.
Для анализа данной ситуации, просим вас сделать следующее - при следующей встрече с данной ошибкой, перед удалением чего-либо, заархивируйте папку с Рабочим местом QUIK и отправьте на почту нашей поддержки (quiksupport@arqatech.com) с полным описанием проблемы. Также, все таки просим приложить к письму скрипт, который эту ошибку встречает.
Поскольку, опять же, поведение программы в момент аварийного отключения - процесс неконтролируемый, заведомо можем предположить, что единственный выход из подобной ситуации - добавить в скрипт проверку, учитывающую то, что данные могут прийти битыми.
Данные столбцы не совсем одинаковые. В самом первом столбце отображается сокращенное наименование инструмента и название (не код) класса, в котором он содержится. Данный столбец является стандартным для Таблицы текущих торгов (как, например, столбцы с порядковым номером записи в прочих таблицах) и необходим для работы системы.
При желании, данный столбец можно полностью скрыть. Для этого необходимо навести указатель мыши на границу заголовков столбцов и уменьшить ширину первого столбца до минимума.
Вид лимита "-3", является техническим. Он записывает в БД различную информацию на сервере QUIK Junior. Его отображение специально ограничено в клиентском терминале. При этом, используемая выше функция, все еще будет его считать.
_sk_ написал: Есть косвенные признаки того, что в терминале 8.8.4.3 (и, возможно, других версий) могут получаться "битые" графики при склейке 3000 свечей, которые выдаёт сервер, и архива свечей, накопленных в терминале.
Проявляется это как ошибки в скриптах при работе с данными, получаемыми из объектов DataSource. Выходят сообщения типа
Код
attempt to perform arithmetic on a nil value (field '?' )
хотя код до этого нормально работал несколько дней.
Как стабильно воспроизвести ошибку я не знаю. Помогает закрытие терминала, удаление dat-файлов из папкок archive и archive\bak, повторный запуск терминала. История сбросится до 3000 свечей в этом случае.
Перезаказ данных с указанием всех галочек не помогает.
Может, у кого-то ещё есть похожие симптомы.
Здравствуйте!
Предоставьте пожалуйста полный код скрипта чтобы мы попробовали воспроизвести проблему у себя.
Уточните пожалуйста, насколько точно вторая строка дублирует первую? Один в один? Проверьте, не стоит ли на таблице каких-либо фильтров, например по коду клиента. Данная функция будет считать результат по всей таблице (без фильтров).
Также, прикрепите скрипт, который выдает такой результат.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Действительно, такого функционала в новой версии нет.
Как альтернативный вариант, можно копировать значение ячейки из Таблицы Текущих Торгов, куда, при желании, можно вывести любую информацию об инструменте. Если хотите, можем зарегистрировать ваше пожелание по поводу возвращения возможности копировать значение ячейки из таблицы "Информация об инструменте".
Проверили у себя, код "local nSize = getNumberOf('futures_client_holding');" работает правильно и выдает верное количество строк из таблицы. Уточните пожалуйста, как именно проверяете, что значение nSize всегда равно 0? Также, рекомендуем проверить, что таблица "Позиции по клиентским счетам (фьючерсы)" у Вас не пустая.
Для того, чтобы отсортировать таблицу "Текущие торги" так, как вы хотите, необходимо: - Открыть таблицу на редактирование и добавить в "Заголовки столбцов" параметр "Полное название инструмента" (либо "Краткое название инструмента"), нажать "Да" - Кликнуть левой кнопкой мыши на заголовок столбца, добавленного на предыдущем шаге
На данный момент решение о реализации возможности использования кодировки UTF-8 при работе с *.tro/*.trr еще не принято.
Ваше пожелание по поводу поддержки кодировки UTF-8 терминалом зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Индикатор ОИ показывает количество открытых позиций с точностью количества инструмента и позволяет получить представление о его ликвидности. Более подробно с ним можно ознакомиться при помощи многочисленных статей в сети интернет, выдаваемых по поиску "Открытый интерес".
Правильно ли я понимаю, что под "ОИ volume" Вы имеете ввиду объем, отображаемый внизу графика открытого интереса? В таком случае ОИ volume представляет собой количество изменений ОИ за указанный интервал времени. При этом стоит учесть, что у разных брокеров ОИ volume может отличаться в виду индивидуальных настроек на сервере брокера, и поэтому его анализ не несет практической ценности.
Вероятно, проблема вызвана тем, что в lua-скрипте индикатора ID графика прописан статично, а Вы используете данный индикатор для разных графиков.
В таком случае, на всех графиках, кроме того, ID которого прописан в скрипте, индикатор будет работать некорректно, а именно:
в случае первого применения, либо обновления (путем смены ТФ, открытия графика на редактирование и нажатия "Ок"), индикатор будет строиться по графику, ID которого вписан в скрипт.
при смене торговой сессии (наступлении следующего дня) или же обычном перезаказе данных, индикатор будет строить неверную картинку (прим.: прямую линию, наклон которой зависит от данных).
В связи с этим рекомендуем вам заняться доработкой представленного lua-скрипта, либо же использовать его только с тем графиком, ID которого в нем прописан.
Проблема заключается в том, что функция string_gmatch(getClassSecurities(class), "(%P*_*%P*_*%P*),") с данным регулярным выражением некорректно получает коды инструментов, содержащие в себе символы пунктуации (например "-", именно такие коды инструментов в классе "FQBR"). Это приводит к тому, что хоть в классе и есть инструмент с кодом, отправленным в главную функцию, она его там не находит.
Такая же ситуация и с string_gmatch("STOCK_USA,SPBXM,FQBR,TQBR,QJSIM,SPBFUT,", "(%P*),"), с данным регулярным выражением вместо "STOCK_USA", функция найдет "USA".
Рекомендуем переписать регулярные выражения с учетом всех необходимых типов кодов инструментов, класс которых планируется определять в первом случае, и всех классов, из которых планируется выбор во втором.
Поглядел (сорри, любопытство), как под копирку: qlua хочет вызвать OnParam, дергает lua_getglobal и крэшится в ней на return auxgetstr в момент записи на текущий стек (последняя строчка в lua_getglobal). По другому поводу дамп воспроизводил и была та же история. Как бы это довольно хорошая новость, все у всех падает в одном и том же месте. С другой стороны, причина-то падения нехорошая (очевидно, разделение стейта между потоками).
Добрый день!
Спасибо, что обратили внимание. Наши разработчики в курсе данной проблемы и ищут пути ее решения.
Построение графиков с помощью языка Lua является достаточно трудной задачей, к тому же, Lua в QUIK имеет ограниченный функционал в этом плане. Каких-либо инструкций по тому, как это можно сделать, нет.