OnParam и ТТТ

Страницы: 1
RSS
OnParam и ТТТ
 
Товарищи ответы несколько вопросов подскажите пожалуйста:
1) для того чтобы в колбек OnParam поступали изменения по бумагам нужно ли чтобы была открыта ТТТ со столбцами параметры которых хотелось бы получать или как работает OnParam?
2) Колбек OnParam срабатывает на изменение любого параметра по ценной бумаге, а что если параметры по нескольким бумагам изменяются одновременно? Как отслеживать изменение одного параметра по нескольким ценным бумагам если они вдруг изменяются одновременно?
3) OnParam срабатывает именно на изменение любого параметра или просто через определенные временные интервалы?
4) Мне нужно отслеживать цену лучшего предложения. Почитал, люди пишут, что отслеживают цену последней сделки "LAST", но ведь это последняя сделка, а мне надо лучшее предложение, поэтому мне нужно отслеживать параметр "OFFER", верно?
5) Параметрт"OFFER" в ТТТ изменяется одновременно с появлением нового предложения в стакане или всеже с задержками или как этот параметр изменяется?
 
Цитата
Александр написал:
Товарищи ответы несколько вопросов подскажите пожалуйста:
1) для того чтобы в колбек OnParam поступали изменения по бумагам  нужно  ли чтобы была  открыта   ТТТ  со столбцами параметры которых хотелось бы получать или как работает OnParam?
2) Колбек OnParam срабатывает на изменение любого параметра по ценной бумаге, а что если параметры по нескольким бумагам изменяются одновременно? Как отслеживать изменение одного параметра по  нескольким  ценным бумагам если они вдруг изменяются одновременно?
3) OnParam срабатывает именно на изменение любого параметра или просто через определенные временные интервалы?
4) Мне нужно отслеживать цену лучшего предложения. Почитал, люди пишут, что отслеживают цену последней сделки "LAST", но ведь это последняя сделка, а мне надо лучшее предложение, поэтому мне нужно отслеживать параметр "OFFER", верно?
5) Параметрт"OFFER" в ТТТ изменяется одновременно с появлением нового предложения в стакане или всеже с задержками или как этот параметр изменяется?
1) да
---------------
2) 3) данные в TTT приходят срезами в виде блоков. Т е если несколько бумаг или одна бумага изменили(а) свои параметры 10 раз за 1 мс, то терминал квик
а потом еще 100 раз за 10 мс, то все эти данные придут в терминал одновременно в виде пакета данных.
Терминал будет их распаковывать  и отправлять в колбек.
В итоге В колбеке вы получите все эти 110 изменений с интервалом примерно 5 мкс.  
Так как у вас скорее всего в main стоит Sleep, то фактически вы обработаете лишь несколько значений из данного пакета, остальные просто пропустите.
----------------
4) верно
----------------
5) с задержками и срезами. Т е смотри ответ на 2) 3)
 
Цитата
nikolz 2) 3) данные в TTT приходят срезами в виде блоков. Т е если несколько бумаг или одна бумага изменили(а) свои параметры 10 раз за 1 мс, то терминал квик
Цитата
а потом еще 100 раз за 10 мс, то все эти данные придут в терминал одновременно в виде пакета данных.
Цитата
Терминал будет их распаковывать  и отправлять в колбек.
Цитата
В итоге В колбеке вы получите все эти 110 изменений с интервалом примерно 5 мкс.  
Цитата
Так как у вас скорее всего в main стоит Sleep, то фактически вы обработаете лишь несколько значений из данного пакета, остальные просто пропустите.
Прежде всего, спасибо за хороший ответ.
По-поводу 2,3-го вопроса. Ещё раз, колбек OnParam спабатывает именно при изменении любого параметра ценных бумаг из ТТТ открытой на вкладке, на которой работает данный скрипт, да или в том числе из ТТТ на других вкладках терминала?
 
По первому вопросу ответ выше вам дали неправильный.

чтобы вы могли получать данные  по параметрам, необходимо, чтобы они приехали в ваш терминал с сервера.

для этого должна быть произведена подписка терминала на нужный параметр. Это можно сделать несколькими способами. Например, открыть ттп с нужной колонкой - в терминале будет сгенерирован запрос на получение соответствующих данных. Можно открыть график этого параметра, точно также будет внутри терминала создан запрос. Можно принудительно из луа исполнить подписку.

