Старатель написал: Если задана SetTableNotificationCallback (как для ячеек так и для заголовков) по событиям QTABLE_RBUTTONDOWN, QTABLE_RBUTTONDBLCLK, QTABLE_RBUTTONUP, то контекстное меню, в том виде, в котором сейчас есть (не настраиваемое) не нужно!
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
QUIK 7.25.1.3. Условное форматирование таблиц., Желательно, для ячеек выставить по умолчанию "Нет цвета"
Пользователь
Сообщений: Регистрация: 23.01.2015
06.12.2019 11:18:05
Цитата
Старатель написал: Как сделать, чтобы условие «задано» корректно работало для числовых ячеек?
К сожалению такой возможности не предусмотрено
Контекстное меню в Lua-таблицах
Пользователь
Сообщений: Регистрация: 23.01.2015
06.12.2019 10:48:07
Здравствуйте, такой возможности нет.
Объяснение процесса обратного получения заявок, Объяснение процесса обратного получения заявок
Пользователь
Сообщений: Регистрация: 23.01.2015
04.12.2019 16:27:02
Цитата
GrigoriyA написал: ну вот я транзакции вижу , а заявки нет
и что Вы видите в транзакциях? А если точнее, то в колонке "Сообщение" таблицы транзакций?
Информация по заявка в quik и trans2quik, Информация по заявка в quik и trans2quik
Пользователь
Сообщений: Регистрация: 23.01.2015
04.12.2019 16:19:55
Цитата
GrigoriyA написал: то есть транзакция может стать ордером, а ордер сделкой? Если биржа не будет отклонять по каким то причинам?
Транзакция может привести к регистрации заявки. Заявка может исполниться и тогда по ней будут сделки.
Если транзакция не будет одобрена сервером QUIK или биржей, то заявки соответственно не будет, а значит не будет и сделок.
Информация по заявка в quik и trans2quik, Информация по заявка в quik и trans2quik
1) В начале вызывается TRANS2QUIK_SUBSCRIBE_ORDERS в котором Вы указываете Код класса, для которого будут заказаны заявки и Список кодов инструментов 2) Потом вызываете TRANS2QUIK_START_ORDERS в котором Вы указываете имя функции которая будет срабатывать при получении заявок, описание функции см. в TRANS2QUIK_ORDER_STATUS_CALLBACK 3) И далее смотреть что приедет в этой функции из п.2
Судя по приведенным частям кода все описанное есть.
Если заявок нет, то и в колбеке Вы ничего не увидите. Следовательно вопрос, заявки есть? откройте в терминале QUIK таблицу заявок и посмотрите. Если есть, значит в коде что то выполнено не верно. на нашем примере из "SAMPLE_C#\test_x64.exe" проблема не воспроизводится. Проверьте поступление заявок на нем.
Получение статуса выполнения асинхронной заявки, Получение статуса выполнения асинхронной заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
04.12.2019 15:09:08
Цитата
GrigoriyA написал: Подскажите, пожалуйста, процесс получения статуса по отправленной асинхронной заявке.
Вы отправляете транзакцию через функцию А ответ на транзакцию ищите не в результате работы функции, а в отдельном колбеке. В общем то всё.
Цитата
GrigoriyA написал: Тот пример что предлагают скачать здесь, отправляет асинхронную заявку , но не получает ответ по ней.
Не воспроизводится. От слова совсем. Все прекрасно работает. Смотрим наш пример SAMPLE_C++ если речь про параллельную тему "Объяснение процесса обратного получения заявок" которую Вы создали, то ответ по ней будет там.
Информация по заявка в quik и trans2quik, Информация по заявка в quik и trans2quik
_sk_ написал: С этим не поспоришь. Только лучше бы знать, к чему нам готовиться. Время то уже тикает, до 16 декабря не так уж много времени осталось. Хотя бы спецификации уже есть? Номера будут строками приходить, раз они в Lua NUMBER не укладываются? Или будет обновление Lua до 5.3, где есть поддержка long на 64-бита?
К сожалению мы не имеем права разглашать информацию до официального релиза.
Проблемы после перехода на 64 бит (Финам), Обновил квик от Финам до 64-битной версии, возникли проблемы с работой скриптов
Пользователь
Сообщений: Регистрация: 23.01.2015
02.12.2019 16:42:06
Странно но у нас проблема не повторяется. попробуйте тогда по другому:
s_mike@rambler.ru написал: А (правильный) вариант исправления/добавления терминала уже не рассматривается в принципе? Базовая потребность - и только костылями?
Если речь о том чтобы зарегистрировать пожелание, тогда Вы должны его озвучить (пожелание)
Остановить скрипт при закрытии терминала
Пользователь
Сообщений: Регистрация: 23.01.2015
14.11.2019 12:16:38
s_mike@rambler.ru, Михаил, Можно запоминать состояние stopped во внешнем хранилище. Или добавить проверку на что то еще, например подключение к серверу.
GetInfoParam("SERVERTIME"), не всегда срабатывает
Пользователь
Сообщений: Регистрация: 23.01.2015
14.11.2019 11:06:12
Цитата
Александр Кашников написал: Лирика: ваша FixTime (V) избыточна применительно к проверкам такого рода совместно с GetInfoParam( "SERVERTIME" ). Просто убрать два двоеточия гораздо быстрее, а смысл тот же.
Ваше право.
Цитата
Александр Кашников написал: Откуда берет значение getInfoParam("SERVERTIME")?
С пакета данных который прислал сервер QUIK. Кроме того есть еще локальный счетчик который накручивает время при отсутствии свежих данных.
Цитата
Александр Кашников написал: Через какое МИНИМАЛЬНОЕ время после соединения с вашим сервером ГАРАНТИРОВАННО можно понять, что данные получаемые с сервера корректны (время ПК +- пару секунд +- часовой пояс), а не далекое прошлое, как в примере выше?
такой константы не существует, всегда есть куча переменных в зависимости от которых время может быть разным.
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
s_mike@rambler.ru написал: Господа разработчики, как понимаю, задача решения не имеет?
штатного решения нет
Получение данных из Доски опционов
Пользователь
Сообщений: Регистрация: 23.01.2015
11.11.2019 05:28:50
Цитата
Роман написал: Добрый день! Подскажите, как получить из Позиций по клиентским счетам код класса через getItem("FUTURES_CLIENT_HOLDING",i) -- SPBOPT (другими словами отделить опционы от фьючерсов) и можно ли каким-то образом получить там же код базового актива для опционов ( или базовый актив только через getParamEx?). Хочу сделать индикатор вариационной маржи по опционным позициям, когда таковые есть, на графике базового актива.
В FUTURES_CLIENT_HOLDING нет кода класса, Вы можете в этом убедиться просто открыв таблицу в терминале. Отделить опционы можно по коду инструмента т.к. коды фьючерсов явно отличаются от опционов. Этого достаточно чтобы узнать все остальные параметры инструмента, например через getSecurityInfo
таблица торгов обновляется раз в период, по таймауту. таблица обезличенных сделок обновляется по мере поступления данных. По этому в таблице обезличенных сделок данные более актуальные чем в таблице текущих торгов.
Получение данных из Доски опционов
Пользователь
Сообщений: Регистрация: 23.01.2015
08.11.2019 11:30:14
Цитата
Роман написал: Всё в одном месте и без задержек данных.
Это не правда. Доска опционов, это банальный калькулятор, который просто что то считает и отображает данные из других таблиц. Логично что таблица из которой доска берет данные куда лучше чем сама доска.
Цитата
Роман написал: Или же в расширениях сделайте Окно графиков открытого интереса наподобие окна графиков волатильности (только в виде гистограмм (по Х - страйки, по Y-количество, рядом две гистограмки на страйке (колы и путы)) в разделе стратегия. Или же можно в виде линии (как улыбка волатильности) - несколько линий разных цветов (разные даты экспирации по одному базовому активу. Выбираем актив FUT - и получаем на одной диаграмме все открытые интересы по всем страйкам и датам экспирации, например.
График открытого интереса Вы можете построить уже сейчас, по данным из таблицы текущих торгов. Вам же, на сколько становится понятно хочется видеть график по данным из таблицы обезличенных сделок. Через LUA Вы можете построить его уже сейчас используя LUA индикаторы. в all_trades это параметр open_interest см документацию.
Другой момент в том что штатными средствами терминала QUIK построить график открытого интереса по таблице обезличенных сделок нельзя. И на это мы можем зарегистрировать пожелание.
Получение данных из Доски опционов
Пользователь
Сообщений: Регистрация: 23.01.2015
07.11.2019 11:07:24
Роман, Чем поможет доска опционов для решения задачи построения открытого интереса на графике?
Снятие стопов после закрытия сделки., Снятие стопов после закрытия сделки.
Пользователь
Сообщений: Регистрация: 23.01.2015
07.11.2019 11:06:47
Vasiliy, Пример работы с функцией getItem есть в документации, глава "Функции для обращения к строкам произвольных таблиц QUIK"
Базовый актив
Пользователь
Сообщений: Регистрация: 23.01.2015
05.11.2019 06:29:50
Цитата
Константин Рейм написал: А можно по фьючерсу акцию определить?
также по параметру OPTIONBASE
Цитата
Константин Рейм написал: Робот запоминает свое место в пространстве монитора, а вкладку на которой он открыт может запомнить, чтобы при отключении терминала бот открывал таблицу на той вкладке где был запущен первоначально?
такой возможности не предусмотрено
Робот не работает на графике с Аллигатором
Пользователь
Сообщений: Регистрация: 23.01.2015
05.11.2019 06:22:20
Нужно переписать робота так чтобы он корректно обрабатывал ситуацию.
Снятие стопов после закрытия сделки., Снятие стопов после закрытия сделки.
Пользователь
Сообщений: Регистрация: 23.01.2015
05.11.2019 06:20:48
Цитата
Vasiliy написал: А как его получить этот номер с сервера в код?
например через функцию getItem
Снятие стопов после закрытия сделки., Снятие стопов после закрытия сделки.
Пользователь
Сообщений: Регистрация: 23.01.2015
01.11.2019 06:04:07
Цитата
Vasiliy написал: Спасибо. А если у меня на одном инструменте только одна стоп заявка все равно нужно прописывать ее номер?
Да.
Цитата
Vasiliy написал: Если да, то откуда брать этот номер?
Из таблицы стоп заявок.
Цитата
Vasiliy написал: Или его нужно самому присваивать, где и как?
Номер присваивает сервер, после того как Вы выставите стоп заявку
Снятие стопов после закрытия сделки., Снятие стопов после закрытия сделки.
Пользователь
Сообщений: Регистрация: 23.01.2015
31.10.2019 06:44:28
Цитата
Vasiliy написал: Подходит ли для этого функция KILL_STOP_ORDER?
Это команда на снятие стоп заявки. Вам же нужно снять стоп заявку? Тогда она подходит.
Цитата
Vasiliy написал: Что прописывать в атрибутах функции "номер ордера"?
Функция выставления тейк профита, Ошибка в выставлении профита
Пользователь
Сообщений: Регистрация: 23.01.2015
11.10.2019 09:46:20
Виталий, У Вас в коде в цикле "for i=1,#index do" снимаются все активные стопы. Видимо функция ProfitControl вызывается несколько раз, от этого предыдущий стоп и снимается. либо не запускайте функцию по нескольку раз, либо предусмотрите в указанном цикле условия при которых стоп не должен сниматься.
Проблемы с TRANS2QUIK_SEND_SYNC_TRANSACTION, Возвращается TRANS2QUIK_SUCCESS, а значение тикета в pdOrderNum равно нулю
Пользователь
Сообщений: Регистрация: 23.01.2015
11.10.2019 05:20:41
Цитата
Сергей написал: Функция TRANS2QUIK_SEND_SYNC_TRANSACTION возвращает TRANS2QUIK_SUCCESS, а значение тикета в pdOrderNum равно нулю, заявки нет в терминале QUIK. Это случается не для каждого запуска функции. Происходит на Демо-счете Финама. В каком направлении двигаться дальше)?
Успешность отправки транзакции не гарантирует регистрацию заявки. Например если биржа по каким-то причинам отвергла регистрацию. Транзакция дошла до биржи? Да дошла. Значит и статус у нее соответствующий. А то что биржа отвергла регистрацию заявки это уже вопрос к бирже. Могут быть и другие примеры ситуации, в любом случае нужно смотреть на ошибку которую вернула система.
Перенос лимитной заявки, Перенос лимитной заявки на фондовой секции!?
Пользователь
Сообщений: Регистрация: 23.01.2015
10.10.2019 14:07:43
Цитата
Виктор Волков написал: Ещё раз повторю вопрос- почему разработчик за много лет не сделает возможность автоматического переноса не исполненной лимитной заявки на споте как это делается на срочке!?
Еще раз повторим ответ, потому что такого функционала нет на бирже.
В QUIK всё уже давно сделано в алго модуле, но он платный
getItem vs SearchItems, (скорость получения выборки)
Пользователь
Сообщений: Регистрация: 23.01.2015
08.10.2019 05:28:52
QApplication, SearchItems быстрее. На сколько именно, к сожалению затруднимся сказать т.к. число не постоянно и зависит от многих факторов. Вы можете проверить это самостоятельно на Вашей конфигурации.
как узнать идентификатор таблицы
Пользователь
Сообщений: Регистрация: 23.01.2015
07.10.2019 06:25:41
Здравствуйте, идентификатор вернет функция AllocTable
rodionos написал: Было бы логично иметь соответствующий параметр и в самом Квике.
От куда ее транслировать? ведь в биржевом протоколе такого параметра нет. Будет в протоколе, тогда появится и в QUIK. Из воздуха к сожалению транслировать не умеем.
Минимальный размер видимой части у айсберга
Пользователь
Сообщений: Регистрация: 23.01.2015
04.10.2019 08:08:06
rodionos, Речь про биржевую транзакцию, в связи с чем вопрос к специалистам биржи. На сколько нам известно в биржевом протоколе нет такого параметра.
написал: Если сервер выше 8.0 то количество требуется отображать с учетом точности инструмента, однако, на российских рынках как правило нет инструментов с дробным количеством, так что можно также умножать на 100.
Можно поподробнее? В версии 8.1.0.30 balance отображается целым числом, зачем ещё умножать?
А никто не говорил что надо что-то умножать на версии 8.1. речь про умножение была только про старую версию где был баг.
Дробное значение balance
Пользователь
Сообщений: Регистрация: 23.01.2015
03.10.2019 11:57:49
Здравствуйте,
Цитата
Старатель написал: В какой версии ошибка устранена?
Исправление было в 8.0
Цитата
Старатель написал: В какой версии была добавлена ошибка?
Старатель написал: В версиях, где ошибка присутствует, чтобы получить корректное значение снятого остатка, достаточно balance умножить на 100, или размер лота, или другое значение? Или всё сложнее?
ответ зависит еще и от версии сервера. Если сервер ниже 8.0 то да, надо просто умножить на 100. Если сервер выше 8.0 то количество требуется отображать с учетом точности инструмента, однако, на российских рынках как правило нет инструментов с дробным количеством, так что можно также умножать на 100.
rodionos написал: подскажите, как правильно интерпретировать 5-ый и 6-ой биты таблицы trades.
Кстати, возможно это то что Вам нужно TRADE_MAKER = 32; /**< Пассивная (сделка образована по ранее выставленной заявке). */ TRADE_TAKER = 64; /**< Активная (сделка образована по заявке выставленной для ее образования) */
Цитата
rodionos написал: 2) Был бы полезен getAllTradeByNumber по аналогии с getOrderByNumber, для быстрого получения строки с использованием индекса. Таблица all_trades большая и в отсутствие индекса поиск через SearchItems скорее всего будет медленным.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
OnTrade flags - направленность сделки
Пользователь
Сообщений: Регистрация: 23.01.2015
19.09.2019 13:43:52
Цитата
rodionos написал: Сергей, интересует расшифровка flags таблицы trades, то есть таблицы с моими сделками.
Она приведена в документации о которой Вы же и говорили в начале.
Цитата
rodionos написал: Из этого флага нужно получить направленность сделки аналогично тому, как она кодируется в AllTrades.
Биржа не транслирует этой информации, следовательно и в QUIK Вы ее увидеть не сможете.
Цитата
rodionos написал: Иначе придется искать мою сделку по идентификатору в таблице обезличенных сделок.
Другого выхода нет
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
Пользователь
Сообщений: Регистрация: 23.01.2015
19.09.2019 13:39:00
Цитата
QApplication написал: он у вас в документации описан как string.
К сожалению Lua не умеет лезть в документацию.
Цитата
QApplication написал: в qlua.chm допишите, что для result = false type = 0; и все будет понятно.
Это не всегда так. Вернее нет гарантий что это всегда так.
Цитата
QApplication написал: насколько я понял, у вас одна структура данных для указанной функции для всех поддерживаемых рынков.
Вам понятно что на бирже нет такого параметра, как QUIK может показать то чего нет? никак, и не будет он что то придумывать просто ради того чтобы было как везде. Набор параметров для разных рынков разный, а функция одна на все рынки.
OnTrade flags - направленность сделки
Пользователь
Сообщений: Регистрация: 23.01.2015
19.09.2019 13:10:06
Цитата
rodionos написал: По сути необходимо значение нулевого бита так как он проставлен для этой сделки в AllTrades (обезличенные сделки).
Обратите внимание что речь про обезличенные сделки. Сделка одна. А заявки приведшие к сделке две, от двух людей, у одного на покупку у другого на продажу. Однако в сделке мы видим какое-то направление. В документации на этот счет сказано следующее:
Цитата
«Купля» – заключена сделка путем выставления заявки на покупку против находящейся в торговой системе котировки на продажу; «Продажа» – сделка на продажу;
OnTrade flags - направленность сделки
Пользователь
Сообщений: Регистрация: 23.01.2015
19.09.2019 13:06:36
rodionos, Честно вопрос не понятен. Совсем. бит 2 показывает направление, Вы же сами сказали.
callback OnParam(args) and getParamEx2(args), Тип данных параметра (param_type) отсутствует в описании QLUA.chm
Пользователь
Сообщений: Регистрация: 23.01.2015
19.09.2019 13:03:24
Цитата
QApplication написал: или в документацию на QLUA.chm допишите тип 0 - undef
Вы не туда смотрите, Вам на result смотреть надо, если false то нет параметра, значит и характеристик параметра нет. Как уже было сказано 0 это просто значение по умолчанию. Это не значимая константа.