Таблциа Истории

Страницы: Пред. 1 2 3 4 След.
RSS
Таблциа Истории
 
Просто непонятно в таком случае, как система вообще узнает об изменении параметра, если она отслеживает значения параметров лишь срезами через определенные промежутки времени.
 
квик не предназначен для того, чтоб судить об изменении параметра какой-либо таблицы исходя из изменения только ОДНОЙ таблицы. Если нужен действительно безсбойный вариант - надо принимать во внимание и другие смежные таблицы. Кроме того, сама биржа частенько чудит, выдавая пользователям полный бред, а потом, мило извиняется (НО!!!! сделки не анулирует) и деньги не возвращает., а говорит, что это просто сбой, увы-с. Брокеры в тоже время, говорят тоже самое: - это биржа, детка и что, мы должны учитывать риски.
 
Цитата
Sergey Gorokhov пишет:

Цитата
Дмитрий   пишет:
Но это произошло в промежутке между получением двух срезов ТТП, поэтому в итоге изменение значения этого параметры мы в терминале не увидим.
Вот именно что ВИЗУАЛЬНЫХ изменений мы не увидим, но изменения БЫЛИ поэтому будет две строки

Если изменения были, почему мы не увидим их в таблице историй ?? Ведь изменения произогли во время среза. Если же изменение произошли в промежутками между срезами, то система, как я понимаю, не должна знать о изменении/
 
Цитата
Дмитрий пишет:
...как система вообще узнает об изменении параметра...
а нет никакой системы, - есть лишь обычная программа-сервер, которая мониторит изменение биржевого потока и выдаёт его клиентам. именно поэтому, не все колбеки срабатывают и учитывают полное изменение данных. и именно поэтому возможно проскальзывание.
 
если же давать пользователям более качественный вывод в таблицы - то, это неизбежно будет намного медленее и стало быть менее релевантно текущей ситации.
 
Цитата
sam063rus пишет:
есть лишь обычная программа-сервер, которая мониторит изменение биржевого потока и выдаёт его клиентам
Это надо понимать так, что когда речь идет о получении значений ТТП срезами, то это касается лишь передачи данных от сервера QUIK в терминал, в то время как сам сервер QUIK получает с биржи и отслеживает абсолютно все изменения этих параметров непрерывно, а не срезами?
 
Цитата
Optimus1 Optimus1 пишет:
Если изменения были, почему мы не увидим их в таблице историй ?? Ведь изменения произогли во время среза. Если же изменение произошли в промежутками между срезами, то система, как я понимаю, не должна знать о изменении/
Если по простом, например, до среза было 100 заявок, произошел срез он показал в таблице 100 заявок. Потом произошло увеличение стало 101 и тут же уменьшение, опять 100. Для программы это означает что данные изменились значит их нужно показать, вот он и показывает цифру 100.
 
Цитата
Дмитрий пишет:
абсолютно все изменения этих параметров непрерывно
не может этого делать по определению.
 
Цитата
Sergey Gorokhov пишет:
Если по простом, например, до среза было 100 заявок, произошел срез он показал в таблице 100 заявок. Потом произошло увеличение стало 101 и тут же уменьшение, опять 100. Для программы это означает что данные изменились значит их нужно показать, вот он и показывает цифру 100.
Это понятно. Непонятно, как программа узнает об этих изменениях, если она получает данные только срезами, а эти изменения произошли в промежутке между срезами и в конечном счете на момент получения второго среза ничего не изменилось.
 
Цитата
Дмитрий пишет:
Цитата
sam063rus пишет:
есть лишь обычная программа-сервер, которая мониторит изменение биржевого потока и выдаёт его клиентам
Это надо понимать так, что когда речь идет о получении значений ТТП срезами, то это касается лишь передачи данных от сервера QUIK в терминал, в то время как сам сервер QUIK получает с биржи и отслеживает абсолютно все изменения этих параметров непрерывно , а не срезами?
Никто ничего не "мониторит" То есть, не существует какого-либо алгоритма определения "изменились данные" или это "предыдущее значение". Раз в период, с биржи приезжает кучка параметров. Эта кучка отправляется от сервера клиенту. Клиент в свою очередь, обновляет только те данные которые приехали, а те которые не приехали оставляет в предыдущем значении
 
