Переход на схему ведения позиций в календарных датах на сервере QUIK-Junior был выполнен 16 января 2025.
Сообщение об изменении схемы ведения позиций пользователи получают при подключении к серверу, продублируем его здесь:
Цитата
Здравствуйте. С 16 января сервер QUIK Junior переведен на современную схему ведения позиций - по календарным датам. Если ранее каждой позиции соответствовал код расчетов (T0, T1, T2), то теперь - конкретная дата. Например, если сегодня 16.01.2025, значит код расчета T0 соответствует дате расчета 16.01.2025 , код T1 - 17.01.2025 и так далее. Ожидается, что в будущем на эту схему перейдет большинство брокерских компаний. Кроме того, теперь расчеты по всем инструментам на сервере происходят по схеме T+1, что соответствует режиму реальных торгов на Московской Бирже.
В связи с этим в таблицах с позициями по инструментам и деньгам следует заменить параметр Срок расчетов на Дата расчетов. В таблице Состояние счета вместо кодов расчета теперь подставляется конкретная дата.
При использовании схемы с календарными датами срок расчетов портфеля соответствует плановой позиции - в этом случае в getPortfolioInfoEx передается limit_kind = 365.
На Учебном сервере QUIK-Junior для транзакции "Ввод заявки" по классу "Акции 1-го уровня (эмулятор)" отсутствует поле "Код клиента" - Вы можете убедиться в этом, добавив такую транзакцию в "Карман" и проверив список ее параметров. Соответственно, при указании параметра "Код клиента" отправка этой транзакции приводит к ошибке.
Просьба помочь с возможными причинами одинаковых значений Объема и Доходности для таблицы Ордеров. расчет выполняется с использованием функций: get_value(trade,"VALUE") get_value(trade,"YIELD")
Действительно, описанная в данном обращении ошибка имеет место начиная с версии 8.2.0 и будет исправлена в одной из очередных версий ПО. Приносим извинения за причиненные неудобства.
На сервере QUIK-Junior заявок с таким параметром нет.
Конкретный пример затруднимся привести, однако если параметр доступен для заявки, можно сформировать транзакцию ввода заявки с этим параметром в "Кармане транзакций" и сохранить ее описание в tri-файл.
Время окончания срока действия заявки может быть задано, если торговая система предоставляет такую возможность для данного типа заявок. В таком случае параметр может быть установлен на форме ввода заявки в терминале, либо передан в строке с описанием транзакции.
Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Отметим, что QPILE является устаревшим продуктом, развитие которого на данный момент прекращено. Рекомендуем использовать для выполнения скриптов актуальное решение - интерпретатор QLua,
Мы привели пример функций для работы с позициями в календарных датах, основанных на getMoneyEx и getDepoEx. Исходные функции (getMoneyEx и getDepoEx), а также другие функции QLua остались без изменений.
Схема ведения позиций по календарным датам поддерживается Рабочим местом QUIK версии 10.2.0 и выше, соответственно, приведенный код будет работать начиная с этой версии. При подключении к серверу QUIK-Junior рекомендуем использовать терминал актуальной версии 11.4.1.
как будут работать методы, где есть входной параметр limit_kind?
При работе в схеме с календарными датами в limit_kind необходимо передать дату расчетов, на которую необходимо получить позицию (NUMBER в формате YYYYMMDD).
Цитата
как теперь для инструментов, торгуемых в разных режимах определять позицию
Предлагаем воспользоваться следующими функциями - функции могут принимать на ввод в параметре limit_kind конкретную дату расчетов, либо значение "Tx". Если передана дата, функция вернет позицию на указанную дату, если такая имеется - в противном случае возвращается позиция, установленная на ближайшую предшествующую указанной дату, либо 0, если позицию по такому условию не удалось найти. Если передано значение "Tx", функция вернет плановую позицию (с максимальной датой рачетов).
Скрытый текст
Код
function getMoneyEx_byDate(firmid, client_code, tag, currcode, limit_kind)
res = getMoneyEx(firmid, client_code, tag, currcode, limit_kind)
if not res then
res = 0
n = getNumberOf("money_limits")
lk = 0
function fn(m)
if limit_kind == "Tx" then
qry = (m.firmid == firmid and m.client_code == client_code and m.tag == tag and m.currcode == currcode)
else
qry = (m.firmid == firmid and m.client_code == client_code and m.tag == tag and m.currcode == currcode and m.limit_kind < limit_kind)
end
if qry then
if m.limit_kind > lk then
lk = m.limit_kind
res = m
end
return true
else
return false
end
end
SearchItems("money_limits", 0, n - 1, fn)
end
return res
end
function getDepoEx_byDate(firmid, client_code, sec_code, trdaccid, limit_kind)
res = getDepoEx(firmid, client_code, sec_code, trdaccid, limit_kind)
if not res then
res = 0
n = getNumberOf("depo_limits")
lk = 0
function fn(d)
if limit_kind == "Tx" then
qry = (d.firmid == firmid and d.client_code == client_code and d.sec_code == sec_code and d.trdaccid == trdaccid)
else
qry = (d.firmid == firmid and d.client_code == client_code and d.sec_code == sec_code and d.trdaccid == trdaccid and d.limit_kind < limit_kind)
end
if qry then
if d.limit_kind > lk then
lk = d.limit_kind
res = d
end
return true
else
return false
end
end
SearchItems("depo_limits", 0, n - 1, fn)
end
return res
end
Однако стоит учитывать, что в рамках одной транзакции все параметры должны быть заданы в одном формате (универсальном или фиксированном). Смешивать параметры в различных форматах нельзя - в этом случае транзакция не может быть корректно обработана.
Также для корректного чтения кириллицы в скрипте файл .lua должен быть сохранен в кодировке ANSI.
Все верно, в этом случае в tri-файл сохраняется описание транзакции в универсальном формате. Если в Вашем сообщении идет речь о дальнейшей передаче такой транзакции в скрипт QLua, это возможно в таком виде:
1. Правильно я понимаю, что через формат .tri-файла не существует возможности выставить заявку "полностью или отклонить", и это предусмотрено только непосредственно в терминале и в ручном режиме?
Нет, это не так. В tri-файле могут быть переданы все параметры транзакции, доступные в Рабочем месте QUIK.
Вы можете получить описание транзакции из окна "Карман транзакций" в терминале: 1) откройте окно "Карман транзакций", при создании окна выберите необходимый класс и транзакцию; 2) добавьте транзакцию в карман (пункт контекстного меню "Положить в карман"), заполнив ее параметры в интерфейсе терминала; 3) сохраните описание транзакции в tri-файл (пункт контекстного меню "Сохранить транзакции в tri-файл").
пс. (чего?) и (что это?!) мои. Исполнение не только частичное. Определение данное в Руководстве "«Количество» – количество инструментов, выраженное в лотах. Количество инструментов в одном лоте указано в скобках" я не понимаю вообще.
При вводе заявки указывается количество лотов инструмента, которое необходимо купить или продать. Один лот может содержать несколько штук инструмента - например, акции SBER торгуются лотами по 10 штук. Это количество в одном лоте указывается на форме ввода заявки в скобках.
Цитата
Для поддержки, если читает: Есть пожелание сделать выбор для пользователя условия по умолчанию, например, не «Поставить в очередь», а «Только пассивная».
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Вы можете самостоятельно реализовать любой индикатор, используя язык Lua.
С подробной информацией о создании индикаторов Вы можете ознакомиться в документах по ссылке: - Руководство пользователя Интерпретатора языка Lua, раздел 7. Индикаторы технического анализа; - Использование Lua в Рабочем месте QUIK, раздел 3. Создание индикаторов технического анализа с помощью скриптов Lua.
Рекомендуем убедиться, что в обоих терминалах включен "умный" заказ данных (Основные настройки (F9) / Программа / Получение данных / Котировки). После включения "умного" заказа проверьте, доступны ли необходимые инструменты и параметры в Таблице текущих торгов.
Если нужных инструментов по-прежнему не будет в списке, рекомендуем уточнить информацию у Вашего брокера.
1. В Вашем коде отсутствует вызов TRANS2QUIK_CONNECT для соединения с терминалом QUIK. 2. В директории с тестовым приложением (test_x64.exe) необходимо разместить библиотеку trans2quik.dll.
Получить историю изменения параметра можно с помощью функции CreateDataSource - см. описание функции в документации QLua.
Также рекомендуем ознакомиться с порядком получения служебных идентификаторов параметров - см. п.3.12.3 "Особенности получения значений Таблицы текущих торгов".
В письме от 26.08.2024 мы запрашивали у Вас дополнительную информацию для изучения ситуации. Продублируем его содержание:
Цитата
Если ошибка прямо сейчас у вас повторяется, пришлите нам архив рабочего места без ключей и подкаталогов, но DAT, LOG файлами и WND-файлом настроек, а также описание действий, которое приводит к ошибке.
Если ошибка не повторяется, тогда, чтобы разобраться с причиной давайте сделаем следующее:
- запускайте терминал с ключом -full-dump (т.е. командная строка должна иметь вид INFO.EXE -FULL-DUMP), в этом случае при возникновении ошибки DMP-файл будет содержать больше информации.
- в случае повторения ошибки нужно прислать нам новый DMP-файл (он будет иметь больший размер, чем в предыдущий раз), архив терминала, сделанный сразу же после возникновения ошибки и описание последовательности действий, которая предшествовала возникновению ошибки. Архив надо сделать без ключей и подкаталогов, но во всеми dat-, log- файлами и wnd-файл с вашими оконными настройками. Уточним, что данный wnd-файл может находиться не в текущей папке терминала, нужен именно тот, который указан в настройках программы.
Ответ на этот запрос мы, к сожалению, не получили.
Просим Вас собрать указанную информацию и отправить ее на нашу почту quiksupport@arqatech.com - в продолжение предыдущей переписки или новым письмом. Просьба указать в письме ссылку на данную тему форума.
Возможно, информация для построения графиков была недоступна на сервере, к которому Вы подключаетесь, а затем эта проблема была устранена. Рекомендуем уточнить информацию у Вашего брокера.
Получить значения параметров "Теоретическая цена" и "Волатильность опциона" можно с помощью функции getParamEx. В getParamEx передаются технические наименования параметров - это THEORPRICE и VOLATILITY соответственно.
Доступ к доске опционов с помощью QLua на данный момент не предусмотрен. Мы можем зарегистрировать пожелание на добавление соответствующих функций в будущих версиях ПО.
Алексей написал: Получил ответ - данного функционала нет на уровне API QUIK.
Это не соответствует действительности.
В Trans2QUIK можно передавать параметры транзакции в универсальном формате, и в этом формате можно указать признак "Условие исполнения=Только пассивная".
Рекомендуем проверить, что Вы проверяете тот же график, по которому получает информацию getNumCandles - убедитесь, что в свойствах графика указан идентификатор, который передается в функцию:
Данная проблема возникает в силу особенностей работы Wine - он может "подменяет" некоторые библиотеки (в данном случае это vcomp140.dll) на свои, версии которых могут отличаться от библиотек в составе QUIK. По этой причине терминал определяет такую библиотеку как устаревшую и предлагает выполнить обновление.
Отметим, что в актуальных версиях Рабочего места QUIK (11+) данная библиотека не используется. Предложенное "обновление" можно игнорировать, на работу терминала это не повлияет.
Для устранения проблемы необходимо удалить файл vcomp140.dll из комплекта обновления, размещенном на сервере QUIK, к которому происходит подключение - Вы можете обратиться к Вашему брокеру по данному вопросу.
Мы будем благодарны за обратную связь по работе с терминалом в Wine. Для более оперативной реакции предлагаем писать на нашу почту: quiksupport@arqatech.com
Как изменить/усилить цвет активного внутреннего окна в QUIK, Шапка (верхняя строка) активного внутреннего окна выделяется еле-еле. Хорошо бы усилить или изменить цвет
В текущей версии программы такая возможность отсутствует. Мы можем зарегистрировать пожелание на доработку ПО и добавление такой опции в будущих версиях программы.
Уточним, что такой ответ возвращает именно торговая система Срочного рынка МБ.
Для подробного изучения ситуации требуется информация со стороны серверной части QUIK - к сожалению, такая информация за 14.10 уже недоступна. На нашей конфигурации не удалось воспроизвести такую ситуацию.
Если проблема повторится, просим сообщить время воспроизведения и номера исходных заявок. Для более оперативной реакции предлагаем написать на нашу почту quiksupport@arqatech.com.
Это был единственный случай, или подобное поведение воспроизводится регулярно? Просим уточнить используемую версию Рабочего места QUIK, а также дату, когда наблюдалась данная ситуация.
Мы рассмотрели Ваши пожелания. По итогам анализа сообщаем Вам, что реализация пожеланий признана потенциально целесообразной.
Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
К сожалению, мы не можем назвать информацию о сроках обработки пожелания. Мы сообщим в этой теме, когда будет принято решение о реализации пожелания, а также когда будет выпущена версия ПО с этой доработкой.
событие Заявка активна в OnOrder() при попытке отмены заявки., При отправке транзакции на отмену заявки. приходят два события, в OnOrder() . 1 заявка активна. 2 заявка снята.
Вызов OnOrder в данном случае происходит из-за изменения служебных параметров заявки на сервере. С точки зрения пользователя какой-либо значимой информации в данном вызове не содержится.
Подписка на стакан становится доступной в тот момент, когда инструмент появляется на сервере QUIK. Возможно, Ваш брокер сможет уточнить время, в которое интересующий инструмент будет доступен.
Мы получали Ваше обращение по данной теме на нашу почту. В последнем нашем письме (от 26.08.2024) мы запрашивали у Вас файлы для продолжения изучения ситуации, но, к сожалению, не получили ответ.
Просим Вас ответить в продолжение этой переписки и прислать нужную информацию.