надо понимать, что параметры бывают трёх типов. Статические, рассчитываемые и приезжающие с сервера. Все вышенаписанное относится к получаемым с сервера.

статические параметры инструмента доступны всегда, когда инструмент доступен.

что касается рассчитываемых инструментов, то я я точно не помню, всегда ли они доступны или они рассчитываются только при наличии их в наборе параметров открытой ттп. По. Необходимости вы можете это проверить  
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
По первому вопросу ответ выше вам дали неправильный.

чтобы вы могли получать данные  по параметрам, необходимо, чтобы они приехали в ваш терминал с сервера.

для этого должна быть произведена подписка терминала на нужный параметр. Это можно сделать несколькими способами. Например, открыть ттп с нужной колонкой - в терминале будет сгенерирован запрос на получение соответствующих данных. Можно открыть график этого параметра, точно также будет внутри терминала создан запрос. Можно принудительно из луа исполнить подписку.

надо понимать, что параметры бывают трёх типов. Статические, рассчитываемые и приезжающие с сервера. Все вышенаписанное относится к получаемым с сервера.

статические параметры инструмента доступны всегда, когда инструмент доступен.

что касается рассчитываемых инструментов, то я я точно не помню, всегда ли они доступны или они рассчитываются только при наличии их в наборе параметров открытой ттп. По. Необходимости вы можете это проверить  
т е Вы считаете, что
1) для того чтобы в колбек OnParam поступали изменения по бумагам  НЕ нужно,  чтобы была открыта ТТТ, со столбцами параметры которых хотелось бы получать?
--------------
или иначе говоря, если ТТТ с параметрами откроете, то onParam не будет принимать данные?
====================
Полагаю, что чел изучил работу в КВИК и понял что показывает ТТТ.
Поэтому для начинающего вполне понятно и достаточно открыть эту таблицу с отображением того что надо
и писать скрипт не заморачиваясь источниками и инвми способами смотреть гланды через зад.
 
Цитата
nikolz написал:
[QUOTE] s_mike@rambler.ru написал:
открыта ТТТ, со столбцами параметры которых хотелось бы получать?
Разрешите несколько вопросов:
1) Т.е. если я открою один инструмент со столбцом "OFFER" в ТТТ, то в колбек OnParam будет приходить только изменение этого параметра или не так?
2) Изменение параметров из ТТТ будет приходить только с той вкладки на которой она расположена (и одновременно на этой вкладке запущен скрипт) или, если на другой вкладке открыта другая ТТТ то и с нее будет приходить изменение параметров ценных бумаг?
3) Уменьшение изменяемых параметров в ТТТ по ценным бумагам уменьшит размер приходящего блока и увеличит скорость работы скрипта?
 
Александр, ТТТ здесь вообще ни при чём, хоть там ни столбцы, ни строки нужные вообще не открыты. И она одна на весь Квик, сколько бы чего ни было открыто на разных вкладках.
 
Цитата
Владимир написал:
Александр, ТТТ здесь вообще ни при чём, хоть там ни столбцы, ни строки нужные вообще не открыты. И она одна на весь Квик, сколько бы чего ни было открыто на разных вкладках.
Нужно больше пояснений. А что же это такое? Где она, что это вообще такое?
 
Александр,Она в Квике, а на вкладках всего лишь отображаются какие-то её поля. У меня частенько скрипт прекрасно обслуживает те тикеры, которые вообще не включены в таблицу, а такие столбцы, как BID. OFFER LASTCHANGE и т.д. я вообще сроду туда не выводил. Даже если ТТТ вообще не будет открыта ни на одной из вкладок, программный доступ к её полям будет работать.
 
Цитата
Владимир написал:
Александр,Она в Квике
Т.е. даже не обязательно чтобы что-то вообще было открыто....  Хорошо, но сколько же инструментов в этой неосязаемой (невидимой даблице)? Их же там полно! Весь срочный рынок, фондовый рынок, а там куча различный ценных бумаг с ещё большим количеством параметров, которые могут меняться.... Как же их обрабатывать бедному скрипту?
 
