Старатель (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Какой формат записи ячеек с типом QTABLE_DATETIME_TYPE, чтобы работали сортировка и фильтры?
 
Сабж
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] Пропадает текст в таблицах
 
При задании цвета для всей таблицы, если один из цветов указан QTABLE_DEFAULT_COLOR, текст во всех ячейках пропадает.
Примеры:
Код
SetColor(id, QTABLE_NO_INDEX, QTABLE_NO_INDEX, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetColor(id, QTABLE_NO_INDEX, QTABLE_NO_INDEX, QTABLE_DEFAULT_COLOR, 0, 0, 0)
SetColor(id, QTABLE_NO_INDEX, QTABLE_NO_INDEX, 0xFFFFFF, 0, 0xFFFFFF, QTABLE_DEFAULT_COLOR)
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Гарантийное обеспечение в окне ввода заявки, Окно ввода заявок , Объем ГО
 
У кого-нибудь показывает Объем ГО в окне ввода заявки календарных спрэдов?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
CreateDataSource возвращает неверные данные
 
Добрый день.

Иногда CreateDataSource возвращает неверные данные.
Демонстрационный скрипт:
Скрытый текст

Графики должны быть закрыты. Можно запустить несколько скриптов с разными инструментами.
Через некоторое время будет сообщение вида:
Скрытый текст

Возможно, большое количество свечей повышает вероятность ошибки. Но это не точно.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] Криво работает поиск, Найти далее [F3]
 
QUIK 8.12.0.41
Если в таблице несколько строк, удовлетворяющих параметрам поиска, то по F3 будут показываться значения только в пределах одной строки.
В 8.1 поиск осуществлялся по всем строкам таблицы.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
 
Пример
Скрытый текст
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] Сортировка в таблицах
 

Вроде как значок сортировки показывает увеличение, а по факту - убывание.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
FAQ: Оптимизация производительности клиентского места QUIK, Обсуждение
 
https://forum.quik.ru/forum1/topic1539/
Цитата
Заказ полного набора всех сделок происходит все зависимости от установленных в таблице обезличенных сделок фильтров или открытого тикового графика по конкретному инструменту.
Прошу техподдержку прокомментировать, что сие значит.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Доступные скрипты, Некорректное поведение в режиме "Показывать на всех вкладках"
 
Видео
Описание:
Две вкладки, на каждой открыто по окну, в данном случае ТТТ, а также окно "Доступные скрипты", которое перекрывается первым окном. "Доступные скрипты" делаю "Показывать на всех вкладках".
Когда активирую окно "Доступные скрипты" на одной вкладке, то на другой положение (перекрывание) окон сохраняется. Но когда запускаю Lua скрипт с созданием окна, этот порядок нарушается.
На видео окна на Вкладке 1 расположил в следующем порядке (сверху вниз): Lua-окно, ТТТ, Доступные скрипты.
Далее переключился на вкладку 2 и активировал окно "Доступные скрипты". Возвращаюсь на вкладку 1, порядок поменялся: Lua-окно, Доступные скрипты, ТТТ.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Highlight с дробным timeout, не работает, но возвращает true
 
QUIK 8.9
Если задано дробное значение timeout, то Highlight не работает, но возвращает true
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Снятие/перемещение заявок в стакане
 
Добрый день.

1. Перемещать мышкой заявку в стакане транзакцией "Переставить заявки" ("Изменение заявки"), если доступен данный тип транзакции для инструмента.
Если по одной цене стоят несколько заявок, то применять операцию для последней выставленной заявки (для двух последних на FORTS).

2. Снимать заявки (панель снятия заявок по условию в стакане) транзакцией "Удалить все заявки по условию", если доступна.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Кривые шибки в QLua
 
Здесь будут публиковаться кривые ошибки, возникающие, очевидно, из-за двухпоточной схемы работы QLua.
Некоторые ошибки указаны здесь: Потокобезопасные функции в Lua 5.3
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Зависание QUIK
 
