Нужна помощь в простейшей ситуации с вызовом getParamEx(class_code, sec_code, param_name)

Страницы: 1
RSS
Нужна помощь в простейшей ситуации с вызовом getParamEx(class_code, sec_code, param_name), Скрипт выполняется, находит таблицу, но далее полный облом
 
Текст скрипта -
-- =======================================================-- Скрипт для КВИК: Получение цены BRF6 и запись в лог-файл
-- =======================================================

local log_file_path = "C:\\Opt_Master_WORK\\lua_log.txt"
local class_code = "SPBFUT"
local sec_code = "BRF6"    -- КОД ИНСТРУМЕНТА
local param_name = "LAST"  -- Параметр: Цена последней сделки

-- Используем функцию QUIK API для получения данных
local success, value, datetime = getParamEx(class_code, sec_code, param_name)

local log_message = ""

if success then
   --
   log_message = " Цена " .. sec_code .. " = " .. tostring(value)
else
   -- Ошибка
   log_message = "ОШИБКА: Не удалось получить параметр " .. param_name .. " для " .. sec_code .. ". Проверьте коды класса/инструмента и активность торгов."
end

-- Запись сообщения в файл лога
local file = io.open(log_file_path, "a")

if file then
   file:write(os.date("[%Y-%m-%d %H:%M:%S] ") .. log_message .. "\n")
   io.close(file)
   print("Лог записан в файл: " .. log_file_path) -- В системный лог QUIK
else
   local error_popup = "КРИТИЧЕСКАЯ ОШИБКА: Невозможно открыть/записать файл лога по пути: " .. log_file_path
   message(error_popup, true) -- Всплывающее окно в QUIK
   print(error_popup)
end

Результат работы -     [2025-12-10 21:51:24]  Цена BRF6 = nil

То есть на экране есть таблица текущие параметры в которой данный инструмент содержится. Инструмент торгуемый активно и значит данные должны быть подгружены с сервера, но добиться получения цены
последней сделки хоть убей !   Всегда  nil
 
Код
--  Скрипт для КВИК: Получение цены BRF6 и запись в лог-файл
-- =======================================================
minfo=debug.getinfo(1, "S").source:sub(2);  p=minfo:match("(.*[/\\])") or "."
log_file_path =p.."/lua_log.txt"
class = "QJSIM"
sec = "SBER"    -- КОД ИНСТРУМЕНТА
param = "LAST"  -- Параметр: Цена последней сделки
-- Используем функцию QUIK API для получения данных
local value = getParamEx (class, sec,param).param_image
  message(tostring(value),1) -- Всплывающее окно в QUIK
if value then
   log_message = " Цена " .. sec .. " = " .. tostring(value)
else
   -- Ошибка
   log_message = "ОШИБКА: Не удалось получить параметр " .. param .. " для " .. sec .. ". Проверьте коды класса/инструмента и активность торгов."
end
-- Запись сообщения в файл лога
 message( log_message,1) 
local file = io.open(log_file_path, "a")
if file then
   file:write(os.date("[%Y-%m-%d %H:%M:%S] ") .. log_message .. "\n")
   io.close(file)
   print("Лог записан в файл: " .. log_file_path) -- В системный лог QUIK
else
   local err = "Невозможно открыть/записать файл лога по пути: " .. log_file_path
   message(err, true) -- Всплывающее окно в QUIK
   print(error)
end


Вы неправильно читаете параметр.
Сделал для акции так как сейчас  на демо сервере фьючерсы не торгуются.
Исправьте как вам надо.
--------------------------
Лог файл откроется там, где этот скрипт.
Вывод сообщения в лог файл и в окно сообщений.
 
Код
--  Скрипт для КВИК: Получение цены и запись в лог-файл
-- =======================================================
minfo=debug.getinfo(1, "S").source:sub(2);  p=minfo:match("(.*[/\\])") or "."
log_file_path =p.."/lua_log.txt"
class = "QJSIM"
sec = "SBER"    -- КОД ИНСТРУМЕНТА
param = "LAST"  -- Параметр: Цена последней сделки
local value = getParamEx (class, sec,param).param_image
if value then
   log_message = " Цена " .. sec .. " = " .. tostring(value)
else
   -- Ошибка
   log_message = "ОШИБКА: Не удалось получить параметр " .. param .. " для " .. sec .. ". Проверьте коды класса/инструмента и активность торгов."
end
 message( log_message,1) 
local file = io.open(log_file_path, "a")
if file then
   file:write(os.date("[%Y-%m-%d %H:%M:%S] ") .. log_message .. "\n")
   io.close(file)
   print("Лог записан в файл: " .. log_file_path) -- В системный лог QUIK
else
   local err = "Невозможно открыть/записать файл лога по пути: " .. log_file_path
   message(err, true) -- Всплывающее окно в QUIK
   print(error)
end
 
Большое спасибо за отклик/ Сработало, а этот ИИ мне целый вечер мозги компостировал что у меня странная сборка КВИКа и в ней эти функции вообще не работают !
Страницы: 1
Читают тему
Наверх