Цитата
Александр написал:
 Т.е. даже не обязательно чтобы что-то вообще было открыто....  Хорошо, но сколько же инструментов в этой неосязаемой (невидимой даблице)? Их же там полно! Весь срочный рынок, фондовый рынок, а там куча различный ценных бумаг с ещё большим количеством параметров, которые могут меняться.... Как же их обрабатывать бедному скрипту?

s_mike уже ведь дал все ответы
https://forum.quik.ru/messages/forum10/message65525/topic7617/#message65525
 
Александр,  Я так понимаю, что инициировать обмен может либо действительно наличие тикера в видимой копии ТТТ либо обращение к ним программным способом. Типа, умный заказ. :smile:  
 
Либо явно открываете таблицу ттт с нужным параметром
Либо указываете заказ параметра в настройках терминала
Либо вызовом функций QLua подписывается на подписываетесь на получение параметров по определённым инструментам.
 
Либо вам повезло, и нужные параметры попали в умный заказ, если он включен
 
Цитата
swerg написал:
Либо явно открываете таблицу ттт с нужным параметром
что такое таблица ТТТ? ТТТ знаю, таблицу ТТТ не знаю. Открываете где? На той же вкладке где работает скрипт? Или в любой вкладке терминала?
 
Как отслеживать изменение цены предложения сразу по многим инструментам?
 
Цитата
Александр написал:
ТТТ знаю, таблицу ТТТ не знаю.
Ну ок, таблица ТТ. Зачем придирки?

Цитата
Александр написал:
Открываете где? На той же вкладке где работает скрипт? Или в любой вкладке терминала?
Уже ведь был ответ на этот вопрос.
 
Цитата
Александр написал:
Как отслеживать изменение цены предложения сразу по многим инструментам?
А как вы отслеживаете по одному?
 
Цитата
swerg Ну ок, таблица ТТ. Зачем придирки?
Я извиняюсь, мне для четкости понимания, я еще не совсем разбираюсь в терминологии чата. У одного ТТП (что такое?), у второго ТТТ, у третьего таблица ТТТ. Если чуть в сторону, меня сразу это вводит в заблуждение...

Цитата
Уже ведь был ответ на этот вопрос.
У кого, у Владимира? Так он бывает сам себе противоречит, например в #9 посте он пишет, что: "скрипт прекрасно обслуживает те тикеры, которые вообще не включены в таблицу, а такие столбцы, как BID. OFFER LASTCHANGE и т.д. я вообще сроду туда не выводил.", а в #12 посте он пишет, что: " инициировать обмен может либо действительно наличие тикера в видимой копии ТТТ", а также либо пишет словосочетания неуверенности в виде: "Я так понимаю..."

Цитата
swerg А как вы отслеживаете по одному?
Нет, не по одному. Я так понимаю в OnParam вываливается изменения всех параметров в бумагах срочного рынка и фондового рынка, а дальше я уже путем применения фильтров отлавливаю нужный мне по той или иной бумаге. Однако мне кажется, что в таком количестве информации мой скрипт либо пропускает некоторые изменения параметров, либо срабатывает со значительным запаздыванием.
А как обрабатывает изменения параметров в колбеке OnParam прогрессивная часть человечества на данном форуме?
 
Александр, Где Вы увидели у меня противоречие? Скрипт прекрасно обслуживает те тикеры, которые вообще не включены в таблицу, программным доступом, и это тысячекратно доказано экспериментально. Инициировать обмен может действительно наличие тикера в видимой копии ТТТ - для того, чтобы в этом убедиться, даже скрипт не нужен. А "Я так понимаю" означает, что я понятия не имею, как там что реализовано, и понимаю это ТАК. А прогрессивная часть человечества на данном форуме вообще никак не использует OnParam.
 
Цитата
Владимир
Где Вы увидели у меня противоречие? Скрипт прекрасно обслуживает те тикеры, которые вообще не включены в таблицу, программным доступом, и это тысячекратно доказано экспериментально. Инициировать обмен может действительно наличие тикера в видимой копии ТТТ - для того, чтобы в этом убедиться, даже скрипт не нужен.
Итак:
1) Через ТТТ;
2) программным доступом.

Программным доступом - это путем подписки через CreateDataSource?

Цитата
прогрессивная часть человечества на данном форуме вообще никак не использует OnParam
А что же она использует, не просветите?
 
Цитата
Александр написал:
Цитата
nikolz написал:
Цитата
   s_mike@rambler.ru написал:
