У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.12.2020 13:34:25
В боевом квике v.8.11 для "KILL_ORDER" вопрос снимается. Для "MOVE_ORDERS" актуально.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.11
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.12.2020 13:13:04
Цитата
Anton написал: Так-то компилятор (одного файла) выглядит вот так и запускается в самом квике
Скомпилил библиотеку в 4к строк данным скриптом и в luac54.exe по ссылке . Результаты совпадают до байта.
Надо делать так, как надо. А как не надо - делать не надо.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.12.2020 13:07:51
И ещё: у снятой заявки в результате транзакции "MOVE_ORDERS" вообще не заполняется UID снявшего.
Цитата
Roman Azarov написал: Действительно наблюдаем подобное поведение.
Я не понял: наблюдаете или нет? Запустите предложенный скрипт на своём демо.
Надо делать так, как надо. А как не надо - делать не надо.
Метки
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.12.2020 09:16:20
Цитата
Andrey Bezrukov написал: Зарегистрировали пожелание на возврат возможности изменения прозрачности меток и их фона из окна настроек метки.
У программиста всегда будет работа
Надо делать так, как надо. А как не надо - делать не надо.
Индикатор объема Volume, Корректность индикатора под сомнением
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.12.2020 10:13:44
Цитата
Евгений написал: растет цена или падает на свече тоже видно на свечках
На свече цены. Это надо ещё виртуальную линию провести от объёма к свече цены, и попасть в правильную. При мелком масштабе - не очевидно.
Цитата
Евгений написал: сигнал индикатора объема в том и состоит чтобы видеть быстро скачки объемов
Скачки объёмов сразу видно, и цветовая индикация тут не помощник, имхо. Ну раскрасили вы объёмы по росту-падению. Тут объём вырос на два лота, тут - упал, какая разница?
Надо делать так, как надо. А как не надо - делать не надо.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.12.2020 10:04:28
swerg, canceled_uid - это UID снявшего заявку. Смотреть можно в скрипте или в визуальной таблице заявок.
Цитата
Roman Azarov написал: Уточните, пожалуйста, версию терминала, на котором была обнаружена проблема.
Версия любая, вплоть до 8.11
Надо делать так, как надо. А как не надо - делать не надо.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.12.2020 08:46:30
Цитата
Anton написал: Что будет, если в OnTransReply строку run = nil перенести после sendTransaction?
Можно эту строку вообще убрать, без разницы.
Цитата
Anton написал: Зе пойнт что уже во время sendTransaction в колбеке скрипт мертв и что там серверу на самом деле посылается - загадка.
KILL_ORDER посылается, раз заявка снята. А заполнение полей в заявке - это уже дело сервера.
Надо делать так, как надо. А как не надо - делать не надо.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.12.2020 08:25:40
Цитата
Anton написал: мейн завершается раньше sendTransaction из колбека
Как это должно повлиять на заполнение поля сервером?
Надо делать так, как надо. А как не надо - делать не надо.
Индикатор объема Volume, Корректность индикатора под сомнением
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.12.2020 08:24:15
Цитата
Евгений написал: При присвоении индикатору объема Volume цветовых настроек с учетом цвета для роста и падения учитывается рост и падение свечи
Вроде, норм, так и должно быть.
Цитата
Евгений написал: Должно быть так: Цвет столбца гистограммы меняется в зависимости от предыдущего объема
Больше, меньше и так видно
Надо делать так, как надо. А как не надо - делать не надо.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
20.12.2020 21:07:17
Пример
Скрытый текст
Код
function main()
if sendTransaction{
TRANS_ID = tostring(trans_id),
ACTION = "NEW_ORDER",
ACCOUNT = account,
CLIENT_CODE = client,
CLASSCODE = class_code,
SECCODE = sec_code,
OPERATION = "B",
TYPE = "L",
PRICE = price,
QUANTITY = "1"
} == "" then run = true end
while run do sleep(1) end
end
function OnTransReply(trans_reply)
if trans_reply.trans_id ~= trans_id then return end
run = nil
sendTransaction{
TRANS_ID = tostring(trans_id + 1),
ACTION = "KILL_ORDER",
CLASSCODE = class_code,
ORDER_KEY = tostring(trans_reply.order_num)
}
end
function OnStop()
run = nil
end
Надо делать так, как надо. А как не надо - делать не надо.
Как определить абсолютный путь к исполняемому файлу lua?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
18.12.2020 14:17:09
Цитата
TGB написал: вариант с локальным объявлением gcrunner
Так __gc вызывается до OnInit
Скрытый текст
Код
local run = true
local tid = nil
local gcrunner = {}
setmetatable(gcrunner, { __gc = function()
if tid then DestroyTable(tid) end
message('__gc', 2)
end })
function OnInit(script_path)
file = io.open(script_path .. ".log", "w")
file:write("OnInit\n")
message("OnInit")
end
function main()
message("main")
tid = AllocTable()
AddColumn(tid, 1, '1', true, QTABLE_INT_TYPE, 1)
CreateWindow(tid)
collectgarbage()
while run do sleep(300) end
end
function OnStop()
run = nil
end
Убираем какую-нибудь строку, например
Код
file:write("OnInit\n")
и срабатывает при вызове collectgarbage. Как-то так.
Цитата
TGB написал: вариант с локальным объявлением gcrunner не работает в QLua 5.3.5 для финализации скрипта.
Без collectgarbage сработает и для финализации.
Надо делать так, как надо. А как не надо - делать не надо.
Как определить абсолютный путь к исполняемому файлу lua?
написал: Цитата TGB написал:-- collectgarbage () --- Если эту строку раскомментировать и при этом local gcrunner = {}, то при запуске collectgarbage () сработает __gc. Вроде, не срабатывает.
Здравствуйте! При этом необходимо, чтобы gcrunner был объявлен локальным: local gcrunner = {}
__gc срабатывает до вызова collectgarbage, возможно при автоматической сборке.
Надо делать так, как надо. А как не надо - делать не надо.
Как определить абсолютный путь к исполняемому файлу lua?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
18.12.2020 09:58:27
Цитата
TGB написал: -- collectgarbage () --- Если эту строку раскомментировать и при этом local gcrunner = {}, то при запуске collectgarbage () сработает __gc.
Вроде, не срабатывает.
Надо делать так, как надо. А как не надо - делать не надо.
Не работают горячие клавиши
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.12.2020 19:48:21
При активном окне "Доступные скрипты" не работают никакие горячие клавиши.
Надо делать так, как надо. А как не надо - делать не надо.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.11
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.12.2020 18:58:45
Цитата
Евгений написал: Key removed from a table during traversal may not be accepted by 'next'.
Очень похоже:
Цитата
TGB написал: при существующей архитектуре обработки событий в QLua, уборка мусора в нем должна быть потокобезопасной
Наверное, придётся согласиться ))
Надо делать так, как надо. А как не надо - делать не надо.
На демо сервере junior quik не передается таблица firms при смене пользователя
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.12.2020 16:31:39
Цитата
Nikolay написал: По какому признаку мне понять, что пока рано идти и смотреть позицию в таблице futures_client_holding?
Цитата
Andrey Bezrukov написал: можем зарегистрировать пожелание на индикацию в скрипте о том, что необходимые для отображения таблиц данные были получены с сервера после очистки
Может, будет полезно добавить трансляцию таблицы sys_events со шлюза?
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
Highlight с дробным timeout, не работает, но возвращает true
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.12.2020 12:12:14
Было бы неплохо в руководстве указывать тип данных, как для передаваемых параметров, так и возвращаемых, не number, а dooble или integer, раз уж теперь это важно.
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.11
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
15.12.2020 11:14:26
Цитата
Александр написал: Как понять в каком окружении запущен скрипт?
_VERSION
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.11
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
15.12.2020 08:49:46
После этой ошибки при закрытии QUIK (крестиком) с остановленными скриптами - падение с дампом
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 8.11
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
15.12.2020 08:46:31
Lua 5.3.5 в QUIK 8.11 в падает с ошибкой
Цитата
Critical error ACCESS_VIOLATION in script
Про Lua 5.4.1 пока сказать ничего могу.
Надо делать так, как надо. А как не надо - делать не надо.
Надо делать так, как надо. А как не надо - делать не надо.
Зависание QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
14.12.2020 19:13:55
Отправлял три дампа. Ответили:
Цитата
есть синхронизационная ошибка возникающая в момент остановки скрипта. Мы исправим её в очередном обновлении ПО.
Цитата
Речь идет об аварийной остановке скрипта из-за ошибки, сообщение о которой Вы не получаете по причине зависания терминала.
Думаю, это ошибки вида: , Об устранении самой проблемы, из-за которой возникают ошибки в рабочих скриптах, ни слова.
А тем временем поймал ещё одно зависание, уже в колбеке. Тестовый скрипт для воспроизведения:
Скрытый текст
Код
local run = true
local z = {0, 1}
local table_ssort = table.ssort
function c(func)
table_ssort(z, function()
func()
return true
end)
end
local string_format = string.format
local function f()
string_format('%.1f / %.f', 100 / 1000, 10)
end
function OnQuote(class_code, sec_code)
for i = 1, 50 do
c(f)
end
end
function OnParam(class_code, sec_code)
for i = 1, 50 do
c(f)
end
end
function main()
local class_code = 'QJSIM'
local s = {}
local n = 0
for sec_code in string.gmatch(getClassSecurities(class_code), '([^,]+)') do
if Subscribe_Level_II_Quotes(class_code, sec_code) == true then
n = n + 1
s[n] = sec_code
end
end
while run do
sleep(1)
end
for i = 1, n do
Unsubscribe_Level_II_Quotes(class_code, s[i])
end
end
function OnStop()
run = nil
end
Запустил 4 скрипта. Через несколько часов квик повесился.
Надо делать так, как надо. А как не надо - делать не надо.
Отключение горизонтальных полос прокруток на графиках цен
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
14.12.2020 12:08:15
Цитата
Andrey Bezrukov написал: Мы постараемся рассмотреть его и сообщить Вам результаты анализа.
Рассмотреть пока не удалось?
Надо делать так, как надо. А как не надо - делать не надо.
Отключение горизонтальных полос прокруток на графиках цен
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.12.2020 19:36:30
+1
Надо делать так, как надо. А как не надо - делать не надо.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
local run = true
local tid = nil
local file
local gcrunner = (function()
local t = {}
setmetatable(t, { __gc = function()
local t = tid
tid = nil
if t then DestroyTable(t) end
file:write("__gc\n")
file:close()
end })
return t
end)()
function OnInit(script_path)
file = io.open(script_path .. ".log", "w")
file:write("OnInit\n")
end
function main()
file:write("main\n")
tid = AllocTable()
AddColumn(tid, 1, '1', true, QTABLE_INT_TYPE, 1)
CreateWindow(tid)
while run do sleep(300) end
file:write("main stopped\n")
end
function OnStop()
run = nil
file:write("OnStop\n")
end
В логе:
Цитата
OnInit main OnStop main stopped
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Сортировка в таблицах
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.12.2020 12:55:55
Цитата
Roman Azarov написал: Значки не перепутаны, а сделаны как задумано.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Сортировка в таблицах
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.12.2020 11:51:29
Из проводника Windows:
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Сортировка в таблицах
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.12.2020 11:41:32
Треугольник, указывающий вверх, показывает восходящий порядок. Он соответствует порядку с самым малым элементом (вершиной треугольника) вверху списка и самым большим (основанием треугольника) внизу.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Сортировка в таблицах
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.12.2020 11:11:54
Да мало ли, где что написано. ( тоже писали... как оказалось неправду) Вы сами не видите, что значки перепутаны?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Сортировка в таблицах
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
02.12.2020 10:43:32
Вроде как значок сортировки показывает увеличение, а по факту - убывание.
Надо делать так, как надо. А как не надо - делать не надо.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
30.11.2020 10:27:34
Цитата
Roman Azarov написал: Обеспечить хорошее качество каналов связи с учетом большого количества трейдеров - это задача Вашего брокера
Вы (ваши коллеги) пишите, что у вас нет возможности подключения к реальным торговым серверам. Вопрос: как вы осуществляете нагрузочные тестирования в боевых условиях и проводите ли их вообще? Имеете ли вы возможность дать брокеру рекомендации по организации серверного оборудования в зависимости от количества клиентов?
Надо делать так, как надо. А как не надо - делать не надо.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
Надо делать так, как надо. А как не надо - делать не надо.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.11.2020 13:14:40
Цитата
Александр Кашников написал: Берем таблицу "securities" и сохраняем в файл, а там - дохлые инструменты (опционы, фьючерсы) аж с 2018г. о какой производительности речь? Вот откуда берутся 17к + инструментов - из них 70% просто не существуют.
В таблицу securities только добавляются новые инструменты. Старые не удаляются. Чтобы избавиться от дохлых инструментов, удалите файл sec.dat. После подключения к серверу у вас будут только актуальные инструменты.
Надо делать так, как надо. А как не надо - делать не надо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
написал: 16. Как привязать таблицу к конкретной вкладке?
Есть возможность контекстное меню убить в QLua таблицах?
Надо делать так, как надо. А как не надо - делать не надо.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
25.11.2020 13:29:21
Цитата
Roman Azarov написал: с сервера QUIK будут заказаны все сделки по всем инструментам, на получение информации по которым у терминала (пользователя) есть права независимо от того, какие фильтры настроены в таблице обезличенных сделок или по какому конкретному инструменту открыт тиковый график.
Это очень странно, то, что вы пишите. Потому что я наблюдаю значительную разницу входящего трафика при использовании фильтров и при заказе сделок по всем инструментам всех классов. Могли бы вы проверить актуальность информации.
Надо делать так, как надо. А как не надо - делать не надо.
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.11.2020 12:29:50
В таком случае, прошу компетентных сотрудников ответить по теме или аргументированно ответить, почему данный функционал не может быть реализован:
Цитата
Anton написал: флажок в датасорце, "ответ сервера получен". В сухом остатке что тогда от арки требуется: 1) убедиться, что сервер всегда что-нибудь отвечает на подписку, есть ли данные или нет; 2) на клиенте по получении первого ответа поставить флажок в датасорце.
Цитата
Старатель написал: Вообще такого флага не хватает во многих таблицах терминала.
например, stop_orders, money_limits, depo_limits
Надо делать так, как надо. А как не надо - делать не надо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.11.2020 10:39:08
Цитата
Alexey Ivannikov написал: Но за наводку благодарим, заметите ещё - можете кидать в личку, скажем только спасибо. Цитата в ответе - не есть реклама, хотя конечно правильно было бы распознать спам и отправить пользователя в вечный бан (что уже сделано, ещё раз спасибо).
Ну, знаете, если вас надо тыкать носом в каждое сообщение с неприкрытой рекламой, тогда чем вы занимаетесь? Что сложного распознать сообщение, не относящееся к теме QUIK и вообще фондового рынка?
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.11.2020 09:39:03
Цитата
Заказ полного набора всех сделок происходит все зависимости от установленных в таблице обезличенных сделок фильтров или открытого тикового графика по конкретному инструменту.
Прошу техподдержку прокомментировать, что сие значит.
Надо делать так, как надо. А как не надо - делать не надо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.11.2020 11:56:48
Цитата
Alexey Ivannikov написал: Приведите ссылки на не исправленные проблемы пятилетней и более давности (как Вы пишите) - и я обещаю лично заняться этими вопросами.
Тикет обсуждаемой проблемы с метками от меня CQ01939238 от 27.12.16
Надо делать так, как надо. А как не надо - делать не надо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.11.2020 11:53:20
Цитата
Alexey Ivannikov написал: прямо нарушают правила форума, рекламируя на нашем ресурсе свои сайты. То, что мы пока смотрим на это сквозь пальцы, в том числе и означает уровень нашего хорошего отношения к Вам лично и к другим подобным участникам.
Чаще всего это раздолбайтсво и отсутствие модератора. У вас половина аккаунтов фейковые
Скрытый текст
А иногда и ваши коллеги рекламируют другие ресурсы
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.11.2020 15:05:24
Цитата
Anton написал: Тогда остается что, а остается ничего, сам факт приезда (первого) пакета на клиент только. Даже и функции много, флажок в датасорце, "ответ сервера получен". В сухом остатке что тогда от арки требуется: 1) убедиться, что сервер всегда что-нибудь отвечает на подписку, есть ли данные или нет; 2) на клиенте по получении первого ответа поставить флажок в датасорце.
Проверил. При запросе данных (открытием графика али через скрипт) сервер в любом случае отвечает клиенту, даже если свечей нет.
Можно ли тут обратиться к компетентным сотрудникам/разработчикам минуя первую линию защиты поддержки?
Надо делать так, как надо. А как не надо - делать не надо.
Остановить скрипт при закрытии терминала
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.11.2020 14:29:46
Можно ещё в первой строке написать:
Код
if os.clock() < 5 then return end
Надо делать так, как надо. А как не надо - делать не надо.
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
05.11.2020 13:52:33
Цитата
Kolossi написал: Второй год пытаюсь тут доказать разработчикам, что это баг.
Лет шесть назад ещё было признано
Цитата
Сергей Горохов, ARQA Technologies пишет: это неправильное поведение программы, так не должно быть. Мы изучим этот вопрос и ответим позднее.
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
30.10.2020 20:21:46
Надо делать так, как надо. А как не надо - делать не надо.