Добрый день.

QUIK 8.8.4.3. Стандартная схема оформления.
Иногда после нескольких дней работы зависает. При этом загрузка ЦП процессом 0
Сначала грешил на потокобезопасные функции. Но анализ логов показывает, что зависании происходит вне потокобезопасных функций (но это не точно ))
Можно ли по стеку определить последнюю вызванную QLua функцию?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
SetCell
 
SetCell стал ругаться false на такую конструкцию для строковых ячеек:
Код
SetCell(id, row, col, tostring(value), tonumber(value) or 0)
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Потокобезопасные функции в Lua 5.3
 
Скрипт 1:
Скрытый текст

Скрипт 2:
Скрытый текст

При запущенных обоих скриптах изредка в строке
Код
while #AllTrades > 0 do
возникает странная ошибка:
Цитата
attempt to compare number with function
Для воспроизведения можно Получить заново данные по обезличенным сделкам.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Получение данных из таблиц при автостарте
 
Добрый день.

Есть скрипт, который стартует автоматически при запуске QUIK. В самом начале идёт поиск заданного торгового счета:
Код
function main()
  local Index = SearchItems("trade_accounts", 0, getNumberOf("trade_accounts")-1, function(trdaccid) return trdaccid == Account end, "trdaccid")
  ...
end

В настройках стоит "Очищать данные после смены даты: На сервере (при установлении связи)". Т.е., при первичном старте скрипт берёт данные из кэша.
Запуск QUIK происходит долго, открыто несколько тиковых графиков и индикаторов.
Но обычно скрипт работает нормально. Но сегодня SearchItems не нашла торговый счёт и вернула nil. Повторный запуск скрипта вручную (до подключения к серверу) отработал корректно.

По какой причине данный код мог дать сбой?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
ParamRequest и getParamEx2, Как получить актуальные данные через getParamEx2?
 
Начну из далека.
При заказе таблицы котировок используем
Код
Subscribe_Level_II_Quotes(class, sec)  -- Для заказа котировок с сервера
getQuoteLevel2(class, sec)  -- Для получения котировок
Мы либо получаем актуальные котировки, если стакан открыт, либо незаполненную таблицу, если стакан закрыт или котировки ещё не подгрузились с сервера.
Если закрыть стакан (отменить заказ на получение котировок с сервера), то getQuoteLevel2 вернёт незаполненную таблицу.
Т.о., мы понимаем, что, если getQuoteLevel2 вернул данные, то они актуальны.
Использование простое:
Код
function main()
  Subscribe_Level_II_Quotes(class, sec)
  -- Получаем актуальные котировки, если они есть:
  Quotes = getQuoteLevel2(class, sec)
end
-- Дальнейшие изменения в стакане можно ловить в OnQuote:
function OnQuote(class, sec)
  Quotes = getQuoteLevel2(class, sec)
end


С getParamEx2 намного сложнее. Если getParamEx2 вернул данные, то они актуальные или старые? Может, пять часов назад их заказывали, потом подписку отменили, а данные остались в кеше.
Если же брать парамтры только в OnParam, то по неликвидному инструменту их можно ждать бесконечно долго.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] QUIK вешается при использовании DestroyTable из main
 
Ошибка плавающая. Причину установить не удалось.
Но замечено, что виснет с большей вероятностью, если одновременно с DestroyTable происходит какое-то событие.
Для воспроизведения написал следующий скрипт:
Код
function main()
  ID = {}
  for i = 1, 20 do
    ID[i] = AllocTable()
    CreateWindow(ID[i])
    SetTableNotificationCallback(ID[i], function(id, event)
      if event == QTABLE_CLOSE then
        run = false
      end
    end)
  end
  run = true
  while run do sleep(1) end
  for _, id in pairs(ID) do
    DestroyTable(id)
  end