открыта ТТТ, со столбцами параметры которых хотелось бы получать?
Разрешите несколько вопросов:
1) Т.е. если я открою один инструмент со столбцом "OFFER" в ТТТ, то в колбек OnParam будет приходить только изменение этого параметра или не так?
2) Изменение параметров из ТТТ будет приходить только с той вкладки на которой она расположена (и одновременно на этой вкладке запущен скрипт) или, если на другой вкладке открыта другая ТТТ то и с нее будет приходить изменение параметров ценных бумаг?
3) Уменьшение изменяемых параметров в ТТТ по ценным бумагам уменьшит размер приходящего блока и увеличит скорость работы скрипта?
1. В колбек будет приходит информация по всем параметрам, на которые подписан терминал в текущий момент. Поскольку вы никогда не знаете, на что подписан сейчас ваш терминал, Вы должны фильтровать только те колбеки, которые вам нужны.
2. Вкладки не имеют значения от слова вообще.
4. В теории да. На практике нет.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Александр
Программным доступом - это путем подписки через CreateDataSource?
Хм, но CreateDataSource нужен для получения параметров свечей из графика и если свеча сформировалась, значит сделка уже произошла. Нет, это не то...
 
Александр, Программным доступом - это путём обращения к ТТТ через getParamEx. А прогрессивная часть человечества использует OnTrade.
 
Цитата
Владимир написал:
Александр, Программным доступом - это путём обращения к ТТТ через getParamEx.
Ну, через GetParamex и я обращаюсь к параметрам ТТТ... Я думал каким-то другим образом. Спасибо Владимир.
 
Цитата
Владимир написал:
А прогрессивная часть человечества использует OnTrade
Так этот колбек вызывается при "получении сделки или при изменении параметров существующей сделки". Т.е. при совершении сделки. А мне зачем это? Мне нужно узнать лучшую цену предложения (продажи) и ее изменение, в случае, если цена предложения изменилась.... Или я что-то не понимаю...
 
Цитата
Александр написал:
Цитата
Александр
Программным доступом - это путем подписки через CreateDataSource?
Хм, но CreateDataSource нужен для получения параметров свечей из графика и если свеча сформировалась, значит сделка уже произошла. Нет, это не то...
Вы все правильно понимаете.
-----------------------------
Немного дополню свой ответ ранее.
---------------------
В терминале КВИК понятие таблица относится к двум сущностям.
-------------------------------
Например , TTT называют внутреннее хранилище параметров  инструментов, которые можно разделить на статические и динамические .
и ТТТ называют таблицу отображения этих параметров на экране монитора.
---------------
Есть два режима заказа инструментов и их параметров с сервера
выбор режима определяется в настройках терминала.
На закладке "Формировать список инструментов и параметров"
---------------
В зависимости от выбранного режима, открытие ТТТ на экране, либо будет влиять, либо нет.
 
Цитата
Александр написал:
Цитата
Владимир написал:
А прогрессивная часть человечества использует OnTrade
Так этот колбек вызывается при "получении сделки или при изменении параметров существующей сделки". Т.е. при совершении сделки. А мне зачем это? Мне нужно узнать лучшую цену предложения (продажи) и ее изменение, в случае, если цена предложения изменилась.... Или я что-то не понимаю..
Все верно.
 
Александр,
еще Вы можете получить лучшую цену предложения из стакана, откуда она собственно и берется в TTT.
но это более затратный способ получения.
----------------
 
есть еще таблица обезличенных сделок. из нее берется Last.
--------------
 
таким образом TTT это набор параметров инструментов из таблиц обезличенных сделок, стаканов , листинга торгуемых инструментов, фьючерсных контрактов
--------------
Этот набор формируется через определенные биржей интервалы. Сервер биржи собирает эти наборы в пакеты и отправляет всем брокерам,
а сервер брокера перенаправляет эти срезы клиентам в соответствии с их подпиской.
----------------
Очевидно, что в TTT будут пропуски информации. кроме того, как указывал ранее, информацию их пакетов в терминале будет пропускать Ваш скрипт, если Вы используете sleep.
При этом наиболее часто Вы будете обрабатывать самый старый параметр инструмента т е записанный первым в пакет.
Остальные параметры, которые будут поступать с интервалом примерно 0.000005 сек Вы просто пропустите.
---------------------
В документации QLUA есть пример использования таблицы для создание очереди параметров. изучите его.
 
