nTransactionExtendedErrorCode передается в функции обратного вызова и может принимать значения: 1 - "Транзакция данного типа не поддерживается"; 2 - "В процессе отправки не удалось сформировать строку транзакции".
Расширенный код ошибки является технической информацией, в случае его появления необходимо обратиться в Техническую поддержку QUIK для анализа возникшей проблемы.
Минимальный код индикатора для получения кода инструмента на графике:
Код
Settings = {
Name = "getDataSourceInfo_Example"
}
function Init()
return 1
end
function OnCalculate(index)
seccode = getDataSourceInfo().sec_code
message(seccode)
end
При запросе информации о заявки будут получены ее текущие параметры. Частично исполненная заявка имеет статус "Активна", по мере ее исполнения будет изменяться значение неисполненного остатка.
Если этой информации недостаточно для решения Вашей задачи, просим Вас уточнить вопрос.
Получить информацию из Таблицы алгоритмических заявок с помощью QLua нет возможности. Отслеживать изменения алго-заявок с использованием указанных callback-функций также нельзя.
Эти значения в стакане соответствуют значениям параметров Таблицы текущих торгов "Суммарный спрос" и "Суммарное предложение". Соответственно, получить эти значения можно с помощью функции getParamEx.
Формула SMMA: SMMAi = (sum(Pi) - SMMAi-1 + Pi) / n, где Pi - значение цены в i-ом периоде, SMMAi-1 - значение SMMA в предыдущем периоде, n - установленное в параметрах индикатора количество периодов.
Если необходимо рассмотреть что-то более подробно, просим Вас уточнить вопрос.
Сделка и обезличенная сделка - это разные сущности.
В "Таблице сделок" отображаются только сделки, совершенные Вами (по счету и коду клиента, на которые у Вас есть права). В "Таблицу обезличенных сделок" поступает информация обо всех сделках, заключенных в Торговой системе, без указания сторон, с ограниченным набором параметров.
Итак, если есть задача отслеживать заключение сделок в Торговой системе вообще (не только своих), необходимо использовать OnAllTrade. Для получения информации об исполнении собственных сделок необходимо использовать OnTrade.
Действительно в терминале QUIK есть ошибка, из-за которой при загрузке в адресное пространство сторонних модулей в ходе исполнения Lua-скриптов происходит изменение языковых настроек процесса, и работа с зависимыми от языка ресурсами (меню, диалоги и т.п.) осуществляется неправильно. Ошибка будет исправлена в одной из очередных версий ПО.
Просим уточнить, что в данном случае означает "заявка отправляется успешно"? Речь идет об успешной отправке транзакции на сервер? Какой ответ получаете на эту транзакцию?
Настройки выбранных классов и инструментов для получения обезличенных сделок хранятся в файле основных настроек терминала info.ini, в .wnd-файлы эта информация не записывается.
Уточните, пожалуйста, в настройках в списке обезличенных сделок выбраны интересующие инструменты? Приходит ли по ним в этом случае информации в OnAllTrade?
Для транзакции KILL_ALL_FUTURES_ORDERS необходимо указать также параметр BASE_CONTRACT - идентификатор базового актива фьючерсов, по которым необходимо снять заявки.
К сожалению, зарегистрировать такое пожелание нет возможности - QLua предназначен для для доступа к данным Рабочего места QUIK и отправки транзакций на сервер, взаимодействие с интерфейсом терминала не предусматривается.
Мы продолжаем изучение вопроса по Вашему обращению. Как только работы будут завершены, мы отправим Вам соответствующее уведомление. Приносим извинения за задержку и доставленные неудобства.
В общем случае, при смене временных интервалов деформация тренда является неизбежной, так как тренд определяется двумя точками, каждая точка по оси X запоминает время начала интервала на котором тренд строился в самый первый раз, по оси Y значение цены. С учетом этого при смене интервала сначала ищутся опорные точки тренда по новому набору свечей а потом по этим точкам рисуется тренд, например при переходе с 15-минутного интервала на 5-минутный таймфрейм точка с временем 15-15 попадет в точку с тем же самым временем 15-15, а при переходе с 5-минутного интервала на 15-минутный точка с временем 15-10 попадет в точку с временем 15-00. Также из-за изменения числа свечек между двумя точками будет изменяться наклон трендовой линии. И нужно иметь в виду, что в 15-минутных интервалах в стандартном наборе из 3000 свечек содержится гораздо больший временной интервал чем в 5-минутных или 1-минутных интервалах.
В ходе разбора вашего обращения выяснилось, что для работы Lua-индикаторов используется Lua версии 5.3. Рекомендуем вам использовать для работы скриптов версию Lua 5.4. Поменять эти настройки можно в диалоге редактирования основных настроек (горячая клавиша F9), раздел "Lua скрипты". Приносим извинения за причиненные неудобства.
Приведенные функции на данный момент действительно не документированы.
Мы зарегистрировали пожелание на добавление описаний данных функций в документацию QLua. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Просим прощения, предыдущий ответ был не вполне верным.
В случае возникновения ошибки выполнения скрипта в терминале отображается сообщение. Соответственно, просмотреть эти ошибки можно в "Таблице сообщений". Срок хранения сообщений зависит от значения настройки Основные настройки (F9) / Сообщения - Сохранять за последние ... дней.
Не заметили в видео какого-либо некорректного поведения.
Цитата
в момент смены ТФ она почему-то уходит вниз на доли секунды
Это связано с процедурой отрисовки графика, начавшейся после смены таймфрейма. Вы можете проверить, что координаты точек линии при смене таймфрейма (как в данном случае - с большего на меньший) не изменяются.
Цитата
после смены ТФ отображается выше.
К сожалению, не вполне понимаем, о чем идет речь здесь. Не могли бы Вы описать этот момент более подробно?
Наши примеры Lua-индикаторов, доступные сейчас на сайте, действительно работают только с Lua версии 5.3.
Мы зарегистрировали Ваше пожелание на добавление индикаторов, совместимых с Lua 5.4. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Отправить айсберг-заявку через QLua можно, используя универсальный формат описания транзакции. Значения параметров транзакции в этом формате можно получить, создав транзакцию в "Кармане транзакций" и затем сохранив ее в tri-файл.
Правильно понимаем, что Вы бы хотели отфильтровать строки в Таблице текущих торгов, чтобы отображались только те инструменты, по которым у Вас в данный момент есть открытая позиция? Такой возможности, к сожалению, нет.
Графики можно связать с таблицей "Состояние счета", при этом отфильтровать в данной таблице только открытые позиции, - возможно, для решения Вашей задачи можно использовать такой вариант.
Высылать терминал смысла не вижу, так как я все равно перед отсылкой большую часть данных удалю ведь. Дамп можно скинуть если нужно.
Для анализа нам необходима вся копия терминала без ключей, если есть возможность, просьба отправить скриншот с ДЗ, дамп, сделанный во время проблемы (зависание терминала) и архив РМ QUIK.
Цитата
Я так понимаю что у вас темная тема меняется в ini а не в wnd. Так как замена wnd не влияет на тему.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Андрей Филимонов задал вопрос: "в каком формате надо подавать заявку через API?". В нашем ответе мы объяснили, каким образом можно получить корректное описание транзакции из Рабочего места QUIK, используя функционал "Кармана транзакций".
Статус выполнения транзакции передается в параметре nTransactionReplyCode. Ошибке выполнения транзакции, возникшей в торговой системе, соответствует статус "4", более подробное описание ошибки передается в lpstrTransactionReplyMessage.
С полным списком возможных статусов можно ознакомиться в Руководстве пользователя QUIK (Раздел 3. Просмотр информации / Таблица транзакций).
В предыдущем ответе мы описали одну из возможных причин, почему может быть получена заявка с TRANS_ID=0.
В общем случае транзакционный и информационный каналы несинхронны, сервер не обязательно сразу определяет параметры полученной из торговой системы заявки и может передать эту информацию пользователю с некоторыми незаполненными параметрами (в том числе TRANS_ID). Получение в информации о заявке нулевого TRANS_ID не является аномалией, после определения параметра сервером запись будет отправлена повторно уже с корректным идентификатором.
В параметре dwTransId функции TRANS2QUIK_TRANSACTION_REPLY_CALLBACK передается идентификатор транзакции, на которую был получен ответ. Номер заявки, если таковая зарегистрирована в торговой системе в результате выполнения транзакции, передается в параметре dOrderNum - можно для проверки успешности подачи заявки обращаться к этому значению.