Только не уверен, в какой именно лог пишется история в curr_data.log или info.log
Надо делать так, как надо. А как не надо - делать не надо.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.09.2021 10:02:27
Коллеги, у кого есть возможность проверить в 9-й версии отпишите о результатах одновременной работы двух скриптов:
Скрипт 1
Скрытый текст
Код
-- Здесь указываем значения для своего счета
-- и код бумаги, позиция по которой имеется в портфеле, нулевая позиция тоже подойдёт
FIRM_ID =
ACCOUNT =
CLIENT_CODE =
CLASS_CODE =
SEC_CODE =
LIMIT_KIND =
local run = true
function OnStop()
run = nil
end
function main()
local mLots
while run do
local tblTotalLot = getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT, LIMIT_KIND)
if type(tblTotalLot) == "table" then
local TotalLots = tblTotalLot.currentbal
if mLots ~= TotalLots then
message(SEC_CODE .. ": mLots = " .. tostring(mLots) .. "\n" .. tblTotalLot.sec_code .. ": currentbal = " .. tostring(TotalLots), 3)
mLots = TotalLots
end
else
message("getDepoEx error", 3)
end
sleep(1)
end
end
Скрипт 3
Скрытый текст
Код
-- Здесь также указываем значения для своего счета
-- Можно указать ту же бумагу, что и в первом скрипте или другую бумагу
FIRM_ID =
ACCOUNT =
CLIENT_CODE =
CLASS_CODE =
SEC_CODE =
local run = true
function OnStop()
run = nil
end
function main()
while run do
--getBuySellInfoEx(FIRM_ID, CLIENT_CODE, CLASS_CODE, SEC_CODE, 0)
CalcBuySell(CLASS_CODE, SEC_CODE, CLIENT_CODE, ACCOUNT, 0, true, true)
sleep(1)
end
end
У меня довольно часто позиция не определяется и вываливается ошибка "getDepoEx error" в версиях 9.1.1 - 9.2.1 (Lua 5.3, 5.4)
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.09.2021 09:36:23
Цитата
Daniil Pozdnyakov написал: Касательно добавления быстрого доступа к транзакции. Безусловно, данный функционал не доступен в Демо-доступе.
Об этом я и написал. Замена заявки средствами ТС для фьючерсов (класс SPBFUT) вызывает транзакцию "Переставить заявки", которая доступна из из меню "Выполнить транзакцию"? Или это какая-то другая транзакция, не доступная из "Выполнить транзакцию"?
Цитата
Daniil Pozdnyakov написал: Касательно неправильного отображения объёма на последней свече предыдущего дня. Данная проблема, которая была обнаружена в прошлых версиях терминала, была нами проверена на версии Quik 9.1. Она не воспроизвелась, объём последней свечи предыдущего дня отображается корректно
Напишите , что исправили.
Цитата
Daniil Pozdnyakov написал: Перепроверили работу скриптов, на которые Вы ссылаетесь, уже с функцией CalcBuySell(). Они исправно выводят правильные данные.
Напишите , что исправили.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
swerg, когда требует ситуация, я публикую и и скрины и . Но не нужно и писать потом "пришли архив, запили видео". Блин, чё я перед вами "оправдываюсь". Вы сами хоть что-то полезного сделали на форуме или только можете всем хамить, призывая при этом к миру?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.09.2021 16:34:59
Цитата
swerg написал: Да, я бы хотел пробудить вас к большему конструктив.
По поводу конструктива, раз уж вы напрашиваетесь. В 9-й версии анонсировали возможность замены заявки одной транзакцией вместо двух, если такая транзакция поддерживается ТС. Месяц назад я о том, что эта функция не работает. Да, вот такой лаконичный баг-репорт. На мой взгляд, этого короткого сообщения более, чем достаточно, чтобы проверить работоспособность новой функции. Спустя месяц, поддержка застряла на выяснении есть ли такое на Демо-доступе (блин, а самому проверить не быстрее было бы) и наименовании класса (как будто на демке, кроме SPBFUT есть другие классы с транзакцией замены заявки).
Я бы на месте поддержки открыл таблицу заявок, поставил бы заявку и вызвал контекстное меню, где и должен быть этот функционал. Что собственно я и сделал, прочитав анонс новой функции. swerg, как вы считаете, сколько времени на это нужно? И считаете ли вы, что описание "не работает" в данном случае полностью описывает суть проблемы или нужно было запилить короткометражный фильм?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Было бы не плохо, научиться читать ветку, чтобы потом не задавать тупых вопросов про "список удаления". Глядишь, и конструктив и польза появятся. Впрочем, я уже повторяюсь.
swerg, рад, что вы наконец поняли смысл слова BUG в заголовке темы.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.09.2021 13:48:41
Цитата
Старатель написал: невозможно заказать сделки по этой бумаге через скрипт
Одной из вероятных причин может быть наличие ещё одного подписанта на эту бумагу (другой скрипт, тиковый график). Т.е., после ручного удаления бумаги из списка, чтобы повторно заказать тики скриптом, нужно сначала закрыть всех подписантов на эту бумагу. Может, ещё есть какие-то зависимости, не знаю...
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.09.2021 13:46:24
swerg, к для вас добавить нечего. Но судя по вашим сообщениям, вы заходите на форум, чтобы просто отметиться в последних активных ветках.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
swerg, без комментариев, я даже не представляю, какие мысли у вас сейчас роятся, учитывая ваш первый вопрос.
Надо делать так, как надо. А как не надо - делать не надо.
[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) в таблице транзакций не отображается транзакция снятия заявки.
Надо делать так, как надо. А как не надо - делать не надо.