она получает пропущенные между срезами данные. в результате, идёт рассинхронизация между тем. что реально есть и тем, что должно быть. что не трудно заметить по очерёдности срабатывания колбеков.
 
Цитата
Дмитрий пишет:
Непонятно, как программа узнает об этих изменениях, если она получает данные только срезами, а эти изменения произошли в промежутке между срезами и в конечном счете на момент получения второго среза ничего не изменилось.
Раз в период, с биржи приезжает кучка параметров. Эта кучка отправляется от сервера клиенту. Клиент в свою очередь, обновляет только те данные которые приехали, а те которые не приехали оставляет в предыдущем значении. раз в промежуток между срезами были изменения, то биржа отправит эту самую кучку. А то что цифры в этом изменении фактически остались те же никто не проверяет
 
Цитата
sam063rus пишет:
она получает пропущенные между срезами данные
Цитата
Sergey Gorokhov пишет:
Раз в период, с биржи приезжает кучка параметров. Эта кучка отправляется от сервера клиенту.
Значит, в этой кучке содержатся не только текущие значения параметров, но и все их изменения, произошедшие за время с момента прихода предыдущей кучки?
 
Цитата
Sergey Gorokhov пишет:
А то что цифры в этом изменении фактически остались те же никто не проверяет
Кстати, если интересно, отследить параметр который изменился, все таки можно.
Если построить по каждому из параметров, отдельную таблицу истории. Для каждого параметра своя таблица. Потом посмотреть по времени, какой из параметров прислал два одинаковых значения подряд тот и виноват
 
Цитата
Sergey Gorokhov пишет:
Если построить по каждому из параметров, отдельную таблицу истории.
слишком большие накладные расходы, снижение быстродействия.
 
Цитата
Sergey Gorokhov пишет:
раз в промежуток между срезами были изменения, то биржа отправит эту самую кучку
Или все же биржа отправляет в этом случае только текущие (последние) значения параметров?
 
Цитата
sam063rus пишет:
слишком большие накладные расходы, снижение быстродействия.
Но это же нужно только для ответа на вопрос автора. Никто не заставляет держать кучу таблиц одновременно. к тому же на производительность это не должно влиять только на удобство просмотра.

Цитата
Дмитрий пишет:
Или все же биржа отправляет в этом случае только текущие (последние) значения параметров?
Только текущие значения.
 
Из всего вышесказанного я понял, что от биржи приходят только значения параметров, по которым были зафиксированы изменения в промежутке между двумя интервалами времени (срезами).
Можно ли в таком случае добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции?
Ведь в противном случае нам приходится лишний раз вызывать функцию getParamEx для получения значений каждого интересующего нас параметра и последующего анализа их значений. В итоге может оказаться, что интересующие нас параметры не изменились, но мы проделали в скрипте кучу ненужной работы и тем самым создали лишнюю нагрузку на систему.
 
Цитата
Дмитрий пишет:
добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Дмитрий пишет:
добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
А пока данное пожелание не реализовано, разумно ли вместо OnParam использовать функции CreateDataSource и SetUpdateCallback на каждый из отслеживаемых параметров? Не окажет ли это негативного влияния на производительность?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Серж пишет:
Не окажет ли это негативного влияния на производительность?
Сдается мне, что такой метод работы будет отжирать оперативную память на хранение отдельной истории за текущий день по каждому отслеживаемому параметру.
 
Неправильное предположение. Память дополнительнл расходоваться не будет
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Только что проверил - расходуется.
Как минимум порядка 50 байт на одно изменение параметра.
Иногда это может быть незаметно, но если отслеживать много параметров по нескольким фьючерсам, причем таких параметров, значения которых меняются очень часто (до 10 раз в секунду) - то расход памяти может достигать порядка 10 мегабайт на каждый параметр, и эту величину надо будет еще умножить на количество анализируемых фьючерсов.
 
Тут правда надо отметить, что я использовал тиковый интервал при вызове функции CreateDataSource.
 
Поскольку нас интересует только изменение текущих значений параметров, то можно наверное вместо тикового задать часовой интервал. Тогда память действительно почти не будет расходоваться.
 
Цитата
Серж пишет:
А пока данное пожелание не реализовано, разумно ли вместо OnParam использовать функции CreateDataSource и SetUpdateCallback на каждый из отслеживаемых параметров? Не окажет ли это негативного влияния на производительность?
Здравствуйте,
На производительность не должно оказать влияния, но с оговоркой что речь идет о разумном количестве заказываемых параметров.
 
