Всем доброго времени суток.
Пытаюсь обрабатывать событие QuotesChanged Объекта MarketDepth Обработчику передается два параметра в которых как я понял содержится информация об изменяемой котировке. так вот если первый параметр с первым параметров все более или менее просто. то второй никак не могу побороть. в документации про него кроме типа ничего не нашел. да и примерах нигде не освещается эта тема. Расскажите подробней что представляет из себя этот параметр точнее как его крамотней окучить. и как я понял событие будет возникать для каждой строчки стакана? а если не затруднит то приведите какой-нить пример обработки этого события и событий UpdatingStarted и UpdatingFinished (именно объекта MarketDepth)
Заранее спасибо
p.s. Еще один вопрос в догонку. Если в квике поставить разреженный режим стакана то по dde все равно передается обычный (тоесть с выкинутыми пустыми ценами). это фишка самого квика? он их вырезает или библиотека?
Comentários (16)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Не освещается, потому что устаревшее поведение. В новой версии нет таких параметров. Надо использовать ITrader.QuotesChanged.
Спасибо. Я наоборот решил что событие для каждого отдельного стакана - это новая фишка. а общее в Trader - это старое. Тогда попутный вопрос так как даже новое поведение особо не описывается ни документации ни в примерах. в обработчик Trader.QuotesChanged коллекция из двух (или из скольки?) стаканов, один с только с теми котировками которые добавились, а другой которые исчезли,а если котировка изменилась (изменился объем) то она будет в обоих стаканах? Или я что-то не так понял? Заранее спасибо
В этом событие, как и во всех других событиях ITrader, коллекция объектов. В данном случае, коллекция стаканов как они есть в торговой системе. Тоесть, ни то что было до этого, ни изменения. А просто сами стаканы.
Самому.
Решил не заводить новую тему, так как вопрос очень соотвествует текущей.
Вообщем обрабатываю я событие получаю стакан при изменении - начинаю с ним работать но проблема в том что пока я обрабатываю биды в том числе лучший бид, аски могут поменяться до такой степени что значение лучшего бида станет выше лучшего аска.(потомучто я получаю не текущий "снимок" стакана а просто ссылку на массив где постоянно все меняется. Сказать что я сильно медленно обрабатываю стакан - нет не медленно на одну полную обработку события об изменении стакана уходит около 30микро (не мили а микро) секунд. но даже за это время на активном рынке бывают ситуации когда стакан успевает сильно измениться. Как вариант сделать такой снимок самому но может в библеотеке есть уже такой функционал? да и идеально сделать снимок не получиться такак как опять есть два варианта как сделать слепок интересущей меня информации и оба варианта состоят из как минимум двух этапов между которыми стакан опять может измениться
MarketDepth.Clone пробовали в самом начале делать?
Нет не пробовал. так как мне кажеться это будет медленно. а я борюсь за каждую ну или каждую микросекудну. надо попробовать и замерить
p.s. Попробовал. 3 микросекунды. нормально. хотя конечно если сравнить с остальным кодом который пробегает по всему стакану и не просто пробегает а анализирует за 30 микросекунд. то 10 процентный прирост времени только на одной строчке кода выглядит мягко говоря странно 😒. Но это я только проверил саму функцию клон. смотреть что происходит со стаканом - клонируется ли нормально или все равно успевает изменится еще не смотрел
А что за брокер и инструмент, что дает такую скорость обновления стакана?
Это на РИМ1, но там дело не в скорости обновления. Так как даже если брокер обновляет стакан раз в секунду. а я 20 раз в секунду, то существует большая вероятность (примерно 1 к 20) что я начну обновлять стакан до обновления брокером, а закончу после. вот только почему такие ситуации получаются очень часто...
Вот это не понял. Вы как то сами обновляете стакан?
А зачем это делать? Вы 20 раз в секунду проделываете одно и то же.
есть на это несколько причин - первая и очевидная это как можно быстрее среагировать на изменение в стакане. Но это к делу не относится ведь даже если считывать 1-2 раза в секунду все равно буду попадать на "обновление стакана в процессе чтения". Ну да ладно проблем конечно это доставляет, но не критично. добавлю пару проверок и всего делов. просто думал может кто-то уже сталкивался с такой проблемой и както победил ее.
Самое быстрое - это через MarketDepth.QuotesChanged.