Есть кейс: ведется торговля на счетах нескольких клиентов. Нужно быстро в три клика снять заявки по одному инструменту одного клиента, не затрагивая другие инструменты и клиентов. Daniil Pozdnyakov, вы отказываетесь регистрировать?
Надо делать так, как надо. А как не надо - делать не надо.
Как читать диаграмму "Глубина рынка"?, Не понимаю изменений суммарного объема на диаграмме.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
22.10.2021 19:08:03
Цитата
Alexey Ivannikov написал: прислать скриншот стакана и скриншот графика с настроенной глубиной рынка
А скриншот из сообщения #1 не открывается?
Цитата
Alexey Ivannikov написал: подробно объяснить, в чём именно по Вашему заключается ошибка?
В первом же сообщении, куда уж подробнее?
Цитата
Елисей Куликовский написал: Уровень 77 100 суммарного объема, как я понимаю, расти не должен, поскольку заявок по нему нет, но уровень вырастает.
Alexey Ivannikov, объясните, почему суммарный объём на уровне 77100 больше суммарного объёма на уровне 77099 ?
Надо делать так, как надо. А как не надо - делать не надо.
Вопрос к разработчикам: как в 8-м квике отключить выпадающее меню, при правом клике мишки на элементе таблицы LUA?
Если футболист не может попасть по мячу и всё время ноет "не получается", надо менять профессию, а не позориться.
Надо делать так, как надо. А как не надо - делать не надо.
Срочно: в версии 9.1.1.3 невозможно запустить Квик для двух разных брокеров версии
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
20.10.2021 13:05:21
Цитата
Roman Azarov написал: согласовывать между собой описание и пример (чтобы они относились к одной проблеме)
Описание:
Цитата
Ivan Smirnov написал: при этом почему-то активировалось окно экземпляра Квик другого брокера
Читай: активировалось окно другого экземпляра квик, не того, который запускали.
Цитата
Старатель написал: а вот это надо исправлять: если QUIK уже запущен должно активироваться то окно, которое соответствует запускаемому экзешнику, а не все подряд.
Откройте несколько квиков. Сверните все окна. После запустите info.exe любого из запущенных квиков. В идеале должно было бы развернуться только одно окно. А как на самом деле? Посчитайте сколько окон развернулось.
Что не так?
Надо делать так, как надо. А как не надо - делать не надо.
Срочно: в версии 9.1.1.3 невозможно запустить Квик для двух разных брокеров версии
Откройте несколько квиков. Сверните все окна. После запустите info.exe любого из запущенных квиков. В идеале должно было бы развернуться только одно окно. А как на самом деле? Посчитайте сколько окон развернулось.
Надо делать так, как надо. А как не надо - делать не надо.
Масштабирование графика скролом мыши
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
20.10.2021 01:16:08
Подглядел в другом терминале: с зажатым контролом скрол вниз уменьшает масштаб, скрол вверх - увеличивает. При этом, масштабирование происходит таким образом, что свеча, над которой находится курсор остаётся на месте.
Надо делать так, как надо. А как не надо - делать не надо.
Ввод заявки из таблицы котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
19.10.2021 19:02:35
Цитата
Daniil Pozdnyakov написал: в с документацией на терминал в документе "5 торговые операции клиента.pdf" это описано.
Приведите скрин из доки с этой фразой, а то я не нашёл:
Цитата
Daniil Pozdnyakov написал: снятие заявок из окна котировок происходит независимо от значения торгового счёта в панели торговли.
Надо делать так, как надо. А как не надо - делать не надо.
Срочно: в версии 9.1.1.3 невозможно запустить Квик для двух разных брокеров версии
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
19.10.2021 19:00:23
Цитата
Ivan Smirnov написал: при этом почему-то активировалось окно экземпляра Квик другого брокера
Roman Azarov, а вот это надо исправлять: если QUIK уже запущен должно активироваться то окно, которое соответствует запускаемому экзешнику, а не все подряд.
Надо делать так, как надо. А как не надо - делать не надо.
Ввод заявки из таблицы котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
13.10.2021 20:38:59
Цитата
Daniil Pozdnyakov написал: согласно документации на терминал, снятие заявок из окна котировок происходит независимо от значения торгового счёта в панели торговли.
Нет такого в документации.
Вы сами :
Цитата
Daniil Pozdnyakov написал: Торговый счёт в панели торговли, предназначен для функционала быстрой торговли (См. скриншот 1).
1. Исправить ошибку, описанную выше. Должны сниматься только заявки по выбранному торговому счёту и коду клиента (если указаны). Если код клиента не указан, то снимаются все заявки для указанного торгового счёта. Если не указан торговый счёт, то снимаются заявки по всем торговым счетам.
2. При открытии формы ввода заявки (стоп-заявки) из стакана (двойной клик, из контекстного меню, F2 и пр.) в поля "Торговый счет" и "Код клиента" должен автоматически подставляться тот торговый счет (и код клиента, если указан), которые выбраны в панели торговли.
Надо делать так, как надо. А как не надо - делать не надо.
Подтверждаю, есть такая проблема. Тоже на одной диаграмме было два инструмента и несколько индикаторов. После замены инструментов через контекстное меню "Заменить инструмент" на одном из графиков стали отображаться сделки с другого инструмента. Подробности, чё в какой последовательности делал не выпытывайте - не вспомню. Перезаказ данных не делал. Помогло создание диаграммы с нуля. Значит, с сервера идут котировки правильные, проблема локальная.
1. Исправить ошибку, описанную выше. Должны сниматься только заявки по выбранному торговому счёту.
2. При открытии формы ввода заявки (стоп-заявки) из стакана (двойной клик, из контекстного меню, F2 и пр.) в поля "Торговый счет" и "Код клиента" должен автоматически подставляться тот торговый счет (и код клиента, если указан), которые выбраны в панели торговли.
Надо делать так, как надо. А как не надо - делать не надо.
Объем свечей (график vs ТОС)
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
07.10.2021 18:55:22
Надо делать так, как надо. А как не надо - делать не надо.
Ввод заявки из таблицы котировок
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.10.2021 10:40:05
Открыто два стакана по одному инструменту. В каждом стакане включена панель торговли. В ней выбран конкретный торговый счёт. Они разные в каждом стакане. Как сделать, чтобы при открытии формы ввода заявки из стакана (двойной клик) в поле "Торговый счет" автоматически подставлялся тот торговый счет, который выбран в панели торговли?
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.10.2021 10:30:23
Цитата
Daniil Pozdnyakov написал: брокер вполне может дать доступ своим клиентам к данному функционалу
Цитата
Daniil Pozdnyakov написал: данный функционал не реализован для срочной секции МБ
Так надо было сначала разобраться, почему не работает на срочной секции, а не спихивать ответственность на брокера.
Надо делать так, как надо. А как не надо - делать не надо.
Как читать диаграмму "Глубина рынка"?, Не понимаю изменений суммарного объема на диаграмме.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
04.10.2021 22:12:10
Цитата
Alexey Ivannikov написал: проблема - просьба подробно её описать
По-русски же написали в первом сообщении:
Цитата
Елисей Куликовский написал: Уровень 77 100 суммарного объема, как я понимаю, расти не должен, поскольку заявок по нему нет, но уровень вырастает. На уровне 77 105 должен быть рост на 12 заявок, но его нет, но есть "ступенька" на следующем, 77 106, уровне. Далее, на уровне 77 111 заявок нет, но есть значительный рост, похоже, что от вышестоящего уровня 77 113.
Я не знаю, как ещё объяснить. Ещё одну картинку нарисовать? Вот так в квике: А должно быть так:
Надо делать так, как надо. А как не надо - делать не надо.
Как читать диаграмму "Глубина рынка"?, Не понимаю изменений суммарного объема на диаграмме.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
30.09.2021 14:43:28
Цитата
Старатель написал: Это ошибка. Суммарный объём должен расти на том уровне, где есть заявки, а не раньше.
Так, чё в итоге? Исправлять будут?
Надо делать так, как надо. А как не надо - делать не надо.
Ноли в значении тренда в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
30.09.2021 12:17:27
Цитата
Daniil Pozdnyakov написал: Описанная в данном инциденте ошибка была исправлена в версии 9.2 терминала QUIK
Какая именно ошибка исправлена?
Надо делать так, как надо. А как не надо - делать не надо.
Расширить список функций обратного вызова
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
24.09.2021 16:48:44
Цитата
TGB написал: использование основного потока для выполнения функций пользователя параллелизм добавляет только при выполнении C-функций;
На "параллелизм" я и .
Цитата
TGB написал: если у пользователя запущено несколько скриптов, то пока основной поток QUIK выполняется в одном из скриптов, он перестает обслуживать другие скрипты пользователя (в том числе, и созданные им таблицы QUIK)
Таблицы обслуживаются только в одном основном потоке. Доступ к данным - тоже только в одном потоке. Так что все ваши "несколько скриптов" дружно встают в очередь, как только им понадобится что-то вывести в таблицу. И включаются в общую конкурсную массу вмести с другими таблицами и графиками.
Цитата
TGB написал: перенос коротких задач пользователя в колбеки делает скрипт пользователя многопоточным, то есть, при этом пользователю нужно следить за тем, нет ли в его скрипте проблем синхронизации
В данной ветке, наоборот, обсуждение, переноса задачи, выполняемой по таймеру, в основной поток, чтобы не заморачиваться синхронизацией:
Цитата
_sk_ написал: удобно иметь возможность инициировать какой-то коллбэк из потока main, не надо думать про синхронизацию
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
23.09.2021 15:54:25
Цитата
Старатель написал: Замена заявок средствами ТС вообще доступна для срочной секции МБ и в частности для класса FORTS SPBFUT?
Daniil Pozdnyakov, так известно для каких классов функционал предназначен?
Надо делать так, как надо. А как не надо - делать не надо.
Кто сказал "нагружать"? Задачи на 0.1-2 мс, без фанатизма. Я даже не понимаю тех, кто в стремлении "разгрузить" основной поток перекидывает простейшие задачи (с временем выполнения менее 2 мс) из колбеков в main (что опять же не бесплатно в плане нагрузки), создавая километровые очереди и забывая об общей производительности.
Надо делать так, как надо. А как не надо - делать не надо.
Расширить список функций обратного вызова
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.09.2021 11:05:01
Цитата
Nikolay написал: попросить еще один поток для своих колбеков
Отдельный поток у вас уже есть - main. Зачем ещё один городить?
Цитата
Nikolay написал: чтобы не лезть в основной поток вовсе.
Дело в том, что вы так или иначе всё равно лезете в основной поток: GUI, хранилище данных.
Надо делать так, как надо. А как не надо - делать не надо.
Расширить список функций обратного вызова
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
21.09.2021 10:47:22
Цитата
Anton написал: Когда надо колбек выполнить в квиковском потоке, меняем выделение на вторую строку и вуаля, тут же отрабатывает колбек, чего мы и хотели.
Кста, main будет ждать завершения колбека, поэтому результат его работы сразу можно использовать в main.
Скрытый текст
Код
local run = true
local tid
function OnStop()
run = nil
local t = tid
tid = nil
if t then DestroyTable(t) end
end
local result
local function RunAsCallback()
SetSelectedRow(tid, 2)
local r = result
result = nil
return r
end
function main()
tid = AllocTable()
AddColumn(tid, 1, '1', true, QTABLE_INT_TYPE, 1)
CreateWindow(tid)
InsertRow(tid, -1)
InsertRow(tid, -1)
SetWindowPos(tid, 0, 0, -1000, -1000)
SetSelectedRow(tid, 1)
SetTableNotificationCallback(tid, function(t, m, w)
if QTABLE_SELCHANGED == m then
if w == 2 then
SetSelectedRow(tid, 1)
result = os.date()
end
end
end)
while run do
local date = RunAsCallback()
message(date)
sleep(1000)
end
OnStop()
end
Хотелось бы что-то типа такого "из коробки" без необходимости дёргать GUI.
Надо делать так, как надо. А как не надо - делать не надо.
SetTableNotificationCallback (tid, function (t, m, w, l)
if QTABLE_SELCHANGED == m then
if 2 == w then
SetSelectedRow (t, 1)
message ( '!' )
end
end
end)
Допустимо ли использование SetSelectedRow внутри колбека QTABLE_SELCHANGED, с учётом, что SetSelectedRow - синхронное сообщение?
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.09.2021 08:45:30
Цитата
Daniil Pozdnyakov написал: Концептуальная разница в том, что, выбирая "Заменить заявку" (CTRL+A), Вы сможете поменять абсолютно все поля заявки. То есть по сути, выбирая данный способ замены, Вы убираете одну заявку и выставляете новую. Но выбирая "Замена заявки средствами ТС", Вы сможете изменить в заявке только те поля, которые были найдены ТС в теле транзакции.
Это словоблудие, а не "концептуальная разница".
Концептуальная разница в том, что "Заменить заявку" (CTRL+A) использует две биржевые транзакции: Удаление заявки, Добавление заявки. "Замена заявки средствами ТС", судя по названию, использует одну биржевую заявку: Изменение заявок. Поправьте меня, если ошибаюсь.
Цитата
Старатель написал: Замена заявок средствами ТС вообще доступна для срочной секции МБ и в частности для класса FORTS SPBFUT?
Надо делать так, как надо. А как не надо - делать не надо.
Подсказка при наведении курсора на название колонки в QLUA-таблице
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
14.09.2021 23:27:13
Добрый день. Сделать возможным в QLUA-таблице создавать подсказки к заголовкам колонок, как в таблице «Клиентский портфель»
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
14.09.2021 14:25:04
Daniil Pozdnyakov, Замена заявок средствами ТС вообще доступна для срочной секции МБ и в частности для класса FORTS? Потому что в шлюзе SPECTRA Plaza-2 для замены заявки могут использоваться только два варианта: 1) DelOrder + AddOrder или 2) MoveOrder. Это та самая транзакция "Переставить заявки" в Квике. Но вы пишите, что
Цитата
Daniil Pozdnyakov написал: "Переставить заявки" и "замена заявки средствами ТС" отличаются по функционалу.
Так как на самом деле?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Старатель написал: Одной из вероятных причин может быть наличие ещё одного подписанта на эту бумагу (другой скрипт, тиковый график). Т.е., после ручного удаления бумаги из списка, чтобы повторно заказать тики скриптом, нужно сначала закрыть всех подписантов на эту бумагу.
Открыть тиковый график или запустить скрипт. Удалить бумагу из списка. Не закрывая график и не останавливая скрипт, запустить второй скрипт, заказывающий тики по той же бумаге. Убедиться, что бумага не добавляется. QUIK 9.2
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] CreateDataSource не заказывает обезличенные сделки
Самая правильная мысль в этой ветке, учитывая, что никому это не надо, даже самому разработчику. На самом деле, в большинстве случаев, баги находятся не специально, а в процессе работы. Но часто приходится повозиться, чтобы локализовать проблему.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Не отображается подсказка параметров свечи на графике вверху слева
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
13.09.2021 18:36:01
QUIK 9.2.1.4
Надо делать так, как надо. А как не надо - делать не надо.
Отладка QUIK 9.1
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
13.09.2021 18:12:39
Цитата
Daniil Pozdnyakov написал: Касательно быстрого доступа к транзакции. "Переставить заявки" и "замена заявки средствами ТС" отличаются по функционалу. Кардинальное отличие в том, что, используя "Переставить заявки", Вы изменяете две заявки в зависимости от значения, выбранного в поле "Режим". При замене заявки средствами ТС происходит поиск активной заявки, и после нахождения откроется окно ввода заявки, после редактирования которого старая заявка закрывается, и взамен неё выставляется новая с отредактированными полями.
1. В чём отличие от "Заменить заявку" (Ctrl+A) ? 2.
Цитата
Старатель написал: это какая-то другая транзакция, не доступная из "Выполнить транзакцию"?
Надо делать так, как надо. А как не надо - делать не надо.
Только не уверен, в какой именно лог пишется история в 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 не заказывает обезличенные сделки