Использование getParamEx для облигаций

Страницы: 1
RSS
Использование getParamEx для облигаций, Получение данных по облигациям из таблицы Текущих торгов
 
Добрый вечер, камрады,

Пытаюсь использовать getParamEx для облигаций,
но похоже не понял, что нужно ставить в параметр SECCODE.

Попытка поставить туда ISIN облиги ничего не даёт.

В качестве CLASSCODE я перепробовал:
TQOB
TQOS
TQNO
PSOB
PSNO

Где брать SECCODE и CLASSCODE для облигаций, подскажите плиз?

И вообще - правильно ли я делаю?
Код:
Код
stopped = false

function OnStop(s)
  stopped = true
end

function main()
  t = getParamEx("TQOB", "RU000A100HE1", "LONGNAME")
  if not t then
    message("error!", 3)
    return
  end

    message("type="..t.param_type.."\nvalue="..t.param_value.."\nimage="..t.param_image.."\nresult="..t.result)
  

  sleep(5000)
end
 
Попробуйте SECCODE - TQCB
 
Vitalii Savinov, добрый день.

Функция getParamEx() принимает на вход 3 параметра: class_code (код класса), sec_code (код инструмента), param_name (наименование параметра из Таблицы текущих торгов).

Посмотреть код класса и код инструмента можно в Рабочем месте QUIK, открыв окно информации об инструменте (ПКМ по интересующему инструменту в Таблице текущих торгов / Информация об инструменте, или сочетание Alt+I).
 
Цитата
Дмитрий написал:
Попробуйте SECCODE - TQCB
Спасибо - помогло.
 
Цитата
Anton Belonogov написал:
Vitalii Savinov, добрый день.

Функция getParamEx() принимает на вход 3 параметра: class_code ( код класса ), sec_code ( код инструмента ), param_name (наименование параметра из Таблицы текущих торгов).

Посмотреть код класса и код инструмента можно в Рабочем месте QUIK, открыв окно информации об инструменте ( ПКМ  по интересующему инструменту в Таблице текущих торгов  /   И  нформация об инструменте , или сочетание  Alt+I ).
Спасибо - всё получилось.

Это хорошо, что код инструмента совпадает с ISIN.
Это правильно.
 
Цитата
Vitalii Savinov написал:
Цитата
Anton Belonogov написал:
Vitalii Savinov , добрый день.

Функция getParamEx() принимает на вход 3 параметра: class_code ( код класса ), sec_code ( код инструмента ), param_name (наименование параметра из Таблицы текущих торгов).

Посмотреть код класса и код инструмента можно в Рабочем месте QUIK, открыв окно информации об инструменте ( ПКМ  по интересующему инструменту в Таблице текущих торгов  /   И  нформация об инструменте , или сочетание  Alt+I ).
Спасибо - всё получилось.

Это хорошо, что код инструмента совпадает с ISIN.
Это правильно.
К сожалению, для ОФЗ это не так :(((

ISIN и код инструмента не совпадают!
(ну как так-то?)

А как можно получить коды инструмента для ОФЗ списком?
Или судьба моя вручную их из квика выковыривать по одному?
 
Vitalii Savinov, добрый день.

С помощью функции getItem(STRING TableName, NUMBER Index) можно обратиться к произвольной таблицы Рабочего места QUIK и получить информацию о данных из строки с номером  «Index» из таблицы с именем «TableName».

Для решения описанной Вами задачи необходимо обратиться к таблице "securities" и получить коды для инструментов из интересующего класса (например, TQCB).
Код может выглядеть так (с записью кодов инструментов в .txt-файл):

Код
sec = ""

for i = 0, getNumberOf("securities") - 1 do
   if getItem("securities", i).class_code == "TQCB" then
      sec = sec .. getItem("securities", i).code .. "\n"
   end
end

f = io.open("tqcb.txt", "w")
f:write(sec)
f:close()

Более подробная информация о функциях для обращения к данных таблиц Рабочего места QUIK и структурах данных представлена Руководстве пользователя QLua.

 
Цитата
Anton Belonogov написал:
Vitalii Savinov, добрый день.

С помощью функции  getItem(STRING TableName, NUMBER Index)  можно обратиться к произвольной таблицы Рабочего места QUIK и получить информацию о данных из строки с номером  «Index» из таблицы с именем «TableName».

Для решения описанной Вами задачи необходимо обратиться к таблице "securities" и получить коды для инструментов из интересующего класса (например, TQCB).
Код может выглядеть так (с записью кодов инструментов в .txt-файл):

Код
  sec  =   "" 

 for  i  =   0 ,  getNumberOf ( "securities" )  -   1   do 
    if   getItem ( "securities" , i).class_code  =  =   "TQCB"   then 
      sec  =  sec  ..   getItem ( "securities" , i).code  ..   "\n" 
    end 
 end 

f  =   io.open ( "tqcb.txt" ,  "w" )
f:write(sec)
f:close()  
     Более подробная информация о функциях для обращения к данных таблиц Рабочего места QUIK и структурах данных представлена Руководстве пользователя QLua.
Спасибо!
Страницы: 1
Читают тему (гостей: 6)
Наверх