Зависает Квик при запуске скрипта передачи данных под Win10, При апгрейде Win 7 и 8 до Win 10 возникла проблема - квик зависает при запуске скрипта передачи данных
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
29.01.2016 08:56:22
Цитата
Код запрашивает у квика последние 2500 свечей при каждом изменении, да. Затем переводит их в строку и передает боту.
Возможно, в этой теме найдёте что-то полезное для себя:
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.01.2016 19:40:02
Цитата
"значение может быть nil"
Понятно, значит, просто перестраховались
Цитата
4. на каждую переставленную заявку приходит отдельный ответ.
Значит, пустые строки в account и brokerref не могут быть обусловлены перестановкой сразу двух заявок.
Надо делать так, как надо. А как не надо - делать не надо.
Разреженный стакан, проблема.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.01.2016 18:11:32
Цитата
неплохо было бы добавить настройку, ограничивающую максимальный размер стакана. А то при "случайном" открытии разряженного стакана по неликвидной бумаге терминал зависает из-за необходимости создавать стакан с огромным числом строк.
Это пожелание считается уже полностью реализованным ("Глубина стакана") или будет доделано для разряженного стакана?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.01.2016 11:05:59
Цитата
1. В документации написано "значение поля может быть nil"
Вместо nil я вижу дефолтные квиковские ""/0. Очевидно, ошибка в коде терминала, а не документации
Цитата
3. Подать транзакцию на перестановку заявок с разных счетов можно, если у вас прав достаточно.
Вот такую ошибку выдаёт при попытке переставить заявки на разных счетах:
Цитата
Ошибка перестановки заявок. [FORTS][35] "Ошибка в задании входных параметров.".
Нужны какие-то особые права?
Цитата
4. на каждую переставленную заявку приходит отдельный ответ.
Отдельный ответ с биржи?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
26.01.2016 16:21:24
3. Подать одну транзакцию на перестановку двух заявок по разным счетам нельзя. А, значит, и параметр account будет совпадать. Точка. Поручение (транзакция "MOVE_ORDERS" на перемещение) для обеих заявок одно. А, значит, и параметр brokerref будет совпадать.
Так понятно?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
26.01.2016 15:49:47
Ох, нелегкая это работа... Егор,
1. nil я понимаю буквально, как nil. В программировании это выглядит так:
Код
if trans_reply.account == nil then
toLog('Без паники. В документации указано, что это допустимо.')
elseif trans_reply.account == '' then
toLog('Швах! Что-то здесь не так...')
end
Поэтому и уточнил:
Цитата
Тут точно nil ?
2. Ваш ответ можно расценить, как дешёвую отмазку, чтобы не заниматься проблемой.
3. Подать одну транзакцию на перестановку двух заявок по разным счетам нельзя. Поручение для обеих заявок одно. А, значит, и параметры account и brokerref будут совпадать. Не вижу никаких причин, чтобы не заполнить эти параметры в OnTransReply.
4. При любом исходе ответ на транзакцию один: либо сразу обе заявки переставлены, либо нет. А, значит, нет необходимости дублировать OnTransReply.
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
26.01.2016 10:51:20
Цитата
Старатель, account и brokerref пустые потому, что MOVE_ORDERS может работать сразу с двумя заявками.
Одной транзакцией можно переставить две заявки по разным счетам (читай: с разными account)? Сколько у вас приходит ответов OnTransReply при перестановке сразу двух заявок? У меня две? Смысл в двух абсолютно одинаковых OnTransReply?
Надо делать так, как надо. А как не надо - делать не надо.
Антонов К. пишет: Вопрос актуальный. Как отслеживать состояние заявки.
Вы можете использовать примечание для решение задачи. Оно в отличии от TRANS_ID содержится в поле BROKERREF которое транслирует биржа, а значит оно точно не потеряется. То есть чтобы робот писал в примечание какой-либо спец признак. Примечание указывается в параметре транзакции CLIENT_CODE после кода клиента, в качестве разделителя добавляется признак "/" или "//" (зависит от настроек на стороне брокера) если в правах только один код клиента, можно его не указывать, а сразу писать примечание.
Заявки, переставляемые транзакцией "MOVE_ORDERS", таскают за собой параметр brokerref от самой первой заявки. Это нормальная ситуация?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 15:20:38
Цитата
Если вы обнаружили не точность, то сообщите.
Для транзакций "MOVE_ORDERS" всегда возвращается OnTransReply с пустой строкой в качестве параметров account и brokerref
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 13:04:52
Подытожим. Таким образом, OnTransReply с status = 3 (и только три) означает, что транзакция выполнена. Остальные значения статуса говорят о том, что транзакция не выполнена (и не будет выполнена). Так?
Приведите, пожалуйста, полный и исчерпывающий список возможных вариантов значений параметра status для колбэка OnTransReply. Из-за отсутствия этого списка для QLUA нам и вам (сотрудникам техподдержки) приходилось пользоваться аналогом этого списка для формата .tro-файла, что зачастую приводило к неверным рекомендациям с вашей стороны относительно параметра status.
Надо делать так, как надо. А как не надо - делать не надо.
центрировать стакан
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 11:41:18
Цитата
можно ли как-то центрировать стакан?
Поставить в свойствах стакана "Лучшие спрос и предложения видны всегда". Эта настройка не работает для разряженного стакана. Но в 7-й версии добавили не ограничение строк, как таковое, а глубину стакана (количество отображаемых котировок). Для разряженного стакана эта настройка бесполезна.
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 11:29:36
Цитата
Тут точно nil ?
Это так, отступление. К status отношения не имеет, но имеет отношение к OnTransReply.
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 11:17:48
3) Из описания Транзакции в документации по QLUA:
Цитата
* - параметр может иметь значение nil
Тут точно nil ?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.01.2016 10:33:10
1) Чем отличается status = 0 от status = 1 для транзакций, поданных из QLua-скрипта? Если мы получили OnTransReply, не означает ли это автоматически, что транзакция, как минимум, получена сервером QUIK?
2) Значения статусов 0, 2, 12, 13 возможны для стоп-заявок, поданных из QLua?
Надо делать так, как надо. А как не надо - делать не надо.
Как убрать счета депо из wnd при переносе на другой квик?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.01.2016 15:06:24
Цитата
Техподдержка может дать новую инструкцию по очистке от "левых" счетов?
Подразумеваются неактуальные коды клиентов.
Цитата
Возможно поможет удаление acnt.dat.
Нет. Во-первых после перезаказа данных этот файл не восстанавливается в 7-й версии (по-крайней мере в демо). Во-вторых, счета и коды клиентов зашиваются в файле info.wnd
Надо делать так, как надо. А как не надо - делать не надо.
Что приходит в OnTransReply ?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.01.2016 12:04:40
Укажите, пожалуйста, возможные значения параметра status в OnTransReply для транзакций, поданных посредством QLua-скриптов.
Пример: status = 0 - транзакция отправлена серверу - не имеет смысла, поскольку приход колбэка OnTransReply уже говорит о том, что транзакция получена сервером QUIK (status = 1)
Надо делать так, как надо. А как не надо - делать не надо.
getQuoteLevel2, Приведение данных к корректному виду
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.01.2016 11:09:59
Спасибо. Странно, почему в руководстве эта функция не указана? Есть ещё какие-то недокументированные функции, о которых стоило бы знать?
Надо делать так, как надо. А как не надо - делать не надо.
OnTransReply, status
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.01.2016 10:12:38
Здравствуйте. В каких ситуациях может прийти OnTransReply со статусом 0 или 1? Какие возможные значения может принимать status при выставлении стоп-заявок?
Надо делать так, как надо. А как не надо - делать не надо.
Как убрать счета депо из wnd при переносе на другой квик?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.01.2016 09:59:21
Из-за изменения основного меню в 7-й версии все эти пункты следует искать в других местах. Но проблема в другом: перечисленные по ссылке действия не приводят к желаемому результату: "левые" счета всё равно не удаляются.
Техподдержка может дать новую инструкцию по очистке от "левых" счетов?
Надо делать так, как надо. А как не надо - делать не надо.
getQuoteLevel2, Приведение данных к корректному виду
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.01.2016 16:34:56
Здравствуйте.
Измените QLua-функцию getQuoteLevel2 таким образом, чтобы она возвращала значения типа number вместо строковых. (Я не могу придумать ни одного варианта, когда было бы необходимо (или даже возможно) использовать данные того формата, что сейчас возвращает функция... Даже в sendTransaction без форматирования эти данные не подойдут.) Конечно, всё форматирование можно написать в своей программе, но форматирование в число занимает гораздо больше времени, чем в C-коде внутри самого терминала. Особенно, если нужно обработать несколько строк бидов и офферов. Это не дело.
Далее, при отсутствии заявок на покупку/продажу "таблицы" bid/offer имеют строковый тип. Логичнее было бы возвращать либо пустую таблицу {}, либо nil.
Надо делать так, как надо. А как не надо - делать не надо.
Проблема работы кнопки "оформление цитаты"
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.01.2016 16:11:53
Кнопка "Цитировать" теперь не работает? (Opera v.34.0)
Надо делать так, как надо. А как не надо - делать не надо.
Подскажите, что можно "почистить" в квике
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.01.2016 12:04:40
В alltrade.dat содержится архив ТВС. Он сам очищается в начале новой сессии или при переключении на другой сервер.
(кстати, где можно скачать актуальную версию WndConverter?)
Надо делать так, как надо. А как не надо - делать не надо.
Как в Lua сделать безусловный переход ? Или такой возможности нет ?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
18.01.2016 08:54:53
Создать функции, не?
Надо делать так, как надо. А как не надо - делать не надо.
Зависание QUIK, Зависание стакана котировок и графика на открытии торгов и вечернем клиринге
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
15.01.2016 19:37:18
Юрий, могу скинуть скрипт для теста брокера. Из лога будут видны реальные задержки отображения биржевой информации - отправите его (лог) разработчику
Надо делать так, как надо. А как не надо - делать не надо.
Как на диалог со списком скроптов Lua назначит горячую клавишу?
У меня так - из личных наблюдений. У вас, возможно, будет по-другому. Зависит от конкретных настроек брокера, вероятно. Тестируйте. Где-то на этом форуме я выкладывал результаты сравнительного тестирования скорости получения колбэков OnParam, OnAllTrade, OnQuote, CreateDataSource.
Цитата
Космонавт пишет: Сергей Горохов вроде бы обосновал, что это не так.
Где вы это увидели?
Надо делать так, как надо. А как не надо - делать не надо.
Пропуски данных в ТТП
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.01.2016 20:56:13
На интервальном (не тиковом) графике цена отображается позже других источников. Поэтому, если скорость получения цены последней сделки имеет значение, - лучше использовать ТТП или ТВС.
Надо делать так, как надо. А как не надо - делать не надо.
Изменение/перемещение стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.01.2016 15:59:11
* Насчёт цены - не знаю, насколько это сложно.
Надо делать так, как надо. А как не надо - делать не надо.
Изменение/перемещение стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.01.2016 11:54:51
При изменении рыночных условий или закрытии части позиции, на которую выставлялся стоп, может потребоваться перевыставить стоп-заявку с новыми условиями. Удобней было бы, просто поменять требуемые параметры, а не отслеживать статусы старой снятой и новой заявок. Поскольку механизм изменения активного количества уже реализован в заявках типа "Со связ. заявкой", то, думаю, с небольшими доработками его можно применить к стоп-заявкам других типов. Насчёт объёма - не знаю, насколько это сложно.
Надо делать так, как надо. А как не надо - делать не надо.
Как получить средствами QLUA из таблицы Orders видимое количество лотов айсберг-заявки ?
Стас Золотарев пишет: А есть ли другой способ отличия айсберг-заявки от обычной лимитной через QLUA?
Код
flags NUMBER Набор битовых флагов
бит 9 (0x200) Айсберг-заявка
Надо делать так, как надо. А как не надо - делать не надо.
Изменение/перемещение стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.01.2016 13:18:03
В QUIK есть условные заявки типа "Со связ. заявкой". При частичном исполнении связанной заявки объем стоп-заявки уменьшается до величины неисполненного остатка лимитированной заявки. Предлагаю на основе данного функционала добавить функцию изменения некоторых параметров (объёма, цены...) любых стоп-заявок без необходимости снятия/выставления новой заявки, т.е. в таблице стоп-заявок это будет та же самая заявка. И также добавление нового вида ("ACTION") транзакции "MOVE_STOP_ORDER", при выполнении которой номер стоп-заявки остаётся прежним.
Надо делать так, как надо. А как не надо - делать не надо.
Как убрать счета депо из wnd при переносе на другой квик?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.01.2016 18:15:01
Надо делать так, как надо. А как не надо - делать не надо.
Изучаем Qlua., "hello world"
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.01.2016 10:24:19
Для QLua условие уникальности TRANS_ID не является обязательным, т.е. работоспособность функции sendTransaction не зависит от уникальности этого параметра. А по "KILL_ALL_ORDERS" здесь есть ответ:
Надо делать так, как надо. А как не надо - делать не надо.
Как получить через API или таблицы все счета депо?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.01.2016 23:04:52
Таблица торговых счетов. Доступна также для вывода по DDE.
Надо делать так, как надо. А как не надо - делать не надо.
Таблица транзакций
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.01.2016 10:51:09
Таблица транзакций очищается при переключении на другой сервер. Надо бы исправить.
Надо делать так, как надо. А как не надо - делать не надо.
Стоп-заявка сработала, но была отвергнута торговой системой
Является ли параметр brokerref в колбэке OnTrade необновляемым, т.е. проставляется ли он в первом же колбэке в обязательном порядке?
Надо делать так, как надо. А как не надо - делать не надо.
Стоп-заявка сработала, но была отвергнута торговой системой
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.12.2015 16:28:10
В каком колбэке указывается причина отклонения торговой системой заявки, выставляемой по стоп-заявке?
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.12.2015 09:06:41
По поводу панели "Общий фильтр клиентов": при старте QUIK этот фильтр не применяется для графиков, требуется повторный ввод кода клиента. Также и для стакана: после старта QUIK требуется повторный ввод в поле "Код клиента".
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 16:09:41
Цитата
Egor Zaytsev пишет: 2. У нас проблема не воспроизводится. В форму ввода заявки подставляется тот код клиента, который указан уже у той стоп заявке, которая была выделена.
Всё вопрос снят: был установлен признак "Подставлять код клиента из фильтра", а сам фильтр на вкладке с таблицей стоп-заявок не указан.
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 14:55:46
1. При наведении курсором на линию условной заявки на графике всплывает подсказка с её параметрами. На обеих линиях отображается параметр "Стоп-цена". Сделайте на тейк-профит линии название параметра "Тейк-цена", чтобы понятней было.
2. При вводе новой стоп-заявки из таблицы стоп-заявок заполняются поля аналогичные заявке, на которой стоит курсор, кроме Кода Клиента
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 14:53:07
Цитата
Старатель пишет: Скажите, а всегда ли при мгновенном исполнении условной заявки по тейк-профит приходит колбэк с установленным 15-м битом в флаге flags?
Отвечаю на свой вопрос: при моментальном исполнении стоп-заявки по тейк-профиту колбэк OnStopOrder с установленным 15-м битом в флаге flags приходит не всегда.
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 12:52:45
Цитата
Старатель пишет: Скажите, а всегда ли при мгновенном исполнении условной заявки по тейк-профит приходит колбэк с установленным 15-м битом в флаге flags?
Имеется ввиду, если терминал находится онлайн в этот момент
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 12:25:22
Цитата
s_mike@rambler.ru пишет: При этом возможны случаи, когда позиция будет закрыта ниже цены стопа даже в отсутствии проскальзываний.
Это-то понятно. ))
Скажите, а всегда ли при мгновенном исполнении условной заявки по тейк-профит приходит колбэк с установленным 15-м битом в флаге flags? Я думаю, вы понимаете, я клоню? Отловить условие срабатывания.
Надо делать так, как надо. А как не надо - делать не надо.
Ошибка "Неверный код клиента"
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 12:16:15
Я так понимаю, при подключенном субсчёте параметр CLIENT_CODE в транзакции должен выглядеть так: "code/sub/comment"
Надо делать так, как надо. А как не надо - делать не надо.
Стоплосс и тейкпрофит заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 12:01:23
Цитата
Александр Евстратенко пишет: Вопрос заключался можно ли с помощью каких либо флагов или параметров сделки просто и точно определить условие по которому исполнилось стоплосс и тейкпрофит заявка.
Если не сбрасывать 15-й бит флага "flags" в ноль при исполнении условной заявки, то по его значению можно однозначно определить условие исполнения. Зарегистрируйте, пожалуйста, пожелание на доработку: не сбрасывать 15-й бит флага "flags".
Надо делать так, как надо. А как не надо - делать не надо.
Тейк-профит и стоп-лимит
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 11:03:12
При наведении курсором на линию условной заявки на графике всплывает подсказка с её параметрами. На обеих линиях отображается параметр "Стоп-цена". Сделайте на тейк-профит линии название параметра "Тейк-цена", чтобы понятней было.
И ещё: я правильно понимаю, что после того как сработал сигнал по тейк-профит и начался расчёт min/max, то стоп-условие уже не рассматривается?
Надо делать так, как надо. А как не надо - делать не надо.
Стоп-заявка сработала, но была отвергнута торговой системой
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.12.2015 09:48:09
Цитата
Владимир пишет: Заявка, выставляемая по стоп-заявке N [53769731], отвергнута торговой системой: Could not cancel order. [GW][14] "Не найдена заявка для удаления".
В каком из колбэков нужно ловить такое сообщение?
Надо делать так, как надо. А как не надо - делать не надо.
Стоп-заявка сработала, но была отвергнута торговой системой
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
19.12.2015 21:26:08
Цитата
Владимир пишет: Скрипт пытается делать какое то действиеи ошибка приходит от Скрипта. У Квика такой ошибки нет.
Таблица транзакций показывает, что ошибка не скрипта, а сервера.
Надо делать так, как надо. А как не надо - делать не надо.