Mikhail Sukhov
|
Date: 3/18/2011
rminko:
Пытаюсь обрабатывать событие QuotesChanged Объекта MarketDepth
Обработчику передается два параметра в которых как я понял содержится информация об изменяемой котировке.
так вот если первый параметр с первым параметров все более или менее просто. то второй никак не могу побороть.
в документации про него кроме типа ничего не нашел. да и примерах нигде не освещается эта тема.
Не освещается, потому что устаревшее поведение. В новой версии нет таких параметров. Надо использовать ITrader.QuotesChanged.
|
|
|
|
Thanks:
|
|
|
|
|
|
rminko
|
Date: 3/18/2011
Спасибо. Я наоборот решил что событие для каждого отдельного стакана - это новая фишка. а общее в Trader - это старое.
Тогда попутный вопрос так как даже новое поведение особо не описывается ни документации ни в примерах.
в обработчик Trader.QuotesChanged коллекция из двух (или из скольки?) стаканов, один с только с теми котировками которые добавились, а другой которые исчезли,а если котировка изменилась (изменился объем) то она будет в обоих стаканах?
Или я что-то не так понял?
Заранее спасибо
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/18/2011
rminko:
Спасибо. Я наоборот решил что событие для каждого отдельного стакана - это новая фишка. а общее в Trader - это старое.
Тогда попутный вопрос так как даже новое поведение особо не описывается ни документации ни в примерах.
в обработчик Trader.QuotesChanged коллекция из двух (или из скольки?) стаканов, один с только с теми котировками которые добавились, а другой которые исчезли,а если котировка изменилась (изменился объем) то она будет в обоих стаканах?
Или я что-то не так понял?
Заранее спасибо
В этом событие, как и во всех других событиях ITrader, коллекция объектов. В данном случае, коллекция стаканов как они есть в торговой системе. Тоесть, ни то что было до этого, ни изменения. А просто сами стаканы.
|
|
|
|
Thanks:
|
|
|
|
|
|
rminko
|
Date: 3/18/2011
Mikhail Sukhov:
В этом событие, как и во всех других событиях ITrader, коллекция объектов. В данном случае, коллекция стаканов как они есть в торговой системе. Тоесть, ни то что было до этого, ни изменения. А просто сами стаканы.
А есть возможность получить только изменившиеся котировки или это уже надо реализовывать самому?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/18/2011
rminko:
Mikhail Sukhov:
В этом событие, как и во всех других событиях ITrader, коллекция объектов. В данном случае, коллекция стаканов как они есть в торговой системе. Тоесть, ни то что было до этого, ни изменения. А просто сами стаканы.
А есть возможность получить только изменившиеся котировки или это уже надо реализовывать самому?
Самому.
|
|
|
|
Thanks:
|
|
|
|
|
|
rminko
|
Date: 3/29/2011
|
|
|
|
|
Решил не заводить новую тему, так как вопрос очень соотвествует текущей.
Вообщем обрабатываю я событие получаю стакан при изменении - начинаю с ним работать но проблема в том что пока я обрабатываю биды в том числе лучший бид, аски могут поменяться до такой степени что значение лучшего бида станет выше лучшего аска.(потомучто я получаю не текущий "снимок" стакана а просто ссылку на массив где постоянно все меняется. Сказать что я сильно медленно обрабатываю стакан - нет не медленно на одну полную обработку события об изменении стакана уходит около 30микро (не мили а микро) секунд. но даже за это время на активном рынке бывают ситуации когда стакан успевает сильно измениться.
Как вариант сделать такой снимок самому но может в библеотеке есть уже такой функционал? да и идеально сделать снимок не получиться такак как опять есть два варианта как сделать слепок интересущей меня информации и оба варианта состоят из как минимум двух этапов между которыми стакан опять может измениться
- а) получить все котировки
б) запросить луший аск
в)и лучший бид
- а)получить все аски
б)получить все биды
во втором варианте нет необходимости запрашивать лучший аск и бид так как их можно легко вычислить из всех асков и всех бидов так как они отсортированы.
Вообщем пробовал оба варианта и в обоих вариантах в процессе запроса данных очень часто стакан мягко говоря бредовым. (получил лучшие бид по индексу к примеру 190000 и тут же запрашиваю лучший аск а он равен 189990....... вот и как побороть?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/29/2011
rminko:
Вообщем пробовал оба варианта и в обоих вариантах в процессе запроса данных очень часто стакан мягко говоря бредовым. (получил лучшие бид по индексу к примеру 190000 и тут же запрашиваю лучший аск а он равен 189990....... вот и как побороть?
MarketDepth.Clone пробовали в самом начале делать?
|
|
|
|
|
|
|
rminko
|
Date: 3/29/2011
Mikhail Sukhov:
MarketDepth.Clone пробовали в самом начале делать?
Нет не пробовал. так как мне кажеться это будет медленно. а я борюсь за каждую ну или каждую микросекудну.
надо попробовать и замерить
p.s. Попробовал. 3 микросекунды. нормально. хотя конечно если сравнить с остальным кодом который пробегает по всему стакану и не просто пробегает а анализирует за 30 микросекунд. то 10 процентный прирост времени только на одной строчке кода выглядит мягко говоря странно [glare]. Но это я только проверил саму функцию клон. смотреть что происходит со стаканом - клонируется ли нормально или все равно успевает изменится еще не смотрел
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/29/2011
rminko:
Mikhail Sukhov:
MarketDepth.Clone пробовали в самом начале делать?
Нет не пробовал. так как мне кажеться это будет медленно. а я борюсь за каждую ну или каждую микросекудну.
надо попробовать и замерить
А что за брокер и инструмент, что дает такую скорость обновления стакана?
|
|
|
|
Thanks:
|
|
|
|
|
|
rminko
|
Date: 3/30/2011
Это на РИМ1, но там дело не в скорости обновления. Так как даже если брокер обновляет стакан раз в секунду. а я 20 раз в секунду, то существует большая вероятность (примерно 1 к 20) что я начну обновлять стакан до обновления брокером, а закончу после. вот только почему такие ситуации получаются очень часто...
|
|
|
|
Thanks:
|
|
|
|
|