Информация из таблицы текущих торгов

Страницы: 1
RSS
Информация из таблицы текущих торгов
 
При использовании функции getParamEx (class_code,  sec_code,  param_name) для получения параметров param_name из таблицы текущих торгов надо задавать class_code и  sec_code.  Приходится для sec_code  создавать массив километровой длины типа  sec_code  ={"ALRS","AFLT", ...,"FEES"}. А если список акций в таблице текущих торгов меняется то этот массив приходится  тоже менять.

Вопрос: можно ли просто прочитать все строки таблицы текущих торгов подряд без задания  class_code и  sec_code и определить параметры param_name?  
 
Здравствуйте,
Цитата
Виктор Столетов написал:
Вопрос: можно ли просто прочитать все строки таблицы текущих торгов подряд без задания  class_code и  sec_code и определить параметры param_name?
Такой возможности не предусмотрено.

Цитата
Виктор Столетов написал:
Приходится для sec_code  создавать массив километровой длины типа  sec_code  ={"ALRS","AFLT", ...,"FEES"}.
Есть функция getClassSecurities которая вернет список инструментов в классе.
Еще есть getClassesList которая вернет список классов
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Цитата
Виктор Столетов   написал:
Вопрос: можно ли просто прочитать все строки таблицы текущих торгов подряд без задания  class_code и  sec_code и определить параметры param_name?
Такой возможности не предусмотрено.
Цитата
Виктор Столетов   написал:
Приходится для sec_code  создавать массив километровой длины типа  sec_code  ={"ALRS","AFLT", ...,"FEES"}.
Есть функция getClassSecurities которая вернет список инструментов в классе.
Еще есть getClassesList которая вернет список классов
А как посмотреть только те инструменты, которые я лично вывел в таблицу текущих торгов, а не все, которые потоком идут через заказ данных?
 
Цитата
Александр М написал:
А как посмотреть только те инструменты, которые я лично вывел в таблицу текущих торгов, а не все, которые потоком идут через заказ данных?

Такой возможности не предусмотрено.
 
Цитата
Sergey Gorokhov написал:
Есть функция getClassSecurities которая вернет список инструментов в классе.
Еще есть getClassesList которая вернет список классов
Спасибо за рекомендацию.  
Можно еще вывести таблицу текущих торгов через DDE-сервер в файл excel. (в меню «действия» выбрать «вывод через DDE-сервер).   Затем в файле  удалить лишние столбцы, оставить только столбцы кодов бумаги и кодов класса (если код класса один, то столбец кодов класса тоже удалить).  Дальше сохранить файл как текстовый с расширением .txt.  Теперь просто считать столбец кодов бумаги в массив, предварительно открыв файл:
i=1
for line in f:lines() do
 sec_code[i]=tostring(line)
 i=i+1
end  
 
Тоже данный вопрос очень интересует, как из открытой таблицы текущих торгов получить список классов и кодов бумаг в ней. А если открыта не одна таблица, а несколько, и инструменты в них разные, то как получить эти данные по каждой таблице? Вообще странно что не предусмотрено такой возможности, тем более что активно продвигается мысль "...для оптимизации входящего трафика поставьте в настройках галку "получать данные исходя из текущих настроек открытых таблиц" ...."
Может у кого нибудь есть идеи как "достучаться" до таблицы текущих торгов? - нужны классы из нее и коды бумаг.
Может функции getNumberOf и getitem можно применить?

   
 
V Y,
Вы сами ответили на свой вопрос. Такой возможности нет.
А если точнее, то в QLUA вообще нет ни одной функции работающей напрямую с таблицами интерфейса терминала QUIK (кроме функций работы с LUA таблицами).
Все функции, по получению данных, работают не самими таблицами интерфейса, а с хранилищем данных из которого таблицы интерфейса берут значения.
Хранилище данных одно, а таблиц может быть много. Именно по этой причине, фильтры в таблицах интерфейса не влияют на данные в QLUA. А влияет только заказ данных. Если что-либо заказало данные, то и в QLUA они есть, а если нет то нет.
И по сути, не важно кто именно закажет данные, сам терминал или через QLUA, ведь хранилище то одно.
 
Да, жаль конечно, что "в QLUA вообще нет ни одной функции работающей напрямую с таблицами интерфейса терминала QUIK". И, если я правильно понял, прочитать/получить в QLUA фильтр открытой таблицы Текущих торгов тоже нет никакой возможности?
 
