Случайно вывел картинку в метку в формате png и она вывелась. Что-то изменилось в последних версиях? Раннее, да и сейчас руками на график, только bmp.
Черный квадрат
Пользователь
Сообщений: Регистрация: 27.01.2017
23.07.2025 13:53:49
Вот такую картинку получил при отладке индикатора с интенсивной записью в лог
Автоматическое выключение
Пользователь
Сообщений: Регистрация: 27.01.2017
22.07.2025 08:59:12
Предложите способ корректного выключения терминала по времени. Возникла задача останавливать все в определенное время. Но способы через скрипты Power-Shell, CMD использующие Stop-Process, taskkill - приводит к некорректному завершению терминала, без записи состояния. Нужен способ, чтобы терминал выполнил все действия при завершении.
Индекс запсииси в таблице ордеров
Пользователь
Сообщений: Регистрация: 27.01.2017
03.07.2025 13:28:35
В последнее время один из брокеров стабильно стал разрывать соединение в середине торговой сессии и после восстановления соединения очищает таблицы, вызывает колбек OnCleanUp. Можно было бы сказать какого и зачем все чистить, но с этим уже бороться бессмысленно.
Более важно другое, после восстановления соединения в таблице ордеров наблюдаются совсем другие индексы записей. Был у записи индекс 15, а стал 20. Хотя визуально таблица (без фильтров и сортировок ) представлена именно как была ранее, и там запись до сих пор 15.
Ранее такого поведения не наблюдалось. Сейчас приходится вводить дополнительные методы для восстановления соответствия записей и запомненных данных.
Индикатор с большим числом линий.
Пользователь
Сообщений: Регистрация: 27.01.2017
25.06.2025 11:50:53
В последних версиях терминала если добавить индикатор где число линий, например, больше 50, то терминал просто "умирает". Этот же индикатор в 7-ой версии вполне себе работал, даже не на одном графике.
Вот простейший пример, ничего, по сути, не делающий, а просто выводит линии на график, демонстрирующий проблему.
Код
local lines = 100
Settings = {}
Settings.Name = "*test_lines"
Settings.price = 66960
Settings.delta = 1.0
function Init()
Settings.line = {}
for i = 1, lines do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(185, 185, 185), Type = TYPET_BAR, Width = 2}
end
return lines
end
function OnChangeSettings()
Init()
end
function OnCalculate(index)
if index < Size() then return end
for i = 1, lines do
SetRangeValue(i, index-100, index-1, Settings.price-i*Settings.delta)
end
return
end
Чудеса на виражах
Пользователь
Сообщений: Регистрация: 27.01.2017
24.01.2025 19:04:25
Брокер Сбербанк. Действие 24.01.2025
Есть два брокерских счёта у него. Два терминала Квик. После очередного обрыва связи, которые на этой неделе почти каждый день, ордера из одного брокерского счёта стали видны в таблице Квика другого брокерского счёта. Буквально - есть записи с несуществующим кодом клиента для этого счёта, терминала. Что ещё забавно, если снять ордер в этом терминале (хотя этот ордер не принадлежит этому брокерскому счёту), то он также снимается и в другом. Вот такая загогулина. Если бы не было печально, то, наверно, можно было бы посмеяться. Возникает вопрос - как серверная часть терминала допускает такое? А если бы стали видны ордера совсем другого клиента?
Прикладываю картинку. Один терминал и окно другого терминала. Видны ордера из первого во втором. Если это не критическая уязвимость связки терминал-сервер, то я не знаю что это. И просьба не говорить о том, что брокер может что-то настроить у себя на серверной части. Такого просто не может быть, ни при каких обстоятельствах.
limit_kind в таблице depo_limit
Пользователь
Сообщений: Регистрация: 27.01.2017
16.01.2025 11:04:52
Сегодня на тестовом контуре в таблице depo_limit получил такое:
limit_kind = 20250116
Это что? Ясно что дата. Но с какой такой... Я не слышал о новом режиме торгов в виде даты. Есть Т0, Т+1, Т+2, TOD, TOM и новое Т365, отображаемое в терминале Тх.
Ответ транзакции
Пользователь
Сообщений: Регистрация: 27.01.2017
18.09.2024 13:29:18
Тестовый контур Quik Junior 11.3.2.2
Ответ транзакции: [INFO 2024-09-18 13:13:09] : OnTransReply all trans count: 8 | sec_code SiZ4 result_msg: Ответ из торговой системы не получен, статус исполнения транзакции неизвестен. За уточнением просьба обратиться к Вашему брокеру. status: 4 trans_id: 50553350 order_num: 0 price: 80013 qty: nil account SPBFUT000i4 client_code SPBFUT000i4 firmid nil brokerref SPBFUT000i4//NTR01
Не то чтобы нужен ответ, но просто хотелось бы понять причину. Это что-то новое: запрос сделан, ответ - кто же знает что там случилось.
Необъяснимоле чудо
Пользователь
Сообщений: Регистрация: 27.01.2017
11.07.2024 18:15:36
Версия 11.3.1.2, демо-сервер ARQA
Вот такая замечательная картина. Ордера на покупку.
Данные параметров BID, OFFER
Пользователь
Сообщений: Регистрация: 27.01.2017
01.12.2023 12:21:43
Есть два параметра таблицы текущих торгов - BID, OFFER. Вопрос разработчикам - правильно ли я понимаю, что при отсутствии с одной из сторон данных (планка) будет возвращен 0 в качестве значения? Либо result будет "0", сообщающий, что данные не получены? Если просто 0, то как тогда это соотносится с возможностью нулевых цен для части инструментов. Не хотелось бы опрашивать стакан для такой простой задачи
TrustManager
Пользователь
Сообщений: Регистрация: 27.01.2017
11.09.2023 13:48:07
Если ли доступ к таблицам, создаваемым модулем TrustManager из qlua? При подключении модуля появляется тип транзакции NEW_GROUP_ORDER, судя по экспорту. Поэтому и возникает вопрос - как сформировать команду, читать данные и т.д.
Чтение данных метки, Зависание терминала
Пользователь
Сообщений: Регистрация: 27.01.2017
11.06.2022 16:10:50
Версия 9.5
Скрипт простой: ставим метку и потом читаем данные. После установки метки берем и перетаскиваем ее на графике, желательно быстро. Терминал зависает. На таком простом скрипте это происходит не сразу, поэтому можно просто двигать метку до выявления эффекта. Частично помогает избежать проблемы увеличение sleep до 500.
На версиях 8.* - сколько не двигал не получается эффект зависания, даже на sleep 55.
На самом деле - серьезная проблема, т.к. считывание данных с меток - это единственный способ взаимодействия пользователя с скриптом через график.
Ссылка на запись эффекта:
Тестовый скрипт:
Код
local sleep = _G.sleep
local isRun = true
local AddLabel = _G.AddLabel
local GetLabelParams = _G.GetLabelParams
function _G.OnStop()
isRun = false
end
function _G.main()
local tag = 'virt_test'
local label_params = {}
label_params.YVALUE = 119.5
label_params.TEXT = 'TEST |||||||||||||||||||||||||||||||||||||||||||||'
label_params.HINT = 'Еще текст'
label_params.DATE = 20220611
label_params.TIME = 152000
label_params.FONT_FACE_NAME = 'Arial'
label_params.ALIGNMENT = 'RIGHT'
label_params.FONT_HEIGHT = 10
label_params.TRANSPARENT_BACKGROUND = 1
local l_id = AddLabel(tag, label_params)
sleep(1000)
while isRun do
label_params = GetLabelParams(tag, l_id)
if label_params then
_G.message(tostring(label_params.yvalue))
end
sleep(100)
end
end
Время сервера, время последней сделки., Разное время передаваемое с сервера.
Пользователь
Сообщений: Регистрация: 27.01.2017
13.04.2022 12:40:14
Прямо сейчас наблюдаю такую картину. Время сервера отстает на минуту от текущего времени (оно синхронизировано и корректно). При этом время последней сделки на минуту впереди времени сервера и близко к правильному текущему времени, т.е. тоже опережает время сервера.
Я могу понять, что это проблема брокера (Сбербанк), но с какой стати время сделки в будущем относительно времени сервера брокера и времени пакета? Т.е. я понимаю, что время сделки просто транслирует биржа, но серверная часть должна же не просто транслировать, но и как-то контролировать, что она транслирует.
Демо счет.
Пользователь
Сообщений: Регистрация: 27.01.2017
03.11.2021 10:46:57
Добрый день.
Не удается второй день подключится к демо серверу SERVER: Информационно-торговая система ARQA, IPCOMMENT: JUNIOR 1
Ни в 8-ой, ни в 9-ой версии терминала. Пароль принимает нормально. Пишет, что до истечения пароля осталось столько-то, далее: Соединение установить не удалось.
Версия 9.* isDarkTheme в индикаторах
Пользователь
Сообщений: Регистрация: 27.01.2017
02.10.2021 18:26:06
В описании доступных функций глобального контекста индикатора для версии терминала 9.* есть isDarkTheme. Однако, если присутствует ее вызов в теле индикатора, то он не показывается в списке выбора. Если же убрать вызов, то индикатор становится доступен для добавления на график.
В 8-ой версии работает корректно.
На демо счете прошла кросс заявка.
Пользователь
Сообщений: Регистрация: 27.01.2017
26.03.2021 19:36:16
Демо счет, Quik 8.13.0.106
Установлен лимитный ордер. Совершена ручная сделка, исполнившая этот ордер. В таблице сделок номер сделки задублирован.
Странная дата сервера
Пользователь
Сообщений: Регистрация: 27.01.2017
15.10.2020 19:09:21
Что это за формат времени в поле Дата торгов? Как, спрашивается, понять, что здесь что?
getFuturesHolding
Пользователь
Сообщений: Регистрация: 27.01.2017
30.07.2020 11:47:22
На версии 8.х столкнулся на реальных счетах разных брокеров, что функции получения текущих позиций как getFuturesHolding, getDepoEx работают нестабильно. Чаще всего это происходит с getFuturesHolding на едином счете. В течении сессии часто (обычно перед клирингом) функция не возвращает ничего. При этом если перебрать строки прямым итератором, то все нормально находится.
Приходится отказываться от использования функций. Но перебор - это существенный расход памяти и просто медленней.
Утечка памяти
Пользователь
Сообщений: Регистрация: 27.01.2017
06.07.2020 18:54:48
Недавно началось очень странное поведение системы при работе Квика. Версия 8.3.1.38. При этом он был установлен еще в мае.
Памяти на рабочем месте 32 гб. Свободной полно. Но явно идет утечка памяти. Виртуальная память выделена > 80 ГБ.
То ли это Windows 10 так балуется, то ли у Квика лыжи не едут... Но, еще раз, полтора месяца с момента обновления, не было проблем.
Параметр STARTTIME, ENDTIME, Вечерняя сессия на фондовой секции
Пользователь
Сообщений: Регистрация: 27.01.2017
23.06.2020 19:27:38
Начались торги в вечернюю сессию на фондовой секции. Я уже задавал вопрос про трансляцию времени сессии, но вот сейчас она идет и можно посмотреть на реальный поток данных.
Что мы видим:
Вот утро. Начало торгов. По фьючерсу все ожидаемо и понятно. Есть и времена и статус. По акции я вижу только статус, а время заполнилось только утренним аукционом.
Вот данные пор акции внутри дня. Время утреннего акциона. Это как понимать? Уже сессия к концу идет, а время старое. [INFO 2020-06-23 17:33:32] : SBER TRADINGSTATUS {param_image = "открыта", param_type = "4", param_value = "1.000000", result = "1"} [INFO 2020-06-23 17:33:32] : SBER STARTTIME {param_image = "9:50:00", param_type = "5", param_value = "95000.000000", result = "1"} [INFO 2020-06-23 17:33:32] : SBER ENDTIME {param_image = "9:59:34", param_type = "5", param_value = "95934.000000", result = "1"}
Вечер. По фьючерсам все адекватно, а вот по акциям:
Времена аукциона я еще могу понять. А вот что это такое при старте вечерней сессии уже с трудом. И опять - времена то где? Почему нельзя заполнить времена прямо при подключению к серверу, как это делается для фьючерсов и менять их, если они меняются внутри дня? Поля же есть.
Часть акций торгуется, часть нет. А информации о времени сессии нет. Раньше можно было хотя бы определить константы, когда времена были фиксированными (хоть это было и спорное решение), но сейчас то как.
Вечерняя сессия на фондовом рынке., Вечерняя сессия на фондовом рынке.
Пользователь
Сообщений: Регистрация: 27.01.2017
21.05.2020 19:30:57
В связи с началом торгов в вечернюю сессию на фондовом рынке, возникает вопрос: какие параметры будут транслироваться для списка бумаг допущенных к торгам? В частности: TRADINGSTSTUS, ENDTIME, EVNSTARTTIME, EVNENDTIME. Будут ли числовые значения статуса отличаться меджду основной сессией и вечерней?
Недельные опционы на демо счете
Пользователь
Сообщений: Регистрация: 27.01.2017
26.03.2020 19:45:58
Добрый день.
Не могу найти в демо версии недельные опционы. Поток данных на демо контуре по ним вообще есть? Или это я не могу найти.
strict lua
Пользователь
Сообщений: Регистрация: 27.01.2017
01.04.2019 14:20:30
Добрый день.
Если qlua это lua 5.1, то разве не должна быть поддержка библиотеки strict?
Динамическое количество линий индикатора
Пользователь
Сообщений: Регистрация: 27.01.2017
18.10.2018 19:12:22
Добрый день.
Т.к. в индикаторе необходимо при инициализации указывать количество возвращаемых линий, то написана такая конструкция в функции init:
Код
for i = 1, lines do
Settings.line[i] = {}
Settings.line[i] = {Color = RGB(185, 185, 185), Type = TYPE_LINE, Width = 2}
end
Алгоритм вводит линии по мере наполнения массива линий. Сначала их может быть 20, потом уже 100 и т.д. Для оптимизации линии выводятся только с не пустым значением.
Все бы хорошо, но заметил такую особенность (версия 7.19), если не вывести хотя бы один раз все линиий с не пустым значением, то потом они не отображаются на графике, хотя функция GetValue возвращает значение. Я долго не мог понять почему у меня линии не показываются с течением времени, а если заново инициализировать индикатор (через параметры графика), то все на месте.
Пришлось сделать такой странный костыль:
Код
if index == 1 then
tmpOutlines = {}
for i=1,lines do --необходимо вывести все линии хотя бы один раз, чтобы потом они отображались без проблем
tmpOutlines[i] = O(Size())
end
return unpack(tmpOutlines)
end
if index == 2 then
for i=1,lines do
SetValue(1,i,nil)
end
return nil
end
Индекс бара
Пользователь
Сообщений: Регистрация: 27.01.2017
14.10.2018 14:42:58
Добрый день.
Есть пожелание по вводу индекса бара (свечи) в контекстной подсказке при наведении на бар. Сейчас выводится только дата, время и торговые параметры бара, но при отладе скриптов, да и просто для удобства задания диапазона, хотелось бы видеть индекс без костылей в виде доп. индикаторов.
Высота метки в шагах цены
Пользователь
Сообщений: Регистрация: 27.01.2017
13.08.2018 16:19:00
Добрый день.
Возникла проблема. Выводятся текстовые метки друг над другом. Задется высота шрифта 10. А как перевести эту высоту в шаг цены? Сейчас приходится подбирать дельту цены, чтобы метки не накладывались.
Собственно очень не хватает процедур пересчета абсолютных координат окна (идеально еще бы иметь событие - "изменение масштаба") в ценовую и временную шкалы. Сразу бы решились многие проблемы. Сейчас просто невозможно рассчитать линию под определенным углом, или, наоборот, рассчитать угол линии.
Установка данных индикатора из скрипта
Пользователь
Сообщений: Регистрация: 27.01.2017
29.03.2018 21:37:58
Добрый день.
Получение данных индикатора из скрипта возможно. А обратно?
У меня скрипт считает даные, хранит в таблице. Я хотел бы вывести их как значения индикатора. Т.е. сам индикатор будет пустой, возвращающий nil. А вот скриптом хотелось поставить значения, по примеру функции SetValue.
Обращение к внешним сервисам
Пользователь
Сообщений: Регистрация: 27.01.2017
21.02.2018 15:14:58
Добрый день.
Кто-нибудь пробовал обращаться к внешним сервисам типа Twitter из qlua? Есть у меня желание добавить себе в скрипт чтение ленты по ключевым словам. Я нашел библиотеки Lua для подключения к тому же Twitter, вопрос только - заработет ли из Квика? Может проще написать того же бота на питоне.
Возвращаемые данные для отрисовки индикатора
Пользователь
Сообщений: Регистрация: 27.01.2017
07.08.2017 15:51:38
Добрый день.
Пишется индикатор с динамическим количеством линий. Можно ли вместо данных типа ruturn out1, out2, out3 вернуть массив {}. Соответственно, данные линий - это индексные данные массива.
Уж больно некрасиво приходится делать большое количество переменных с запасом.
Есть еще вариант динамического описания кода. Есть ли в интерпретаторе qlua execute("Текст выполняемого кода")?
Вилы Эндрюса, уровни Фибоначчи, веер Ганна.
Пользователь
Сообщений: Регистрация: 27.01.2017
23.03.2017 17:29:35
Добрый день.
Очень бы хотелось иметь достаточной простой интрумент как вилы Эндрюса. Также очень хочется существующие уровни Фибоначчи строить не только горизонтально, но и под любым углом. Тем самым получая наклонные уровни. А уж для полноты картины - веер Ганна был бы очень кстати.