ParamRequest vs CreateDataSource

Страницы: 1
RSS
ParamRequest vs CreateDataSource
 
Подскажите, в чем практическое отличие использования функции ParamRequest от CreateDataSource для заказа данных для OnParam в 7.1? Если я правильно понял, она попрежнему не может заказать данные, если они не выбраны "Заказ данных - Поток котировок"?
 
Функция ParamReques() заказывает данные с сервера QUIK в том случае, если в настройках терминала включен "умный" заказ данные, т.е. в настройках Рабочего места QUIK включен признак получения данных «Исходя из настроек открытых пользователем таблиц» (меню Система / Настройки / Основные настройки..., раздел «Программа» / «Получение данных»). В этом случае терминал каждые 15 секунд опрашивает плагин QLua, и если с помощью функции ParamReques() был заказан какой-либо параметр, то в меню "Заказ данных - Поток котировок" автоматически появится галочка на классе и в фильтрах будут выбраны соответствующие инструмент и параметр. После остановки скрипта заказ данных прекращается, так же подписку на параметр можно отменить с помощью функции CancelParamRequest(). Так же необходимо учесть, что если используются функции ParamReques() и CancelParamRequest(), то отписаться от заказанных параметров возможно, если в скрипте используется новая функция getParamEx2(), если будет использоваться getParamEx(), то функция CancelParamRequest() не выполнит отписку от трансляции параметра.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Получается, единственное отличие в наличии автоматической отписки после останова скрипта? (после CreateDataSource терминал сам отписку не выполняет)
 
Цитата
quio написал:
Получается, единственное отличие в наличии автоматической отписки после останова скрипта? (после CreateDataSource терминал сам отписку не выполняет)
Добрый день.
Отличие в том, что если нет соответствующей настройки в терминале, то не будет заказана история по параметру (тиковая или интервальная). Этот заказ предназначен для функции OnParam
 
Понял, спасибо, Михаил.
Теперь бы еще такую же для обезличенных сделок :)
 
Теперь бы ещё такую, но независимо от настройки «Получение данных»
 
Цитата
Старатель написал:
Теперь бы ещё такую, но независимо от настройки «Получение данных»
К сожалению обойтись без настройки никак не получится
 
Цитата
quio написал:
Теперь бы еще такую же для обезличенных сделок :)
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
Старатель написал:
Теперь бы ещё такую, но независимо от настройки «Получение данных»
ParamReques работает независимо от галочек. Вернее если включен "умный заказ", то ParamReques включает галочки на принимаемых классах и параметрах
 
Цитата
Michael Bulychev написал:
ParamReques работает независимо от галочек. Вернее если включен "умный заказ"
Здесь какое-то противоречие  :what:
 
Цитата
quio написал:
Понял, спасибо, Михаил.
Теперь бы еще такую же для обезличенных сделок :)
    Добрый день,
    Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам,     что реализация пожелания признана потенциально целесообразной. Если     по результатам дальнейшего анализа, включающего юридические аспекты,     анализ на непротиворечивость с общей политикой компании, никаких     возражений не возникнет, мы постараемся включить Ваше пожелание в     план доработок при выпуске одной из следующих версий нашего ПО.
 
Цитата
Egor Zaytsev написал:
реализация пожелания признана потенциально целесообразной
Это прекрасно :) Главное только, чтобы она заказывала обезличенные сделки без необходимости открытия таблицы обезличенных сделок. (CreateDataSource этого не делает, если Квик запущен без *.dat файлов - тикер есть, но не помню).
 
ParamRequest позволяет заказывать все параметры, доступные для заданного класса?
 
Да, любые.
 
Цитата
Так же необходимо учесть, что если используются функции ParamReques() и CancelParamRequest(), то отписаться от заказанных параметров возможно, если в скрипте используется новая функция getParamEx2(), если будет использоваться getParamEx(), то функция CancelParamRequest() не выполнит отписку от трансляции параметра.
Поясните, пожалуйста, данное замечание.

Если где-то в скрипте используется (использовалась? будет использоваться?) функция getParamEx(), то CancelParamRequest() не выполнит отписку по используемому параметру? А если в другом скрипте используется тот же параметр?
При перезагрузке QUIK что произойдёт с заказываемыми параметрами?

Для сравнения: при вызове CreateDataSource (при включённом "умном" заказе) устанавливались соответствующие "галочки" для заказываемых параметров. При закрытии DataSource галочки не снимались. При перезагрузке QUIK настройки возвращались в исходное положение, как было до запуска скрипта.
 
Что-нибудь изменилось в работе функции getParamEx?
 
