sam063rus пишет: То есть, нужны мгновенные выборки (число сделок в секунду) с дискретностью 1 сек.
Это гораздо более сложная задача. С использованием только OnAllTrade или OnParam ее не решить, т.к. они срабатывают не по расписанию. Я бы не стал заморачиваться ее решением, так как на мой взгляд, нет ничего страшного, если при очень низкой активности на рынке мы получим с запозданием данные за последнюю секунду, в которой еще были сделки перед полным затишьем (мы можем просто их проигнорировать или усреднить).
Цитата
sam063rus пишет: задача бы значительно упростилась, имей мы коллбек: OnServerTime
Не думаю, так как время поступающих в терминал сделок отличается от времени сервера (они всегда запаздывают, больше или меньше). Да и время сервера может не полностью совпадать со временем биржи, которое содержится в информации о сделке.
ладно, думаю тему пора закрывать бо как такую задачу невозможно решить впринципе: всегда будет какой-то процент отставших сделок (в рамках целого класса) и он будет искажать, а точнее, занижать показания.
в рамках одной бумаги - ещё можно попробовать, а потом суммировать по каждой бумаге в один счётчик, но это будет серьёзным ударом по быстродействию квика бо как это всё будет в главном потоке квика.
Но если у Вас есть большое желание получать на вялом рынке счетчик сделок без задержки, то OnParam в таком случае будет более полезен, благодаря тому, что он срабатывает не только на сделки, но и на изменение еще множества параметров. Однако, тогда встанет проблема с точностью вычислений.
Появилась наконец сходимость между ТВС и ТТП. Больше нет пропущенных параметров. Для этого надо было всего лишь "удалить галочку":
Цитата
«Интервал обновления данных с текущим состоянием» – управление периодичностью обновления данных в Таблице текущих значений параметров:
«Запрашивать данные раз в … сек» - данный признак позволяет отключить непрерывное получение данных для Таблицы текущих значений параметров. При включенном признаке информация в таблице обновляется периодически через установленный интервал, в секундах. Максимальный период обновления – 60 секунд. Признак включен по умолчанию.
В итоге, коллбек OnParam превратился в OnAllTrade и, даже утёр ему нос))) Таким образом, концепция единого потока данных - всё же верна. Также, раз OnParam настолько хорош - появилась вполне оправданная и доказанная возможность создавать на его основе "синтетические коллбеки" по интересующим бумагам и параметрам.
похоже без галок с квиком - никак. Теперь придётся хранить вместе с файлом скрипта ещё и "readme" по обязательной используемой комбинации галок. Маразм однако. Ну хоть так...
sam063rus, Я попробую дать Вам ответы на Ваши вопросы, хотя ранее я уже это написал, но повторение... ------------------------------------------- Подобные исследования я проводил лет 5 назад. тогда и дискуссия подобная была на форуме. В результате получилось следующее: ---------------------- 1) ТТП - это актуальные значения параметров инструментов ----------------------- Что это означает для Вашей задачи? --------------------- Означает следующее: Если в какую-то секунду произошло 100 сделок , а в результате каких-то задержек(очередь на сервере, задержки каналов связи и т д) мы получаем ТТП в конце этой секунды (пусть даже несколько одновременно поступивших срезов) то в ТТП т е в onParam мы увидим лишь последнюю сделку. -------------------------- Это первая причина, по которой вашу задачу НЕВОЗМОЖНО корректно решить через ТТП --------------------------------------- Вторая причина в том, что ТТП реагирует на любые актуальные изменения параметров инструментов, а не только на совершение сделок. Это приводит к большим нагрузкам на комп при обработке колбека оnParam. И в Вашей задаче к ненужным тратам мощности компа ------------------------------------- третья причина - это то, что в onParam не приходит информация о том, какой именно параметр изменился. Для того, чтобы узнать надо ходить в хранилище. А это очень затратный процесс. ----------------------------------------------- Резюме: Есть лишь одно корректное решение Вашей задачи. - использовать onAllTrade. Основные идеи, как это сделать, я вам написал ранее. ------------------------ Успехов
Старатель пишет: Кстати, со временем наблюдается всё увеличивающаяся разница между количеством сделок, посчитаных по OnAllTrade и OnParam (на демо не было). Очевидно, это из-за того, что в ТТП учитываются сделки, которые не отображаются в ТВС.
В Приложении "Значения полей параметров (столбцов) Таблицы текущих значений, Таблицы истории, Таблицы изменений параметров" описан параметр "Количество внесистемных сделок за сегодня". Но у себя в ТТП я такого параметра не нахожу. Плохо искал?
Надо делать так, как надо. А как не надо - делать не надо.
Николай Камынин пишет: ------------------------------------- третья причина - это то, что в onParam не приходит информация о том, какой именно параметр изменился. Для того, чтобы узнать надо ходить в хранилище. А это очень затратный процесс. -----------------------------------------------
Если использовать CreateDataSource, тогда не придется ходить в хранилище?
sam063rus пишет: в очередной раз, "Арка" самоустранилась (лень читать топики, "много букАв" и всё такое). В очередной раз, я услышал от Михаила Булычева его "Что это такое?". Он ещё любит говорить "непонимаю о чём Вы?" после долгого обсуждения, чтобы вконец отбить всё желание, что-то обсуждать, а начать пытаться искать ответы другими способами...
Добрый день, уважаемый Кирилл Владимиров. Я много чего люблю, в том числе я люблю когда оперируют терминами, которые понятны всем участникам обсуждения. Термин "сходимость", по поводу которого я задал вопрос, можно еще понять применительно к бесконечному ряду, но никак не для двух функций обратного вызова. Теперь насчет этих двух функций. Нельзя говорить о том, что одна получает информацию быстрее другой. Возможно много различных ситуаций и вводных условий, когда OnAllTrade будет быстрее OnParam отдавать информацию о последней цене и наоборот. Это может зависеть от особенностей работы торговой системы, настроек терминала, сервера и даже от интенсивности торгов. В общем случае мы не готовы говорить о том, что будет оптимальнее для решения Вашей задачи.
при всём уважении, ... но это сугубо, лично, Ваша точка зрения, которая ничем не подкреплена и как Вы правильно заметили у этого термина много и других значений.
насчёт имени и фамилии - я не давал Вам своего согласия на сбор и обработку моих персональных данных, равно как их публикацию. Напоминаю Вам, что закон защищает мои персональные данные. Согласитесь, Вы б не хотели, чтоб достоянием общественности стали все Ваши e-mail, логины в соц. и других сетях? Я безусловно "рад", что Вы настолько прониклись интересом к моей персоне, что уже третий раз Вам приходится об этом напоминать. Очевидно - меня уже вся "Арка" знает:)))) Возможно Вы подумываете над тем, чтоб принять меня на работу??:)))))))))
Касательно по существу темы топика: Михаил, благодаря пользователям - я уже нашёл ответы на свои вопросы. Но, буду безмерно рад, если Вы также уделите своё внимание и другим моим топикам. Насчёт моей, порой размытости формулировок: Вы же понимаете, что я по определению не могу быть с Вами всегда откровенным дабы не быть скомпрометированным. Порой, чтоб спросить у Вас (как и у tech support) то, что действительно надо - приходится прибегать к методам социальной инженерии. Да Вы наверно это и так уже давно поняли.