Чтобы получить свечные данные, можно использовать открытый график и getCandlesByIndex, а можно не открывать график и применять DataSource. Второй способ лучше, т.к. пользователь может случайно закрыть график и скрипт перестанет получать данные.
Чтобы получить данные стакана, можно открыть стакан, а можно не открывать стакан, а вызвать функцию Subscribe_Level_II_Quotes. Второй способ лучше, т.к. пользователь может случайно закрыть стакан и скрипт перестанет получать данные.
По аналогии, хочется, чтобы функция getParamEx выдавала данные по инструменту всегда, вне зависимости от того, открыта ТТП с этим инструментом и нужными полями или нет. Можно ли как-то гарантировать эту функциональность? Если нет, то может имеет смысл добавить функцию Subscribe_Param(classCode, secCode)?
Гипотеза такая была, которую я не проверил. В документации написано:
Цитата
Функция предназначена для получения значений всех параметров биржевой информации из Таблицы текущих значений параметров. С помощью этой функции можно получить любое из значений Таблицы текущих значений параметров для заданных кодов класса и бумаги.
Я понял буквально.
Выходит, что если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"?
_sk_ пишет: если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"
Надо делать так, как надо. А как не надо - делать не надо.
_sk_ пишет: если в ТТП нет инструмента или все ТТП вообще закрыты, то данные всё равно доступны через getParamEx, если их получение настроено через "Связь -> Списки"
Типа автодобавления тикера в списки при запросе данных из ТТП? Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера? Пошлют нас разработчики с таким пожеланием и будут правы.
green_X5 пишет: Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера?
ТТП знает о всех существующих тикерах, независимо от того, выбран ли этот тикер в "Списках" или добавлен ли он в таблицу. Если какой-то тикер не найден, значит его нет вообще, или у пользователя нет прав на работу с этим инструментом.
А я указываю, что getParamEx
Цитата
Egor Zaytsev пишет: Значение получает без открытой таблицы
только, если нужный нам параметр явно выбран в "Связь -> Списки".
Надо делать так, как надо. А как не надо - делать не надо.
Egor Zaytsev пишет: Открывать таблицу не обязательно. Вот простой пример: step = getParamEx("SPBFUT","RIH6","SEC_PRICE_STEP").param_value message(tostring(step),1)
Значение получает без открытой таблицы.
Egor Zaytsev, ваш пример некорректен: параметр "SEC_PRICE_STEP" - это т.н. статический параметр, который в любом случае "заезжает" на рабочее место.
Надо делать так, как надо. А как не надо - делать не надо.
_sk_ пишет: По-хорошему, это должно быть указано разработчиками QUIK в документации явным образом.
Если сотрудники сами об этом "забывают"? По-хорошему, это должно быть указано разработчиками QUIK в документации явным образом в первую очередь для сотрудников техподдержки.
Надо делать так, как надо. А как не надо - делать не надо.
green_X5 пишет: Что же по-вашему должна ответить ТТП, если она даже не знает о существовании такого тикера?
А что по-вашему отвечает CreateDataSource, если ей задать несуществующий код бумаги в реальном классе? Как ни странно, CreateDataSource возвращает таблицу! А что при этом говорит SetUpdateCallback? true, что согласно документации означает "успешное завершение".
Надо делать так, как надо. А как не надо - делать не надо.
Egor Zaytsev пишет: Значение получает без открытой таблицы.
Так ведь нужно не только получать значения, но и заказать получение изменений по заданной бумаге. Сейчас программно не закажешь, надо чтобы пользователь добавлял бумагу в ТТП. Это еще не считая проблемы с заказом нужного параметра бумаги. Этот параметр нужно заказывать в ТТП, иначе он может быть недоступен.
Старатель пишет: А что по-вашему отвечает CreateDataSource, если ей задать несуществующий код бумаги в реальном классе? Как ни странно, CreateDataSource возвращает таблицу! А что при этом говорит SetUpdateCallback? true, что согласно документации означает "успешное завершение".
Да я лично только ЗА авто-добавление тикера в списки по запросу параметров из ТТП. ) Оформляйте пожелание. Зима впереди долгая, и не одна, может быть дождемся. )
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
_sk_ пишет: может имеет смысл добавить функцию Subscribe_Param(classCode, secCode)?
Формат вызова функции лучше сделать таким: Subscribe_Param(classCode, secCode, paramList). paramList - список параметров бумаги, по которым точно будут приходить данные с сервера Квика - аналогично тому как происходит при открытии ТТП и выбора параметров бумаги для отображения в таблице.
green_X5 написал: Да я лично только ЗА авто-добавление тикера в списки по запросу параметров из ТТП. ) Оформляйте пожелание. Зима впереди долгая, и не одна, может быть дождемся. )
Добрый день,
Ваше пожелание было реализовано в версии 7.1.0 терминала QUIK.