Добрый день.

Цитата
Если где-то в скрипте используется (использовалась? будет использоваться?) функция getParamEx(), то CancelParamRequest() не выполнит отписку по используемому параметру?
Верно.

Цитата
А если в другом скрипте используется тот же параметр? При перезагрузке QUIK что произойдёт с заказываемыми параметрами?
Если используется функция getParamEx() и бумага добавлена в таблицу текущих торгов, то с параметрами ничего не должно произойти, т.е параметры должны быть заказаны.

Цитата
Что-нибудь изменилось в работе функции getParamEx?
В самой функции нет, была добавлена функция getParamEx2. Служит для получения параметров ТТП с использованием умного заказа.
 
1. Является ли использование функций ParamRequest или CreateDataSource обязательным для успешного получения значений параметра через getParamEx (при условии "умного" заказа данных, когда параметр не был добавлен в ТТП и др. таблицы)?
2. То же для getParamEx2.
 
Цитата
Старатель написал:
1. Является ли использование функций ParamRequest или CreateDataSource обязательным для успешного получения значений параметра через getParamEx (при условии "умного" заказа данных, когда параметр не был добавлен в ТТП и др. таблицы)?
2. То же для getParamEx2.
Обязательным не является, так как при наличии данных в терминале getParamEx и так вернет значения, даже без ParamRequest или CreateDataSource.
 
Скрытый текст

Перефразирую вопрос:

1. Является ли использование функций ParamRequest или CreateDataSource обязательным для успешного получения значений параметра через getParamEx (при условии "умного" заказа данных), когда параметр не присутствует в явном виде в списках принимаемых параметров? Под "успешным получением значения" понимается получение актуального значения, а не сохранённого когда-то в кэше.
2. То же для getParamEx2.
 
Цитата
Старатель написал:
    Скрытый текст       Экие вы мастера выкручиваться и уходить от прямого ответа  ::
Перефразирую вопрос:

1. Является ли использование функций ParamRequest или CreateDataSource обязательным для успешного получения значений параметра через getParamEx (при условии "умного" заказа данных), когда  параметр не присутствует в явном виде в списках принимаемых параметров ? Под "успешным получением значения" понимается получение актуального значения, а не сохранённого когда-то в кэше.
2. То же для getParamEx2.
Мы не можем утверждать обязательность использования данных функций.
Однако, мы рекомендуем их использовать для гарантированного получения информации.
 
Звучит так, будто вы не уверены (не знаете), как работает функционал.
 
Цитата
Старатель написал:
1. Является ли использование функций ParamRequest или CreateDataSource обязательным для успешного получения значений параметра через getParamEx (при условии "умного" заказа данных), когда параметр не присутствует в явном виде в списках принимаемых параметров? Под "успешным получением значения" понимается получение актуального значения, а не сохранённого когда-то в кэше.
2. То же для getParamEx2.
А в чем собственно проблема?
Актуальные значения параметров Вы получите функцией getParamEx() или getParamEx2() если подписка на получение данных параметров с сервера QUIK выполнена, а уже выполнить подписку можно следующими способами:
1. Руками, выбрав в Система/Заказ данных/Поток котировок... нужные параметры и инструменты на классе;
2. При включенном "Умном заказе" («Исходя из настроек открытых пользователем таблиц» (меню Система /  Настройки / Основные настройки..., раздел «Программа» / «Получение  данных») и открытой таблице Текущих торгов с необходимыми параметрами и инструментами на классе;
3.  При включенном "Умном заказе", автоматически из скрипта Lua с помощью функций  ParamRequest или CreateDataSource;
4. Есть еще один вариант, когда при  включенном "Умном заказе" терминал QUIK заказывает сам необходимые параметры, которые ему нужны для корректного расчета лимитов (для разного типа инструментов он заказывает разные параметры, например, для фьючерсов он обязательно закажет ГО...)

Все, если ни один из 4 вариантов заказа параметров не выполнен, то функции getParamEx() или getParamEx2() не гарантируют актуальных значений параметров, в этом случае функции вернут пустые значения или старые "из кэша" значения.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Цитата
Nikolay Pavlov написал:
1. Руками, выбрав в Система/Заказ данных/Поток котировок... нужные параметры и инструменты на классе;
А где вообще хранятся все эти настройки?

И как их можно вручную сохранить/загрузить, ибо они регулярно и непредсказуемо сбрасываются?
(сохранить настройки в файл/загрузить из файла на эти настройки не влияет)
Страницы: 1
Читают тему (гостей: 1)
Наверх