Sergey Gorokhov,
Цитата
Sergey Gorokhov написал:
Все функции, по получению данных, работают не самими таблицами интерфейса, а с хранилищем данных из которого таблицы интерфейса берут значения.
Хранилище данных одно, а таблиц может быть много. Именно по этой причине, фильтры в таблицах интерфейса не влияют на данные в QLUA.
Немного запутался: - означает ли это,что  если например, в терминале Quik у меня открыта только одна таблица (предположим Текущих торгов) с одной единственной строкой, то в хранилище будут данные только по этой бумаге, и функция Qlua, например, getNumberOf(securities)  -- //таблица "Инструменты"//  вернет количество строк - 1 ?
Цитата
 
V Y,
Нет не означает.
 
Цитата
V Y написал:
И, если я правильно понял, прочитать/получить в QLUA фильтр открытой таблицы Текущих торгов тоже нет никакой возможности?
Да верно
 
Цитата
Sergey Gorokhov написал:
V Y  ,
Нет не означает.
Спасибо за разъяснение, - почти разобрался, но снова все запуталось. Помогите навести порядок в голове. Итак, если в хранилище находятся данные которые Quik заказывает исходя из всех своих открытых таблиц, запросов на данные из Qlua и т.д. И если в Quik открыта одна единственная таблица Текущих торгов с одной единственной строкой, и запущен только один скрипт с единственной функцией getNumberOf(securities) -- //таблица "Инструменты"//, то почему эта функция вернет не 1, - ведь фактически заказываются данные только по одной бумаге/инструменту?  
 
V Y,
Потому что описания инструментов (securities) заказываются всегда и безусловно.
Связано это с тем, что нельзя отфильтровать ненужные инструменты, не зная какие инструменты вообще есть.
Грубо говоря, Вы можете выбрать нужные и ненужные инструменты из списка, именно потому что терминал их записал в таблицу securities.
Иначе бы не было из чего выбирать.
 
Sergey Gorokhov,  
 
Sergey Gorokhov, То есть получается таблица securities, а также GetClassesList "обращаются к брокеру" и возвращают те списки инструментов и классов которые брокер может предоставить? Как тогда можно узнать какие данные терминал заказал (подписался)?
 
Цитата
V Y написал:
То есть получается таблица securities, а также GetClassesList "обращаются к брокеру" и возвращают те списки инструментов и классов которые брокер может предоставить?
Да верно.

Цитата
V Y написал:
Как тогда можно узнать какие данные терминал заказал (подписался)?
надежно, никак.
 
Sergey Gorokhov, Спасибо за разъяснение. Про "не надежно" не спрашиваю, - нужно надежно. Пошел думать и формулировать новые вопросы. Еще раз спасибо.
 
можно надежно выбрать все инструменты, которые заказаны.
для этого проверяем параметры шаг и размер лота на ноль.
Если ноль, то инструмент не заказан.
 
Николай Камынин, Эта идея не сработала, по крайней мере для Quik Junior, В Quik открыта одна таблица Текущих торгов с одной строкой. Из скрипта получаю таблицу securities. возвращается 3909 записей, и не в одной шаг цены и/или размер лота не равны нулю.
 
Я просто еще раз повторю, то что уже было сказано:
Цитата
Sergey Gorokhov написал:
Потому что описания инструментов (securities) заказываются всегда и безусловно.
 
Цитата
V Y написал:
Николай  Камынин  , Эта идея не сработала, по крайней мере для Quik Junior, В Quik открыта одна таблица Текущих торгов с одной строкой. Из скрипта получаю таблицу securities. возвращается 3909 записей, и не в одной шаг цены и/или размер лота не равны нулю.
Я говорб всегда о боевом сервере, а на учебном вообще ничего не надо смотреть. Он просто так для тестирования буратин.
 
Sergey Gorokhov, Добрый день!
Еще один вопрос появился:
Я правильно понял, что в скрипте функция onAllTrade вернет мне информацию только по тем бумагам которые присутствуют в открытой в данный момент в терминале таблице (таблицах) обезличенных сделок? И, если бумага не присутствует в этой таблице, или таблица  вообще закрыта, то нет никакой возможности, например через заказ данных из скрипта, получить в скрипте, используя onAllTrade, данные по интересующей сделке ???
 
Цитата
V Y написал:
Я правильно понял, что в скрипте функция onAllTrade вернет мне информацию только по тем бумагам которые присутствуют в открытой в данный момент в терминале таблице (таблицах) обезличенных сделок?

OnAllTrade возвращает информацию об обезличенных сделках, по тем бумагам, по которым Вы эту информацию закажите.
И совершенно не важно как именно произойдет этот заказ. Через открытие таблицы, тиковый график или через CreateDataSource с интервалом INTERVAL_TICK
 
Sergey Gorokhov, Спасибо. Пошел пробовать. Думаю, что еще вернусь )))
Страницы: 1
Читают тему
Наверх