[BUG] CreateDataSource не заказывает обезличенные сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.09.2021 19:47:35
QUIK 9.2.0.121
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.09.2021 19:46:46
После ручного удаления бумаги из списка получения информации по обезличенным сделкам невозможно заказать сделки по этой бумаге через скрипт.
Надо делать так, как надо. А как не надо - делать не надо.
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.09.2021 16:11:04
Цитата
Egor Zaytsev написал: ParamRequest() это добавление в список ожидаемых заказов. Для понимания что заказанный параметр начал ехать нужно реализовать коллбэк OnParam()
Для информации: после ParamRequest может пройти от 1 до 10-20 сек и десятки OnParam, прежде чем сервер обновит список транслируемых параметров.
Надо делать так, как надо. А как не надо - делать не надо.
Открывается при втором клике по заявке, когда окно стакана уже становится активным.
А при первом клике вместо контекстного меню активируется режим drag-and-drop. Правой клавишей мыши, Карл. И заявка может сместиться, если котировки в это время в стакане "дернутся".
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти при использовании SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.09.2021 09:37:47
QUIK 9.1.3.11
Скрытый текст
Тег: BUG
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти при использовании SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.09.2021 08:54:05
Код
local class, sec_code = "SPBFUT", "SiU1"
local run = true
function OnStop()
run = nil
end
function main()
local ds = assert(CreateDataSource(class, sec_code, 1))
ds:SetUpdateCallback(function (index)
if index < ds:Size() then return end
for i = 1, index do
ds:T(i)
ds:O(i)
ds:H(i)
ds:L(i)
ds:C(i)
ds:V(i)
end
end)
while run do sleep(1000) end
end
За несколько минут объём занимаемой скриптом памяти вырастает с 300 Кб до Гигабайтов.
Если график раннее не заказывался и убрать строку
Код
if index < ds:Size() then return end
, то сразу при запуске будет 2Гб.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.09.2021 23:26:38
Поправка: Я имел ввиду проблему кривого объёма на последней свече предыдущего дня.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.09.2021 19:24:46
Цитата
Daniil Pozdnyakov написал: наименования класса инструмента, на котором пытаетесь использовать данный функционал.
SPBFUT
Цитата
Daniil Pozdnyakov написал: являетесь ли Вы клиентом брокера или пользуетесь Демо-доступом?
Оба
Цитата
Daniil Pozdnyakov написал: Касательно удвоенного отображения объема на последней свече.
Возможно, починили какую-то другую проблему. Я имел ввиду проблему кривого объёма на предпоследней свече предыдущего дня. Скриншотов я полно выкладывал на этом форуме.
Чтобы заявка появилась в стакане, надо подключиться к серверу, выставить одну заявку таким образом, чтобы она встала в очередь,. И вкл. "Выделять свои заявки" в настройках таблицы котировок.
Это значит активно любое другое окно: график, ТТТ, таблица заявок и пр. Для активации другого окна достаточно кликнуть по его заголовку.
Цитата
Старатель написал: клик правой клавишей мыши по заявке в стакане
Однократный клик правой кнопкой мыши в окне таблицы котировок по строке с нашей заявкой.
И кстати настройка "Настройки/Программа/Контекстное меню" как-то странно влияет на таблицу котировок, о чём не указано в руководстве.
Если это не понятно, то я не знаю, кто у вас работает.
Надо делать так, как надо. А как не надо - делать не надо.
Перемещение заявки 2 транзакциями
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
31.08.2021 09:53:34
Цитата
Roman Azarov написал: Максимально сократить это время - является одной из наших основных задач.
Цитата
Roman Azarov написал: Пока сервером не будет получен ответ от биржи о том, что заявка была успешно снята, транзакция на выставление новой заявки не пройдет контроль достаточности средств на сервере.
Есть мнение, что лимиты в квике обновляются после получения уведомления по заявке. Сократить время можно, если обновлять лимиты не только после получения уведомления по заявке, но и после ответа от биржи по транзакции.
Надо делать так, как надо. А как не надо - делать не надо.
Возможности новой версии 7. Добавлена возможность быстрого доступа к транзакции замены заявки, если данная транзакция поддерживается на стороне торговой системы.
Не работает.
Цитата
Исправленные недоработки 12. Удвоенное отображение объема на последней свече в окне графика.
Не исправлено.
И вот не исправлена.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.13
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
30.08.2021 14:07:01
Зато в огромный список исправлений
Надо делать так, как надо. А как не надо - делать не надо.
Quik_9.1.0 не загружается
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
28.08.2021 12:46:28
Цитата
swerg написал: Я таки сомневаюсь что "врали". В самом деле не воспроизводилось.
А я не сомневаюсь. Потому что воспроизводилось всегда с первого раза на чистом квике с настройками по умолчанию, и не только у меня.
Цитата
swerg написал: комплекс неких частных условий. Причем возможно даже массовых, но отличающихся от тех, в каких живут разработчики
Мне плевать, в каких "условиях живут разработчики". На , если не сказано иное.
swerg, если уж вы впряглись в защиту, то спросите у поддержки, почему же у них, например, не воспроизводилось. Какой "комплекс неких частных условий" нужен был для воспроизведения ошибки, чтобы "удалось нащупать"? А то только пишите везде про какие-то "уникальные условия", аргументируйте свои утверждения.
Надо делать так, как надо. А как не надо - делать не надо.
Инструкция по работе с условными (стоп–) заявками, Обсуждение
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.08.2021 09:59:07
Добрый день.
Вы бы в включили , когда в результате срабатывания Тейк–профита в ТС может выставиться лимитированная заявка с ценой на 954 п. ниже максимума, при том, что отступ+спред = 8.
Надо делать так, как надо. А как не надо - делать не надо.
Quik_9.1.0 не загружается
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.08.2021 16:56:15
Ещё информация: на компьютере может быть запущено несколько квиков. И не бывает такого, чтобы не могло подключиться более одного, максимум только один из них не подключается.
Надо делать так, как надо. А как не надо - делать не надо.
Здравствуйте! Уважаемый QUIK clients support, выше вам уже предоставили существенную информацию:
Цитата
Дмитрий написал: при уходе его в какой-либо из режимов энергосбережения (например Гибернация), то при последующем выводе из режима Квик либо оказывается подключенным к серверу, либо нет. Если нет, то висит окно: "Net error: Удаленный хост принудительно разорвал существующее подключение". При этом в меню программы вместо "Установить соединение" остается доступным только вариант "Разорвать соединение" (словно оно по прежнему еще установлено). И никаких вариантов кроме как перезагрузить Квик нет.
От себя добавлю, что использую спящий режим. И после пробуждения, QUIK может оказаться в состоянии, описываемом в данной теме. У меня обычно это происходило при первом просыпании компьютера в течении дня. Возможно, это может быть связано с рестартом сервера, но это не точно. Просто так совпало, что по ночам компьютер спит чаще. Но это происходит не всегда. Т.е., не стоит рассчитывать, что если вы в точности повторите эксперимент, то сразу получите результат. И я сильно сомневаюсь, что в коде есть ветвление в зависимости от ПЗУ, ОЗУ или чего-то ещё, типа: тут ждём, тут не ждём. Вы идёте по ложному пути. Надо смотреть код в том месте, где стоит бесконечный цикл ожидания ответа от сервера.
Скрытый текст
Цитата
Vladimir Ivanov написал: решение вопроса не сдвинется с места.
Про CQ01954637 тоже месяцами врали, что не воспроизводится и про CQ01939238 и мн. др... Потом признались, что проблема действительно есть. s_mike@rambler.ru годами напоминает об одних и тех же багах. И что же? За много лет ничего не сдвинулось с места. Так что я не питаю иллюзий. Это ваше ПО и вам решать, каким оно будет.
Надо делать так, как надо. А как не надо - делать не надо.
Неправильное исполнение тейк-стопа, Брокер Сбер наглым образом нарушает исполнение стоп-ордеров
Такова реализация тейк-профит заявок в самом квике: для закрытия шортов тейк-профит реализовали, а для лонговых позиций оставили лазейку, чтобы проще было выбивать трейдеров из позиций по заниженным ценам. Ведь акции третьего эшелона в основном не шортовые. Здесь подробно обсуждалось:
Надо делать так, как надо. А как не надо - делать не надо.
Quik_9.1.0 не загружается
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
23.08.2021 12:52:39
Цитата
Vladimir Ivanov написал: директории с программой, на которой воспроизводилась проблема
Берите любую. Проблема древняя. С 6-й версии точно. При подключении на разные сервера, как боевые так и демо. В настройках соединений стоит галка "Восстанавливать связь автоматически". За много лет менялись компы, ОС, ЦП, ПЗУ, ОЗУ... Неизменным осталось только отсутствие таймаута ожидания при установке связи с сервером.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Пляшущие графики
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
23.08.2021 09:46:44
QUIK Junior 9.1.3.11 После смены сессии открыл дневной график: Переключился на другой таймфрейм и снова на дневной:
Надо делать так, как надо. А как не надо - делать не надо.
Quik_9.1.0 не загружается
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.08.2021 19:46:50
Ну вот, три часа QUIK устанавливает соединение с сервером. За три часа ни одного сообщения о недоступности сервера или другой ошибки. Чё он там ждёт - не понятно. Под спойлером сам процесс info.exe и треды, которые запустились после выхода компьютера из спящего режима.
Скрытый текст
Цитата
Старатель написал: если нажать кнопку "Разорвать соединение", то кнопки "Установить соединение", "Разорвать соединение" становятся неактивными.
После нажития "Разорвать соединение" запустились ещё два треда:
Скрытый текст
Ну и при закрытии окна QUIK процесс так и остался висеть пока принудительно его не грохнуть.
Надо делать так, как надо. А как не надо - делать не надо.
Тестирование стратегий, Возможность тестирования
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.08.2021 08:44:04
Цитата
Anton написал: Это он про вот эти вот все шаги цены, точность и прочее.
Для построения графика из всего справочника используется только шаг цены. В QMinEditor шаг цены вручную задается без всяких справочников. Для датасорца нужны только цена, объем и время - это всё есть в бинарниках в archive.
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.08.2021 18:12:04
TGB, слишкоммногабукв, не обратил внимание на цикл
Код
for i =1, size_Queue do
cycl[i] = 0
end
Цитата
TGB написал: выложенного вами Queue, который потокобезопасным не является
Это уже пусть представители Арки комментируют, насколько безопасными являются действия типа
Код
a={}
a.xxx = 1
a.yyy = 2
a.xxx = nil
и код в сообщении в частности.
Надо делать так, как надо. А как не надо - делать не надо.
Обновление пользовательской таблицы/окна
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.08.2021 17:14:45
Кто-нибудь обращал внимание, есть ли визуальная разница в скорости обновления ячейки в зависимости от порядка
SetCell SetColor
или
SetColor SetCell ?
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.08.2021 17:07:12
Цитата
TGB написал: 10000 обращений (запись, чтение, удаление) за 500 миллисекунд.
Не смотря на то, что сам тест бестолковый, но холостой цикл за 0,5 сек не слишком ли много?
Цитата
TGB написал: Заметного роста памяти QLua я не заметил.
Таблица из 1000 строк длиной 10 байт каждая. Какой "рост" вы рассчитывали увидеть в таком тесте?
Цитата
TGB написал: Для устранения вашей конкретной ситуации, возможно, подойдет вариант реализации очередей, приведенный в моем комментарии
Это не моя ситуация, а разработчиков QLua )) И не увидел в вашем комментарии каких-то существенных отличий касательно использования метода pop(). Больше похоже на спам вашего OS_...
Надо делать так, как надо. А как не надо - делать не надо.
if H(index) == nil and L(index) == nil and C(index-1) == nil then
message(" index = "..index)
end
Надо or вместо and использовать или разбить на несколько строк формулу, тогда будет видно, где конкретно ошибка
Код
max = math.max(math.abs(H(index)-
L(index)),
math.abs(H(index)-
C(index-1)),
math.abs(L(index)-
C(index-1)))
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.08.2021 17:44:46
TGB, если в представленном коде и возникают, как вы утверждаете, какие-то "ошибки синхронизации, которые могут порождать" пропажу метода pop, используемого только для чтения (!), то это уже вне зоны ответственности скриптера, а ошибка в реализации многопоточной модели QLUA.
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.08.2021 15:51:36
Цитата
TGB написал: при работе с такой очередью могут возникать ошибки синхронизации, которые могут порождать наблюдаемые вами последствия.
Абсолютно беспочвенное утверждение, говорящее об отсутствии понимания работы обсуждаемого кода.
Цитата
TGB написал: запустил тест для проверки времени выполнения потокобезопасных функций реализации только очереди
Тест ни о чём.
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.08.2021 14:00:56
Цитата
TGB написал: В вашем коде, по вашей ссылке, используется в двух потоках потоконебезопасная очередь OnAllTrades.
И?
Надо делать так, как надо. А как не надо - делать не надо.
Кривые шибки в QLua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
12.08.2021 13:59:18
Цитата
TGB написал: Как часто выполняется в скрипте приведенный вами фрагмент?
Минимальный интервал 1 мс. Но может быть и больше в зависимости от различных факторов, в т.ч. от текущего Timer Resolution
TGB написал: В API QLua есть функции реализации потокобезопасной очереди, созданные разработчиком QUIK: table.sinsert, table.sremove. Пример использования потокобезопасной очереди
В качестве разминки сделайте перезаказ обезличенных сделок (или переключитесь на другой сервер) ближе к концу торговой сессии и посмотрите, с какой задержкой будет обрабатываться ваша очередь и расход памяти скриптом. Задержка вычисляется как разница между временем получения колбека и фактическим временем обработки его в main.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Контекстное меню в стакане при включенном режиме drag-and-drop
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.08.2021 15:58:35
Цитата
Roman Azarov написал: Контекстное меню открывается.
Открывается при втором клике по заявке, когда окно стакана уже становится активным.
Цитата
Roman Azarov написал: У нас на актуальной версии терминала (9.1.1) описанное поведение не воспроизводится.
Не знаю, как у вас не воспроизводится. Только, если ничего не делать. Пришлите, пожалуйста, пример в виде записи экрана.
Надо делать так, как надо. А как не надо - делать не надо.
Старатель написал: это удобно, когда не задан код клиента, то он автоматически подставляется в транзакцию. Но если код клиента задан, то не надо пихать его в комментарий и подставлять другой код клиента в транзакцию.
Это ваш косяк.
Надо делать так, как надо. А как не надо - делать не надо.
Таблица транзакций
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 16:09:46
BUG: При замене заявки (Ctrl+A) в таблице транзакций не отображается транзакция снятия заявки.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] QUIK самовольно меняет код клиента
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 16:02:11
Andrey Bezrukov, Какой будет отклик с выключенной настройкой при подаче транзакции: 1) с неверным кодом клиента? 2) с пустым кодом клиента?
Надо делать так, как надо. А как не надо - делать не надо.
События на закрытие QLua-таблицы
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 14:20:15
1. В целях корректной обработки события закрытия таблицы предлагаю вызывать OnClose, когда только дана команда главному окну терминала на закрытие (нажат крестик, Alt+F4 или "Система -> Выход") до QTABLE_CLOSE. Тогда OnClose можно будет использовать, чтобы определить, что таблица закрыта не пользователем.
2. В аналогичных целях предлагается добавить колбек, вызываемый до QTABLE_CLOSE при запуске процедуры замены инструментов с истекающим сроком обращения
Либо предложите свой вариант.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Контекстное меню в стакане при включенном режиме drag-and-drop
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 14:08:44
Когда стакан не активен, то клик правой клавишей мыши по заявке в стакане не вызывает контекстное меню.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 13:54:11
Цитата
Возможности новой версии 7. Добавлена возможность быстрого доступа к транзакции замены заявки, если данная транзакция поддерживается на стороне торговой системы.
Не работает.
Цитата
Исправленные недоработки 12. Удвоенное отображение объема на последней свече в окне графика.
Не исправлено.
Надо делать так, как надо. А как не надо - делать не надо.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] QUIK самовольно меняет код клиента
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.08.2021 08:23:13
Цитата
swerg написал: Ну это такой момент, который пошел от пользовательского интерфейса QUIK.
В форме ввода заявки есть два отдельных поля: "Код клиента" и "Поручение".
Цитата
swerg написал: Если подключен только 1 логин (вернее один "код клиента") - то этот код автоматически подставляется, чтобы пользователя не грузить и "было удобно". В общем-то логично, согласитесь.
Абсолютно с вами согласен: это удобно, когда не задан код клиента, то он автоматически подставляется в транзакцию. Но если код клиента задан, то не надо пихать его в комментарий и подставлять другой код клиента в транзакцию.
Надо делать так, как надо. А как не надо - делать не надо.
Получение данных из стакана, Subscribe_Level_II_Quotes
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.08.2021 17:29:37
Вот пример работы со стаканом, проще некуда:
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] QUIK самовольно меняет код клиента
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.08.2021 16:41:50
К логину было подключено два кода клиента. Скрипт работал по обоим нормально. Потом один код был отключен брокером или пользователь зашел с логина, где подключен только один клиент, не суть. В результате вместо того, чтобы выдать ошибку, что у пользователя нет прав для работы с отключенным кодом клиента, QUIK стал молча подменять его на другой. Т.е., скрипт отправляет транзакцию с CLIENT_CODE = client2//brokerref, а заявка приходит с client_code = client1, brokerref = client1//client2//brokerref Это косяк.
Надо делать так, как надо. А как не надо - делать не надо.
Получение данных из стакана, Subscribe_Level_II_Quotes
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.08.2021 16:21:59
Надо делать так, как надо. А как не надо - делать не надо.
Запуск скриптов lua
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.08.2021 11:40:59
А если OnClose вызывать, когда только дана команда главному окну терминала на закрытие (нажат крестик, Alt+F4 или "Система -> Выход") до QTABLE_CLOSE? Тогда OnClose можно будет использовать, чтобы определить, что таблица закрыта не пользователем. А в момент закрытия терминала по-прежнему будет OnStop с флагом 2.
Надо делать так, как надо. А как не надо - делать не надо.