end
Использование: Запустить скрипт без подключения к серверу. Чтобы посыпались события, установить соединение с сервером, и сразу закрыть одно из окон скрипта.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] При подключении под новым пользователем на графиках остаются сделки и заявки от предыдущего пользователя
 
Если залогиниться в QUIK под другим пользователем (не закрывая программу), то на открытых графиках остаются треугольники от сделок и линии заявок от предыдущего пользователя.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Доступные скрипты, Значки для скриптов с ошибками
 
Сделать другие значки для скриптов:
1) остановившихся в результате ошибки;
2) в которых возникла ошибка, но скрипт продолжил работу (ошибка в колбеке)
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Lua: изменить название колонки
 
Сделать функцию для изменения названий колонок в QLua-таблицах.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Появляется лишняя строка в таблице
 
Демонстрационный скрипт:
Код
function OnStop()
  run = nil
  SetCell(id, 1, 1, string.format('Size: %u', GetTableSize(id)))  -- Почему-то попадаем в строку 2
end

local alltrade
function OnAllTrade()
  if not run then return end
  alltrade = true
  for i = 1, 30 do
    DeleteRow(id, 1)
    InsertRow(id, 30)
  end
end

function main()
  id = AllocTable()
  AddColumn(id, 1, 'Size', true, QTABLE_INT_TYPE, 15)
  CreateWindow(id)
  SetWindowPos(id, 0, 0, 100, 520)
  for i = 1, 30 do
    InsertRow(id, -1)
  end

  run = true
  while run do
    if alltrade then
      alltrade = nil
      SetCell(id, 30, 1, string.format('%u', GetTableSize(id)))
    else sleep(1) end
  end
end

Через некоторое время работы появляется 31 строка. Первая строка становится недоступна для редактирования.

Видео
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
[BUG] Не рассчитывается максимальное возможное количество лотов в заявке
 
Для BRK0 на момент написания этого поста не рассчитывалось количество при цене ниже 23,01
Возможно это связано с расширением планок.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Показывать коды классов в настройках списков заказа данных, Заказ данных -> Поток котировок, Поток обезличенных сделок
 
Отображать код класса в указанных окнах
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
CalcBuySell, Долгая работа функции
 
Среднее время выполнения функции CalcBuySell 6-7 мс. Как-то долго.
Может, можно что-то подкрутить в настройках?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Перестают работать события SetTableNotificationCallback
 
Создаём QLua-окно, назначаем ему колбек на события QTABLE_CHAR и/или QTABLE_VKEY.
Если переключиться на контрол "Edit" или "ComboBox" на панели инструментов ("Поиск инструмента", "Окно сообщений" и пр.), а затем активировать окно кликом на его заголовок, то события, назначенные раннее не работают. Чтобы заработали, нужно активировать кликом внутри окна.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Контекстное меню в Lua-таблицах
 
QUIK 8.2.0.78
При клике правой кнопкой мыши в Lua-таблице появляется контекстное меню. Как убрать?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Метки
 
Где теперь устанавливается прозрачность метки и фона?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
table.ssort, зависает терминал при выполнении table.ssort в main
 
Демонстрационный скрипт:
Код
local AllTrades = {}
function main()
  ID = AllocTable()
  AddColumn(ID, 1, '1', true, QTABLE_INT_TYPE, 20)
  CreateWindow(ID)
  row = InsertRow(ID, -1)

  while not stoped do
    if #AllTrades ~= 0 then
      local trade_num = table.sremove(AllTrades, 1).trade_num
      table.ssort({0, 0}, function()
        SetCell(ID, row, 1, ''..trade_num)
        return true
      end)
   else sleep(1) end
  end  
end

function OnAllTrade(alltrade)
  table.sinsert(AllTrades, alltrade)
end

Через непродолжительное время терминал вешается.
Зависание происходит при выполнении инструкции SetCell в main.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Клиентский портфель, Настройки обновления
 
