Всем доброго времени суток.
Пытаюсь обрабатывать событие QuotesChanged Объекта MarketDepth Обработчику передается два параметра в которых как я понял содержится информация об изменяемой котировке. так вот если первый параметр с первым параметров все более или менее просто. то второй никак не могу побороть. в документации про него кроме типа ничего не нашел. да и примерах нигде не освещается эта тема. Расскажите подробней что представляет из себя этот параметр точнее как его крамотней окучить. и как я понял событие будет возникать для каждой строчки стакана? а если не затруднит то приведите какой-нить пример обработки этого события и событий UpdatingStarted и UpdatingFinished (именно объекта MarketDepth)
Заранее спасибо
p.s. Еще один вопрос в догонку. Если в квике поставить разреженный режим стакана то по dde все равно передается обычный (тоесть с выкинутыми пустыми ценами). это фишка самого квика? он их вырезает или библиотека?
Kommentare (16)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Не освещается, потому что устаревшее поведение. В новой версии нет таких параметров. Надо использовать ITrader.QuotesChanged.
Спасибо. Я наоборот решил что событие для каждого отдельного стакана - это новая фишка. а общее в Trader - это старое. Тогда попутный вопрос так как даже новое поведение особо не описывается ни документации ни в примерах. в обработчик Trader.QuotesChanged коллекция из двух (или из скольки?) стаканов, один с только с теми котировками которые добавились, а другой которые исчезли,а если котировка изменилась (изменился объем) то она будет в обоих стаканах? Или я что-то не так понял? Заранее спасибо
В этом событие, как и во всех других событиях ITrader, коллекция объектов. В данном случае, коллекция стаканов как они есть в торговой системе. Тоесть, ни то что было до этого, ни изменения. А просто сами стаканы.
Самому.
Решил не заводить новую тему, так как вопрос очень соотвествует текущей.
Вообщем обрабатываю я событие получаю стакан при изменении - начинаю с ним работать но проблема в том что пока я обрабатываю биды в том числе лучший бид, аски могут поменяться до такой степени что значение лучшего бида станет выше лучшего аска.(потомучто я получаю не текущий "снимок" стакана а просто ссылку на массив где постоянно все меняется. Сказать что я сильно медленно обрабатываю стакан - нет не медленно на одну полную обработку события об изменении стакана уходит около 30микро (не мили а микро) секунд. но даже за это время на активном рынке бывают ситуации когда стакан успевает сильно измениться. Как вариант сделать такой снимок самому но может в библеотеке есть уже такой функционал? да и идеально сделать снимок не получиться такак как опять есть два варианта как сделать слепок интересущей меня информации и оба варианта состоят из как минимум двух этапов между которыми стакан опять может измениться
MarketDepth.Clone пробовали в самом начале делать?
Нет не пробовал. так как мне кажеться это будет медленно. а я борюсь за каждую ну или каждую микросекудну. надо попробовать и замерить
p.s. Попробовал. 3 микросекунды. нормально. хотя конечно если сравнить с остальным кодом который пробегает по всему стакану и не просто пробегает а анализирует за 30 микросекунд. то 10 процентный прирост времени только на одной строчке кода выглядит мягко говоря странно 😒. Но это я только проверил саму функцию клон. смотреть что происходит со стаканом - клонируется ли нормально или все равно успевает изменится еще не смотрел
А что за брокер и инструмент, что дает такую скорость обновления стакана?
Это на РИМ1, но там дело не в скорости обновления. Так как даже если брокер обновляет стакан раз в секунду. а я 20 раз в секунду, то существует большая вероятность (примерно 1 к 20) что я начну обновлять стакан до обновления брокером, а закончу после. вот только почему такие ситуации получаются очень часто...
Вот это не понял. Вы как то сами обновляете стакан?
А зачем это делать? Вы 20 раз в секунду проделываете одно и то же.
есть на это несколько причин - первая и очевидная это как можно быстрее среагировать на изменение в стакане. Но это к делу не относится ведь даже если считывать 1-2 раза в секунду все равно буду попадать на "обновление стакана в процессе чтения". Ну да ладно проблем конечно это доставляет, но не критично. добавлю пару проверок и всего делов. просто думал может кто-то уже сталкивался с такой проблемой и както победил ее.
Самое быстрое - это через MarketDepth.QuotesChanged.