Sergey Gorokhov, а какой временной интервал лучше при этом заказывать?
 
Цитата
Constantin Constantin пишет:
Sergey Gorokhov , а какой временной интервал лучше при этом заказывать?
Такой который даст Вам исчерпывающую информацию для анализа.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Constantin Constantin пишет:
Sergey Gorokhov , а какой временной интервал лучше при этом заказывать?
Такой который даст Вам исчерпывающую информацию для анализа.
Речь в данном случае идёт о получении изменения параметров или таблице истории изменений. Разве для этого имеет значение интервал (не считая тикового)?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Серж пишет:
ечь в данном случае идёт о получении изменения параметров или таблице истории изменений. Разве для этого имеет значение интервал (не считая тикового)?
речь идет про SetUpdateCallback.
Для него интервал не имеет значения (не считая тикового).
Поэтому и ответ "на свое усмотрение"
 
Цитата
Sergey Gorokhov пишет:
речь идет про SetUpdateCallback.
Для него интервал не имеет значения (не считая тикового).
А в чем разница работы SetUpdateCallback при выборе тикового интервала и при выборе любого другого?
 
Цитата
Дмитрий пишет:
Цитата
Sergey Gorokhov пишет:
речь идет про SetUpdateCallback.
Для него интервал не имеет значения ( не считая тикового ).
А в чем разница работы SetUpdateCallback при выборе тикового интервала и при выборе любого другого?
Тиковые данные, это по сути Таблица Всех Сделок только в виде графика, а интервальные данные это уже сжатая информация с сервера. От сюда возникает гигантская разница в количестве. Интервальных данных может быть максимум 60*24+3000=4440, а тиковых неограниченное количество. Из за этого при работе с тиковыми данными могут быть тормоза
 
Цитата
Sergey Gorokhov пишет:
Интервальных данных может быть максимум 60*24+3000=4440
а теперь по-подробней, что такое 60 и 24
 
Цитата
sam063rus пишет:
а теперь по-подробней, что такое 60 и 24
Видимо, число минут в часе и торговых часов в сутках (если бы торги шли круглосуточно).
 
Здравствуйте,

Я что то запутался, неделю назад выгружал таблицу истории, там соотвесвенно был стобец время последней сделки - и в этом столбце показывалось время последней сделки, как они шли с самого начла торгов, а чейчас выгружаю, а там реально показано во всех строках с самого начала торгов время последней сделки - 18:49:42.    Может я что то не так делаю ?
 
Цитата
Дмитрий пишет:
Из всего вышесказанного я понял, что от биржи приходят только значения параметров, по которым были зафиксированы изменения в промежутке между двумя интервалами времени (срезами).
Можно ли в таком случае добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции?
Ведь в противном случае нам приходится лишний раз вызывать функцию getParamEx для получения значений каждого интересующего нас параметра и последующего анализа их значений. В итоге может оказаться, что интересующие нас параметры не изменились, но мы проделали в скрипте кучу ненужной работы и тем самым создали лишнюю нагрузку на систему.
Добрый день,

Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что мы также считаем целесообразным его реализацию и постараемся включить в план доработок при выпуске одной из следующих версий нашего ПО.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Серж пишет:
А пока данное пожелание не реализовано, разумно ли вместо OnParam использовать функции CreateDataSource и SetUpdateCallback на каждый из отслеживаемых параметров? Не окажет ли это негативного влияния на производительность?
Здравствуйте,
На производительность не должно оказать влияния, но с оговоркой что речь идет о разумном количестве заказываемых параметров.
Уделив этому вопросу некоторое время (на самом деле, потратив кучу времени), я пришёл к выводу, что созданный колбек по какому-либо параметру из ТТП через SetUpdateCallback всё равно будет вызываться при изменении любого параметра по данной бумаге. Т.е., получим тот же самый OnParam, только по конкретной бумаге. Но после получения колбека всё равно нужно проверять, был ли вызван этот колбек по изменению отслеживаемого параметра.

А теперь внимание вопрос: Sergey Gorokhov, почему вы не сказали, что для решения данного вопроса создание колбека через SetUpdateCallback не имеет смысла?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
что для решения данного вопроса
не совсем понял, о каком именно вопросе идет речь?
 
