Чтобы получить свечные данные, можно использовать открытый график и getCandlesByIndex, а можно не открывать график и применять DataSource. Второй способ лучше, т.к. пользователь может случайно закрыть график и скрипт перестанет получать данные.
Чтобы получить данные стакана, можно открыть стакан, а можно не открывать стакан, а вызвать функцию Subscribe_Level_II_Quotes. Второй способ лучше, т.к. пользователь может случайно закрыть стакан и скрипт перестанет получать данные.
По аналогии, хочется, чтобы функция getParamEx выдавала данные по инструменту всегда, вне зависимости от того, открыта ТТП с этим инструментом и нужными полями или нет. Можно ли как-то гарантировать эту функциональность? Если нет, то может имеет смысл добавить функцию Subscribe_Param(classCode, secCode)?
Пользователь
Сообщений: Регистрация: 30.01.2015
16.09.2015 13:21:31
А где Вы прочитали, что ТТП надо открыть для получения данных функцией getParamEx?
Пользователь
Сообщений: Регистрация: 31.01.2015
16.09.2015 13:46:39
Гипотеза такая была, которую я не проверил. В документации написано:
Цитата
Функция предназначена для получения значений всех параметров биржевой информации из Таблицы текущих значений параметров. С помощью этой функции можно получить любое из значений Таблицы текущих значений параметров для заданных кодов класса и бумаги.
Я понял буквально.
Выходит, что если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"?
_sk_ пишет: если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"
Надо делать так, как надо. А как не надо - делать не надо.
_sk_ пишет: если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"
Типа автодобавления тикера в списки при запросе данных из ТТП? Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера? Пошлют нас разработчики с таким пожеланием и будут правы.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.09.2015 08:59:51
Цитата
green_X5 пишет: Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера?
ТТП знает о всех существующих тикерах, независимо от того, выбран ли этот тикер в "Списках" или добавлен ли он в таблицу. Если какой-то тикер не найден, значит его нет вообще, или у пользователя нет прав на работу с этим инструментом.
А я указываю, что getParamEx
Цитата
Egor Zaytsev пишет: Значение получает без открытой таблицы
только, если нужный нам параметр явно выбран в "Связь -> Списки".
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.09.2015 09:09:56
Цитата
Egor Zaytsev пишет: Открывать таблицу не обязательно. Вот простой пример: step = getParamEx("SPBFUT","RIH6","SEC_PRICE_STEP").param_value message(tostring(step),1)
Значение получает без открытой таблицы.
Egor Zaytsev, ваш пример некорректен: параметр "SEC_PRICE_STEP" - это т.н. статический параметр, который в любом случае "заезжает" на рабочее место.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 09:10:46
Старатель,спасибо за разъяснения. По-хорошему, это должно быть указано разработчиками QUIK в документации явным образом.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.09.2015 09:15:19
Цитата
_sk_ пишет: По-хорошему, это должно быть указано разработчиками QUIK в документации явным образом.
Если сотрудники сами об этом "забывают"? По-хорошему, это должно быть указано разработчиками QUIK в документации явным образом в первую очередь для сотрудников техподдержки.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
17.09.2015 10:07:54
offtop
Цитата
green_X5 пишет: Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера?
А что по-вашему отвечает CreateDataSource, если ей задать несуществующий код бумаги в реальном классе? Как ни странно, CreateDataSource возвращает таблицу! А что при этом говорит SetUpdateCallback? true, что согласно документации означает "успешное завершение".
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 11:51:20
Цитата
Egor Zaytsev пишет: Значение получает без открытой таблицы.
Так ведь нужно не только получать значения, но и заказать получение изменений по заданной бумаге. Сейчас программно не закажешь, надо чтобы пользователь добавлял бумагу в ТТП. Это еще не считая проблемы с заказом нужного параметра бумаги. Этот параметр нужно заказывать в ТТП, иначе он может быть недоступен.
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 11:51:46
Цитата
Старатель пишет: А что по-вашему отвечает CreateDataSource, если ей задать несуществующий код бумаги в реальном классе? Как ни странно, CreateDataSource возвращает таблицу! А что при этом говорит SetUpdateCallback? true, что согласно документации означает "успешное завершение".
Ужас.
Пользователь
Сообщений: Регистрация: 30.01.2015
17.09.2015 16:57:01
Да я лично только ЗА авто-добавление тикера в списки по запросу параметров из ТТП. ) Оформляйте пожелание. Зима впереди долгая, и не одна, может быть дождемся. )
QUIK clients support
Сообщений: Регистрация: 27.01.2015
17.09.2015 17:08:35
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
QUIK clients support
Сообщений: Регистрация: 22.12.2014
28.09.2015 10:42:31
Добрый день.
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Пользователь
Сообщений: Регистрация: 31.01.2015
28.09.2015 12:35:38
Цитата
_sk_ пишет: может имеет смысл добавить функцию Subscribe_Param(classCode, secCode)?
Формат вызова функции лучше сделать таким: Subscribe_Param(classCode, secCode, paramList). paramList - список параметров бумаги, по которым точно будут приходить данные с сервера Квика - аналогично тому как происходит при открытии ТТП и выбора параметров бумаги для отображения в таблице.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
15.02.2016 14:26:24
Цитата
green_X5 написал: Да я лично только ЗА авто-добавление тикера в списки по запросу параметров из ТТП. ) Оформляйте пожелание. Зима впереди долгая, и не одна, может быть дождемся. )
Добрый день,
Ваше пожелание было реализовано в версии 7.1.0 терминала QUIK.