Йцукен (Автор тем)

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

Страницы: 1
Может ли уменьшиться количество свечей на графике в течение дня?
 
Сегодня в 10:12 на минутном графике Сбербанка (TQBR) CreateDataSource показала 66725 свечей.
После я перезагрузил QUIK (12.8.3), а когда подключился к тому же серверу, то свечей стало меньше - 65776 (в 10:59). Через час, в 11:59 - 65836 свечей.
Лишние вызовы OnAllTrade
 
При перезаказе обезличенных сделок суммарное количество вызовов OnAllTrade больше, чем есть сделок на самом деле.
QUIK-Junior 12.8.3 и 12.5.0
Код
local run = false
function OnStop()
  run = nil
end

local a = 0
function OnAllTrade(alltrade)
  if run ~= true then return end
  a = a + 1
end

function main()
  local n, m
  while run ~= nil and 0 < getNumberOf("all_trades") do  -- ожидание перезаказа обезличенных сделок
    n = getNumberOf("all_trades")
    sleep(1)
  end
  if run ~= nil then
    run = true
    message("start: " .. a)
    repeat
      sleep(1)
      m = getNumberOf("all_trades")
    until not run or n <= m
    run = false
    message("getNumberOf: " .. m .. "\nOnAllTrade: " .. a)
  end
end

Результат:
Цитата
getNumberOf: 194038
OnAllTrade: 239930
В таблице обезличенных сделок количество совпадает с тем, что показывает getNumberOf.
Задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте
 
В Lua сделать возможным задавать списки классов и кодов инструментов, для которых будут вызываться колбэки OnAllTrade, OnParam, OnQuote в Lua-скрипте.

Пояснение:
Сейчас, если в Lua-скрипте, заданы функции обратного вызова, в частности OnAllTrade, OnParam, OnQuote, то они будут вызываться для всех инструментов, данные по которым поступают в терминал, что влечёт высокий оверхэд на вызов этих самых колбэков.
Под вызовом колбэков понимается именно их вызов терминалом. Не путать с исполнением Lua-кода пользовательской функции.
Нули в индикаторе там, где должны быть пустые интервалы
 
Пишу индикатор. При отсутсвии свечки OnCalculate не рассчитывает значение (когда на одну диаграмму добавляется несколько графиков).
Но если сохранить индикатор в текстовый файл (ПКМ - Сохранить данные в файл), то на месте нерассчитанных значений будут нули.
На примере Moving Average:
Цитата
CHU2 [SPBFUT],1,20251130,175500,94927.555556
CHU2 [SPBFUT],1,20251130,175900,95014.000000
CHU2 [SPBFUT],1,20251130,180100,95059.111111
CHU2 [SPBFUT],1,20251130,180400,0.000000
CHU2 [SPBFUT],1,20251130,180900,0.000000
CHU2 [SPBFUT],1,20251130,181200,0.000000
CHU2 [SPBFUT],1,20251130,181300,0.000000
CHU2 [SPBFUT],1,20251130,181700,0.000000
CHU2 [SPBFUT],1,20251130,182100,95076.111111
При этом, если сохранить стандартный квиковский индикатор с тогой же диаграммы, то он будет без нулей:
Цитата
CHU2 [SPBFUT],1,20251130,175500,94927.555556
CHU2 [SPBFUT],1,20251130,175900,95014.000000
CHU2 [SPBFUT],1,20251130,180100,95059.111111
CHU2 [SPBFUT],1,20251130,182100,95076.111111
Вопрос: как в самописном индикаторе сделать так же?

Пробовал возвращать и nil и ничего не возвращать в OnCalculate
Код
function OnCalculate(index)
  ...
  if v ~= nil then return v
  else return nil end
end
Код
function OnCalculate(index)
  ...
  if v ~= nil then return v end
end
Результат одинаковый.
Страницы: 1
Наверх