Цитата
Александр написал:
У одного ТТП (что такое?), у второго ТТТ, у третьего таблица ТТТ. Если чуть в сторону, меня сразу это вводит в заблуждение...
Одно и тоже. Квик переименовал эту таблицу, потому еызывабт по-разному: таблица текущих параметров ттп и таблица текущих торгов ттт. (по-моему, "параметров" было корректрее название)


Цитата
У кого, у Владимира? Так он бывает сам себе противоречит,
Владимира не читай, он чушь пишет и сказки рассказывает про книжки, которых никто не видел.
s_mike читай внимательно что пишет. Точно и по делу.


Цитата
Я так понимаю в OnParam вываливается изменения всех параметров в бумагах срочного рынка и фондового рынка, а дальше я уже путем применения фильтров отлавливаю нужный мне по той или иной бумаге. Однако мне кажется, что в таком количестве информации мой скрипт либо пропускает некоторые изменения параметров, либо срабатывает со значительным запаздыванием.
А вот это "кажется" чем подкреплено?
Ну и потом, про срезы данных и пакеты вам до этого сообщения уже писали. Впечатление, что вы не читаете ответы.

А ещё есть OnQuotes обработчик, это про стакан. Если речь про параметры bid/offer, то в стакане информация обновляется чаще, чем в ттт.
 
Александр, Совершенно верно: этот колбек вызывается при совершении сделки. Если Вы сделок не планируете совершать, он Вам не нужен. А всему прогрессивному человечеству очень даже пригодится. А узнать лучшую цену предложения проще всего (и эффективнее всего) узнать именно в ТТТ, параметр OFFER. Лезть для этого в стакан - полнейшая глупость. Равно как и в ТОС. И вообще, любая подписка - это тормоза и глюки. И ничего более.

swerg, Ха-ха-ха! Лапуль, уж чья бы корова мычала насчёт "чушь пишет". У меня чуть ли не у единственного из вашей шоблы скрипт тыщу лет как работает и зарабатывает. :wink:  
 
Цитата
nikolz написал:
если Вы используете sleep
А есть пример без использования sleep?)
 
Цитата
Александр
А есть пример без использования sleep?)
А каково оптимальное значение sleep в функции main?
 

Вопрос по ТТТ, как говорили выше, она формируется срезами и пакетами.

Допустим пакет с ценой LAST отправляется каждые 100 мс. А в нем 10 срезов, каждый 10мс.Так вот, эти 10 мс формируются по простому, просто как есть на «сейчас».  Либо второй вариант, в эти 10 мс  (за 10мс) можно запихнуть Hi, Low, Now. По сути, по мотиву свечей, пропуск данных нивелирует Мин/Макс за период обновления.

 
Цитата
Александр написал:
Цитата
nikolz написал:
если Вы используете sleep
А есть пример без использования sleep?)
можно sleep не использовать если комп многоядерный, но тогда  одно ядро будет занято и при отсутствии  сделок.
Например,  В тесте у меня Загрузка без слипа примерно 30% со sleep(1) 3-10%
------------------
если делать совсем правильно, то надо использовать события ядра OC или атомарные операции совместно с Shared memory
------------------
Я использую внутри скрипта события ядра, а между скриптами и приложениями  Shared memory . Загрузка процессора не более 3%.
 
Цитата
AndyWise написал:
Вопрос по ТТТ, как говорили выше, она формируется срезами и пакетами.  Допустим пакет с ценой LAST отправляется каждые 100 мс. А в нем 10 срезов, каждый 10мс.Так вот, эти 10 мс формируются по простому, просто как есть на «сейчас».  Либо второй вариант, в эти 10 мс  (за 10мс) можно запихнуть Hi, Low, Now. По сути, по мотиву свечей, пропуск данных нивелирует Мин/Макс за период обновления.
Срез - это значения параметров на момент среза
Last - это цена последней сделки на момент среза.
Если в пакете несколько срезов то и цен несколько. Актуальная всегда последняя.
Hi, Low - это понятия относятся к интервалу наблюдения  Например торговый день или свеча с интервалом 1 минута.
TTT к этому не имеет никакого отношения.
Страницы: 1
Читают тему
Наверх