Блог им. morefinances

Получение тикеров торгуемых бумаг через getClassSecurities

Благодаря наводке @quant_trader (за что отдельное спасибо!), переписал свой первый скрипт из поста https://smart-lab.ru/blog/916765.php по выгрузке из терминала всех торгуемых бумаг. Теперь всё выполняется штатными средствами с помощью getClassSecurities.

Далее второй скрипт (из поста выше) выгружает из торгового терминала под закрытие дня (под закрытие основной, либо вечерней сессии — можно устанавливать, я делаю обе выгрузки) необходимые данные по всем бумагам списка.

Особенности запроса. Если ввести:

sec_list = getClassSecurities("TQBR")<br />message(sec_list)

то терминал выдаст строку, где через запятую будут все тикеры, при этом видим, что список не полон, обрывается на RTSB:

Получение тикеров торгуемых бумаг через getClassSecurities

Как выяснилось, это связано только с ограничением самого терминала на вывод строки (не более 899 символов).

При этом если посмотреть длину строки, то будет видно, что символов больше:

sec_list = getClassSecurities("TQBR")
message(tostring(string.len(sec_list)))

выдаст 1281

Разбив строку по запятым получим весь массив тикеров для дальнейшей работы:

sec_list = getClassSecurities("TQBR")

ind = 1
for msec in string.gmatch(sec_list, "[^,]+") do
	message(ind..": "..msec)
	ind = ind + 1
end

Итого первый скрипт, который создавал файл с торгуемыми тикерами на C:\files\ получится следующим:


function main()

	message('[ = = = = = = = = = = start = = = = = = = = = = ]')
	
	datetime = os.date("!*t",os.time())
	message('')
	message(os.date("%d.%m.%Y"))
	message('Начало работы скрипта '..os.date("%X",os.time()))
	

	DirectionSaveFile=tostring("C:\\files\\tickers.csv") 
	my_csv=io.open(DirectionSaveFile,"w") 
	
	sec_list = getClassSecurities("TQBR") -- тикеры в одну строчку
	
	ind = 1 -- индекс подсчета количество бумаг
	sprint = "" -- склейка массивов для вывода
	
	-- разбивка строки с тикерами
	for TIKER in string.gmatch(sec_list, "[^,]+") do
		-- запись в файл
		my_csv:write(TIKER.."\n")
		sprint = sprint..tostring(ind).."/ "..TIKER.."  "
		ind = ind + 1 -- индекс бумаги
		if ind%5 == 1 then 
			message(sprint)
			sprint = ""
		end
		sleep(5)
	end
	
	if sprint ~= "" then message(sprint) end 
	
	-- -- закрытие файла
	my_csv:flush()  
	my_csv:close() 

	message('Завершение работы скрипта '.. os.date("%X",os.time()))
	message('Общее количество торгуемых бумаг : '..tostring(ind - 1))
	message("[ = = = = = = = = = = end = = = = = = = = = =  ]")
	
end


В таком варианте он исключает минусы предыдущего скрипта, в который могли не попасть бумаги с нестандартными тикерами (вроде VEON-RX).

Второй скрипт без изменений, запускается после данного.

Их можно объединить, либо сделать вызов одного скрипта из другого, но мне удобнее делать это пошагово: сперва один, потом второй, чтобы контролировать процесс. Плюс иногда нужны не все бумаги, тогда в полученном csv файле в Excel можно оставить список необходимых бумаг, второй скрипт сделает выгрузку только по нему.

Оба скрипта с комментариями на github (кодировка Windows-1251).

теги: выгрузки тикеров штатными средствами квика через getClassSecurities, кружок авиамоделизма.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.5К | ★9
4 комментария
Хорошо, ну выгрузили вы список бумаг, а дальше что? Зачем он вам? Могли бы скачать с сайта биржи или ещё кучи мест.
avatar
Михаил К., в самом первом предложении есть ссылка на первый пост, где указано зачем.
avatar
Спасибо большое, давно искал нечто подобное!
Сделайте уроки по облигационному боту

Читайте на SMART-LAB:
Фото
Годовой отчет Аэрофлота 2025
Друзья, представляем вашему вниманию годовой отчет Группы «Аэрофлот» за 2025 год ➡️ ir.aeroflot.ru/ru/reporting/annual-reports/   ✈️ Мы...
Годовой отчет ФосАгро подтвердил запас прочности компании
Годовой отчет ФосАгро за 2025 год в первую очередь полезен не повторением финансовых показателей из уже опубликованной отчетности по МСФО, а...
Фото
Малая автоматизация. Лекция 3. Сетки. Быстрый старт
Привет, друзья! Мы рады сообщить о выходе очередного урока из цикла по малой автоматизации, опубликованного на Rutube-канале «Т-Алго» и на...
Фото
Роснефть: маржа пошла по EBITDA вверх, но обесценения снизили чистую прибыль. Зато скоро запустят Восток ойл
Роснефть отчиталась по МСФО вчера ночью за 1-й квартал 👉 Выручка -11% г/г 👉 Опер прибыль на уровне прошлого года 👉...

теги блога alfacentavra

....все тэги



UPDONW
Новый дизайн