Цитата
Система / Настройки / Основные настройки… раздел «Торговля» / «Клиентский портфель»
Влияют ли эти настройки на значения, получаемые из Lua, например, getPortfolioInfo, getPortfolioInfoEx и др.?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
OnOrder, снятие заявки
 
Скрипт отправляет транзакцию на снятие заявки.
Допустим, OnOrder получен раньше или OnTransReply вообще не пришел.
Есть возможность установить инициатора снятия: сам скрипт, пользователь (вручную) или, может, другой бот?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Не завершается main после остановки скрипта
 
Код
local run = true

local function f()
  for i = 1, 2000000 do
    local a = 1 + 2 * 3 / 4
  end
  return run
end

function main()
  local t_id = AllocTable()
  AddColumn(t_id, 1, "", true, QTABLE_DOUBLE_TYPE, 20)
  CreateWindow(t_id)
  InsertRow(t_id, -1)
  while run do
    local r = f()
    SetCell(t_id, 1, 1, tostring(r))
    sleep(1)
  end
  message('Exit')
end

function OnStop()
  run = nil
  message('OnStop')
  return 5000
end
Почему после остановки скрипта main не завершается (чаще всего) должным образом?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Старая проблема.
Настроен список инструментов для получения информации по обезличенным сделкам.
К примеру, получаем сделки по классу FORTS, фильтр инструментов не включен.
Открываем новую таблицу ТВС и указываем только один инструмент из класса FORTS для вывода в эту таблицу. В результате настройки сбрасываются, сделки по остальным инструментам прекращают поступать.

Надо исправить: при открытии новой таблицы список инструментов не должен изменяться в сторону уменьшения.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Показывать последнее значение, точность отображения
 
Где настройка точности отображения последнего значения на графике?
Скрытый текст
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Модуль опционной аналитики, Кривой расчёт прибылей/убытков
 
info.exe 7.14.1.7
StratVolat.dll 2.1.61.1
Неверно отображается прибыль при цене БА, равной страйку, на момент экспирации.
И как не меняй масштаб, добиться шага цены 100, чтобы страйк попал на одно из делений на шкале, невозможно.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Различаются графики в QUIK и экспорт с Финама
 
У кого-нибудь есть свежая история торгов непосредственно с биржи?
А то не совпадают данные из QUIK с экспортом с Финама
Скрытый текст

Как видно на скриншоте идёт смещение на одну минуту.
И такая беда по многим бумагам, которые проверил.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
QUIK не может установить соединение с сервером.
 
У меня одного если QUIK работает несколько дней, то иногда после перезагрузки сервера, клиент не может установить соединение с сервером?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
История торгов
 
1. Каким образом происходит обновление графиков при смене (идентификатора) сессии? Путём дозаписи в конец?
2. Если у брокера произошёл сбой, и часть графика за какой-то период не отображается, а затем он положил на сервер корректные данные, как получить корректный график, не потеряв при этом накопленную историю свыше 3000 свечей, которой нет на сервере?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
CalcBuySell()
 
Функция CalcBuySell() возвращает значение в зависимости от установленной настройки "Исходя только из собственных средств", т.е. ведёт себя непредсказуемо.
Предлагаю добавить в функцию опциональный параметр, аналогичный этой настройке.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Заказ обезличенных сделок
 
В меню <Система / Заказ данных / Поток обезличенных сделок...> выбран класс целиком.
Если теперь создать Таблицу обезличенных сделок и добавить в неё или добавить в раннее открытую таблицу одну бумагу из выбранного класса, то в <Поток обезличенных сделок...> установится фильтр на заказ только одной бумаги из всего класса.
Можно сделать так, чтобы открытие или редактирование ТОС не сбрасывало инструменты, заказанные через <Поток обезличенных сделок...>?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
После обновления до 7.11.0.88 игнорируется значение параметра "Кол-во лотов" на вкладке "Торговля"
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Падение QUIK при DestroyTable
 
Код
run, t_id = true