Sergey Gorokhov, вы меня тролите что ли?
Цитата
Серж пишет:
Цитата
Sergey Gorokhov пишет:
Цитата
Дмитрий пишет:
добавить в функцию OnParam(STRING class_code, STRING sec_code) еще один параметр, сообщающий, изменение значений каких именно параметров ТТП привело к вызову этой функции
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
А пока данное пожелание не реализовано, разумно ли вместо OnParam использовать функции CreateDataSource и SetUpdateCallback на каждый из отслеживаемых параметров? Не окажет ли это негативного влияния на производительность?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
всё равно будет вызываться при изменении любого параметра по данной бумаге
так не должно быть. Приведите пример исследований
 
выскажу своё личное мнение... )))))

я думаю, стоит задать вышеописанные вопросы непосредственно Михаилу Булычеву. А Сергею Горохову - зарегистрировать очередное несбыточное пожелание о том, чтоб в документации отразить детальную схему работы коллбеков и функции CreateDataSource. Но только детальную. Иначе, срач на форуме, равно как и число "бесполезных топиков" - нисколько не убавится :)))))
 
Цитата
sam063rus пишет:
выскажу своё личное мнение... )))))

я думаю, стоит задать вышеописанные вопросы непосредственно Михаилу Булычеву. А Сергею Горохову - зарегистрировать очередное несбыточное пожелание о том, чтоб в документации отразить детальную схему работы коллбеков и функции CreateDataSource. Но только детальную. Иначе, срач на форуме, равно как и число "бесполезных топиков" - нисколько не убавится ))))
Михаил не является сотрудником поддержки и отвечать на Ваши вопросы совсем не обязан, так что Вам придется вести диалог со мной.
Если Вас не устраивает корректность моих ответов готов выслушать предметную критику.
 
Цитата
Sergey Gorokhov пишет:
Михаил не является сотрудником поддержки и отвечать на Ваши вопросы совсем не обязан, так что Вам придется вести диалог со мной.
Если Вас не устраивает корректность моих ответов готов выслушать предметную критику.
звучит, как будто я Вас - обидел своим предложением... :)))

если так - то искренне, извиняюсь...
 
Цитата
"Sergey Gorokhov пишет:
Цитата
Старатель пишет:
всё равно будет вызываться при изменении любого параметра по данной бумаге
так не должно быть. Приведите пример исследований
Дополнительно, сообщите установлена или нет настройка в меню Настрйоки - Основные - Программа - Получение данных, опция "Запрашивать данные раз в.. " ?
 
Цитата
Sergey Gorokhov пишет:
Цитата
"Sergey Gorokhov пишет:
Цитата
Старатель пишет:
всё равно будет вызываться при изменении любого параметра по данной бумаге
так не должно быть. Приведите пример исследований
Дополнительно, сообщите установлена или нет настройка в меню Настрйоки - Основные - Программа - Получение данных, опция "Запрашивать данные раз в.. " ?
Уточнений не требуется, ситуацию удалось воспроизвести, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Код
  tDS = CreateDataSource(sClassCode, sSecCode, INTERVAL_TICK, 'OPEN')
  tDS:SetUpdateCallback(function(nIndex) PrintDbgStr(tostring(tDS:C(nIndex))) end) 
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Sergey Gorokhov пишет:
Раз в период, с биржи приезжает кучка параметров. Эта кучка отправляется от сервера клиенту. Клиент в свою очередь, обновляет только те данные которые приехали, а те которые не приехали оставляет в предыдущем значении. раз в промежуток между срезами были изменения, то биржа отправит эту самую кучку.
Биржа отправляет всем брокерам одинаковые параметры? Т.е. временные "срезы" для всех брокеров одни?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
раз в промежуток между срезами были изменения, то биржа отправит эту самую кучку.
нет, разные.
 
Цитата
Старатель пишет:
Биржа отправляет всем брокерам одинаковые параметры? Т.е. временные "срезы" для всех брокеров одни?
нет, разные
 
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Биржа отправляет всем брокерам одинаковые параметры? Т.е. временные "срезы" для всех брокеров одни?
нет, разные
Получается на бирже ведётся таблица истории для каждого подключённого к ней аккаунта?
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 2 3 4 След.
Читают тему
Наверх