function main()
  t_id = AllocTable()
  CreateWindow(t_id)
  while run do
    sleep(1)  -- можно sleep убрать, чтоб наверняка
  end
end
function OnStop()
  run = nil
  DestroyTable(t_id)
end
function OnDisconnected()
  OnStop()
end

При разрыве соединения в темной теме QUIK падает.
Как временное решение проблемы - поставить небольшую задержку в конце main()
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Пропадает глобальная таблица _G
 
QUIK 7.10.0.76. Иногда при подключении к серверу скрипт падает с ошибкой
Цитата
attempt to call global 'W' (a nil value)
W - это функция, которая крутится в цикле main. Она никак не может быть nil.
Вот фрагмент кода:
Код
function OnConnected()
  Sort = true
end
function W()
  return nil
end
function main()
  ...
  while run do
    if Sort then
      table.sort({0, 1})  -- сортировка никак не связана с функцией W, но без сортировки проблема не воспроизводится
      Sort = nil
    elseif not W() then   -- тут возникает ошибка
    else sleep(100) end
  end
end

Целый день убил на поиск проблемы, пока не заглянул в глобальную таблицу _G. А её и нет:
когда изменил код так:
Код
function main()
  while run do
    if Sort then
      table.sort({0, 1})
      Sort = nil
    else
      if not _G then message('Ahtung! Not _G', 3)
      elseif not W() then
      else sleep(100) end
    end
  end
end
то при подключении скрипт стал однократно выдавать сообщение об отсутствии _G (т.е. впоследствии _G снова обнаруживается) или падать с ошибкой
Цитата
attempt to call global 'W' (a table value)
(неожиданно!)
Скрипт использует только функции из qlua.dll, не модифицирует функцию W, и не работает напрямую с глобальной таблицей.

Соответственно, вопрос разработчикам: есть ли в QLua какие-либо механизмы, способные так повлиять на работу?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Не открывается график
 
Несмотря на то, что инструменты сохраняются в sec.dat и таблице securities, графики  - в кэше archive, по инструментам с истёкшим сроком не открываются графики.
Зачем это ограничение?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Гарантийное обеспечение, В руководстве ошибка
 
Цитата
Значения параметров функций

54 BUYDEPO NUMERIC Гарантийное обеспечение продавца
55 SELLDEPO NUMERIC Гарантийное обеспечение покупателя
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
getParamEx
 
Код
Price = tonumber(getParamEx('FUTSPREAD', 'RIM7RIU7', 'last').param_value)
message(tostring(Price))
--> 0

Вопрос к разработчикам:
Вы можете предложить надёжный способ убедиться, что getParamEx даёт действительно последнюю цену инструмента, а не её отсутствие?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Самопроизвольная остановка Lua-скриптов, при замене инструментов с истекающим сроком обращения
 
При замене инструментов с истекающим сроком обращения останавливаются Lua-скрипты.
Почему так происходит?
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
OnStop
 
Это верно, что во время работы колбэка OnStop работа потока main приостанавливается?
Кроме того, скрипту даётся время на завершение работы, которое отсчитывается не по окончании OnStop (как это показано на вашей схеме), а от начала работы функции OnStop. Т.о., схема должна выглядеть так:
Скрытый текст
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
getDataSourceInfo
 
Предлагаю модифицировать функцию getDataSourceInfo: добавить необязательный параметр: STRING Tag и сделать функцию доступной как в индикаторах так и в обычных скриптах.
При задании параметра функция будет возвращать параметры графика с идентификатором Tag.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
ParamRequest и CreateDataSource не заказывают получение параметров Таблицы текущих торгов
 
Если в настройках получения данных стоит галка "Исходя из настроек открытых пользователем таблиц", то ни ParamRequest ни CreateDataSource не могут заказать получение параметров Таблицы текущих торгов с сервера. При этом они радостно сигнализируют об успехе.
Нужно изменить такое поведение.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Страницы: 1 2 3 След.
Наверх