ПоискПоиск  ПравилаПравила  ПользователиПользователи  ПрофильПрофиль  РегистрацияРегистрация  ВходВход
Форум «Техническая поддержка»
Форум для разработчиков и пользователей программного обеспечения, использующегося на бирже.

Раздел тех.поддержки | Форма обратной связи Тех.поддержка ОАО Московская Биржа: +7 (495) 733-9507, 287-7691
[PLAZA2] Как собрать стакан (глубина 20, 50)?
Новая тема   Ответить на тему
На страницу 1, 2, 3 ... 13, 14, 15  След.
 Предыдущая тема :: Следующая тема 
 Автор  Сообщение 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Ср Фев 24, 2010 18:24 Ответить с цитатой Получить постоянный адрес сообщения
Здравствуйте!
Собираю стакан для FORTS_FUTAGGR20_REPL и FORTS_FUTAGGR50_REPL.
INSERT и UPDATE приходят. Правильно я понимаю, что когда приходит объем и цена равная нулю, то по этому replD надо удалить запись. DELETE не вызывается.

Подскажите пожалуйста, как грамотно делать?
Спасибо большое.

 
 
Daemon
Стаж: 7 лет 9 месяцев
Откуда: Екатеринбург
Сообщений: 114
Ср Фев 24, 2010 18:47 (спустя 22 минуты) Ответить с цитатой Получить постоянный адрес сообщения
RTFM:
replAct – признак того, что запись удалена. При удалении записи на сервере в поле replAct заносится значение ее replID. Если replAct = 0 – запись активна (не удалена).
ВАЖНО! Если поток открывается без установки флага RT_REMOVE_DELETED и используется в режиме «базового» клиента репликации, то следует учитывать, что в базе данных клиента репликации будут присутствовать удаленные на сервере записи. При обработке надо анализировать значение поля replAct.
 
 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Ср Фев 24, 2010 20:15 (спустя 1 час 50 минут) Ответить с цитатой Получить постоянный адрес сообщения
Daemon писал(а):
RTFM:
replAct – признак того, что запись удалена. При удалении записи на сервере в поле replAct заносится значение ее replID. Если replAct = 0 – запись активна (не удалена).
ВАЖНО! Если поток открывается без установки флага RT_REMOVE_DELETED и используется в режиме «базового» клиента репликации, то следует учитывать, что в базе данных клиента репликации будут присутствовать удаленные на сервере записи. При обработке надо анализировать значение поля replAct.
 


Спасибо. 
 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Ср Фев 24, 2010 20:32 (спустя 2 часа 8 минут) Ответить с цитатой Получить постоянный адрес сообщения
Я раньше стакан собирал через FORTS_FUTAGGR_REPL (неограниченная глубина). Сейчас он не транслируется. Там все было через INSERT. Я конечно догоняю как собрать стакан на FORTS_FUTAGGR20_REPL.

Хотелось бы, что бы доку расписали подробнее по этому вопросу, и сюда кинули пример (официальный) для тех ребят, которые видят стакан первый раз в своей жизни. По тому, что это еще одна грабля на которую спотыкаются juniors.

Это я делаю для FAQ. 
 
Савинич Алексей
Стаж: 9 лет 3 месяца
Откуда: Московская Биржа
Сообщений: 338
Чт Фев 25, 2010 10:33 (спустя 16 часов 8 минут) Ответить с цитатой Получить постоянный адрес сообщения
Разбираем случай, когда глубина стакана равна 2.
Как должен выглядеть стакан буду писать в виде (price/volume).

1) Сейчас 12:00:01. Появилась заявка на покупку с ценой 5 и объемом 10 по новому инструменту с isin_id=12345.
Приехали новые четыре записи. Стакан полностью заполнился нулевыми значениями.
replID=1	replRev=1	isin_id=12345	price=0	volume=0	moment='12:00:01'	dir=1
replID=2	replRev=2	isin_id=12345	price=0	volume=0	moment='12:00:01'	dir=1
replID=3	replRev=3	isin_id=12345	price=0	volume=0	moment='12:00:01'	dir=2
replID=4	replRev=4	isin_id=12345	price=0	volume=0	moment='12:00:01'	dir=2

Приехал апдейт записи. В одной из записей поменялась цена и объем.
replID=1	replRev=5	isin_id=12345	price=5	volume=10	moment='12:00:01'	dir=1

В стакане
Bid Ask
5/10

2) Сейчас 12:00:02. Появилась заявка на покупку с ценой 4 и объемом 10
Приехал апдейт записи
replID=2	replRev=6	isin_id=12345	price=4	volume=10	moment='12:00:02'	dir=1

В стакане
Bid Ask
5/10
4/10

3) Сейчас 12:00:03. Появилась заявка на продажу с ценой 8 и объемом 10
Приехал апдейт записи
replID=3	replRev=7	isin_id=12345	price=8	volume=10	moment='12:00:03'	dir=2

В стакане
Bid Ask
5/10 8/10
4/10

4) Сейчас 12:00:04. Появилась заявка на продажу с ценой 7 и объемом 10
Приехал апдейт записи
replID=4	replRev=8	isin_id=12345	price=7	volume=10	moment='12:00:04'	dir=2

В стакане
Bid Ask
5/10 7/10
4/10 8/10

5) Сейчас 12:00:05. Появилась еще одна заявка на покупку с ценой 4 и объемом 5
Приехал апдейт записи. У заявки с ценой 4, т.е. с replID=2 изменился объем.
replID=2	replRev=9	isin_id=12345	price=4	volume=15	moment='12:00:02'	dir=1

В стакане
Bid Ask
5/10 7/10
4/15 8/10

6) Сейчас 12:00:06. Удалилась/свелась заявка на покупку с ценой 5 и объемом 10
Приехал апдейт записи. Значения цены и объема обнулились для replID=1. Так как такой заявки больше нет.
replID=1	replRev=10	isin_id=12345	price=0	volume=0	moment='12:00:06'	dir=1

В стакане
Bid Ask
4/15 7/10
8/10

7) Сейчас 12:00:07. Появилась заявка на покупку с ценой 5 и объемом 8
Приехал апдейт записи
replID=1	replRev=11	isin_id=12345	price=5	volume=8	moment='12:00:07'	dir=1

В стакане
Bid Ask
5/8 7/10
4/15 8/10

8) Сейчас 12:00:08. Появилась заявка на покупку с ценой 6 и объемом 10
Приехал апдейт записи. Запись с ценой 4 теперь не входит в стакан. Она заменена на цену 6.
replID=2	replRev=12	isin_id=12345	price=6	volume=10	moment='12:00:08'	dir=1

В стакане
Bid Ask
6/10 7/10
5/8 8/10

9) Сейчас 12:00:09. Удалилась/свелась заявка на покупку с ценой 6 и объемом 10
Приехал апдейт записи. Заявка с ценой 6 удалена, поэтому в стакан возвращается заявка с ценой 4.
replID=2	replRev=13	isin_id=12345	price=4	volume=15	moment='12:00:02'	dir=1

В стакане
Bid Ask
5/8 7/10
4/15 8/10

Надо еще заметить, что при добавлении новой заявки, когда происходит поиск нулевых записей, агрегилка может выбрать случайный replID, т.е. не факт, что в первом пункте произойдет апдейт записи с replID=1, а не с replID=2.
И еще момент, ночью или при смене номера торговой сессии, удаляются физически все записи из всех стаканов и Вы получите StreamDatumDeleted.
И последнее. Несмотря на то, что в стаканах ограниченной глубины нет удалений, т.е. как правильно заметил Daemon, все равно желательно отслеживать replAct. Это стандартный метод работы Плаза2. 
 
Последний раз редактировалось автором 25.02.2010 11:27, всего редактировалось 1 раз
Alexander56
Стаж: 7 лет 8 месяцев
Откуда: Оренбург
Сообщений: 218
Вт Мар 02, 2010 14:57 (спустя 5 дней 20 часов) Ответить с цитатой Получить постоянный адрес сообщения
А как сделать, чтобы приходили инсерты именно с isin_id=12345? Другими словами, как организовать фильтрацию данных по инструменту в потоке/таблице?

С уважением, Александр 
 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Вт Мар 02, 2010 15:11 (спустя 5 дней 20 часов) Ответить с цитатой Получить постоянный адрес сообщения
Alexander56 писал(а):
А как сделать, чтобы приходили инсерты именно с isin_id=12345? Другими словами, как организовать фильтрацию данных по инструменту в потоке/таблице?

С уважением, Александр 


Для меня это ОГРОМНАЯ ПРОБЛЕМА. могу поток отключить , могу схему кастомную создать, но не могу отключить инструменты, которые мне не нужны. Короче, полная "Ванкуверская олимпиада". ((((((((((((((((((((((((((((((((

Получаю много траффика, который мне НЕ НУЖЕН. Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Evil or Very Mad Twisted Evil Mad Mad Evil or Very Mad Mad Twisted Evil Mad

С уважением, Алексей.

P.S.

Плиз, кто нибудь включите фильтрацию. SOS SOS SOS 
 
Последний раз редактировалось автором 02.03.2010 15:50, всего редактировалось 5 раз
Савинич Алексей
Стаж: 9 лет 3 месяца
Откуда: Московская Биржа
Сообщений: 338
Чт Мар 04, 2010 01:00 (спустя 7 дней 6 часов) Ответить с цитатой Получить постоянный адрес сообщения
В данный момент фильтрация данных по инструменту не предусмотрена 
 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Чт Мар 04, 2010 09:43 (спустя 7 дней 15 часов) Ответить с цитатой Получить постоянный адрес сообщения
Савинич Алексей писал(а):
В данный момент фильтрация данных по инструменту не предусмотрена 


Не совсем понял, простите пожалуйста.

Алексей, скажите пожалуйста. Фильтрация инструментов у Вас стоит в планах на будущее или Вы от нее полностью отказались. Спасибо большое.

С уважением, Алексей. 
 
Последний раз редактировалось автором 04.03.2010 09:43, всего редактировалось 1 раз
Савинич Алексей
Стаж: 9 лет 3 месяца
Откуда: Московская Биржа
Сообщений: 338
Чт Мар 04, 2010 09:45 (спустя 7 дней 15 часов) Ответить с цитатой Получить постоянный адрес сообщения
На текущий момент не стоит даже в планах. Что будет в будущем я Вам сказать не могу. Возможно мы к этому придем. 
 
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Чт Мар 04, 2010 10:27 (спустя 7 дней 16 часов) Ответить с цитатой Получить постоянный адрес сообщения
Спасибо большое Алексей, за разъяснение.

P.S.
Верно сказал про эту ситуацию Дольф Лундгрен...эх, золотые слова: " Отсюда, мать твою, выход только через крышу ".... 
 
Alexander56
Стаж: 7 лет 8 месяцев
Откуда: Оренбург
Сообщений: 218
Сб Мар 06, 2010 15:50 (спустя 9 дней 21 час) Ответить с цитатой Получить постоянный адрес сообщения
как написано в P2ClientGate.pdf о orders_aggr из FORTS_FUTAGGR20_REPL:
"Записи в таблице могут обновляться полностью, т.е. обновляться может не только объём котировки
(volume), но и ИНСТРУМЕНТ..."

Я правильно понимаю, что если мы при состоянии потока DS_STATE_REMOTE_SNAPSHOT получили для определенного Инструмента записи с replID в диаразоне с 2161 по 2200, то после перехода потока в DS_STATE_ONLINE никакой гарантии, что и дальше котировки по этому Инструменту будут приходить с replID из того же первоначального диапазона нет?

С уважением, Александр 
 
Дмитрий Глотиков
Стаж: 11 лет 2 месяца
Откуда: Московская биржа
Сообщений: 590
Пн Мар 08, 2010 23:57 (спустя 12 дней 5 часов) Ответить с цитатой Получить постоянный адрес сообщения
Alexander56 писал(а):
как написано в P2ClientGate.pdf о orders_aggr из FORTS_FUTAGGR20_REPL:
"Записи в таблице могут обновляться полностью, т.е. обновляться может не только объём котировки
(volume), но и ИНСТРУМЕНТ..."

Я правильно понимаю, что если мы при состоянии потока DS_STATE_REMOTE_SNAPSHOT получили для определенного Инструмента записи с replID в диаразоне с 2161 по 2200, то после перехода потока в DS_STATE_ONLINE никакой гарантии, что и дальше котировки по этому Инструменту будут приходить с replID из того же первоначального диапазона нет?
 


Да, в некоторых нечастых случаях сервис построения агрегированных стаканов может реинициализировать таблицу в середине торгов. Кроме того, таблица реинициализируется при переходе от дневной сессии к вечерней.
И идентификаторы "перемешаются". Поэтому рассчитывать на неизменность id нельзя. 
 
Alexander56
Стаж: 7 лет 8 месяцев
Откуда: Оренбург
Сообщений: 218
Вт Мар 09, 2010 10:20 (спустя 12 дней 15 часов) Ответить с цитатой Получить постоянный адрес сообщения
Спасибо, Дмитрий!

Мне важно, чтобы в периоды между такими нечастыми событиями записи в orders_aggr, относящиеся к одному инструменту, имели replID из непрерывного(!!!) диапазона. Так как только в этом случае, я считаю, мы можем говорить о "предыдущей" котировке.

У меня "безбазовый" клиент, для каждого используемого инструмента есть локальная копия кусочка orders_aggr[0..39]:
 orders_aggr[orders_aggr_new_entry.replID mod 40]:=orders_aggr_new_entry;  // это при StreamDataInserted


P.S.
вопрос 1. Так, диапазон для replID по одному инструменту будет непрерывным?
вопрос 2. Достаточно ли StreamLifeNumChanged и StreamDatumDeleted, чтобы отследить, что таблица orders_aggr реинициализирована?

С уважением, Александр. 
 
Последний раз редактировалось автором 09.03.2010 10:34, всего редактировалось 2 раза
AlexF7
Стаж: 7 лет 9 месяцев
Сообщений: 1433
Вт Мар 09, 2010 14:37 (спустя 12 дней 20 часов) Ответить с цитатой Получить постоянный адрес сообщения
Дмитрий спасибо за ответ!

Я бы хотел поподробнее узнать, как можно отследить реинициализацию?

Дмитрий если не секрет, скажите пожалуйста, что это за нечастые случаи?


С уважением, Алексей. 
 
Последний раз редактировалось автором 09.03.2010 15:19, всего редактировалось 1 раз
Показать сообщения:   
Новая тема   Ответить на тему
Список разделов форума -> Техническая поддержкаНа страницу 1, 2, 3 ... 13, 14, 15  След.
Страница 1 из 15

Rambler's Top100 Rambler's Top100
Рейтинг@Mail.ru
Copyright © Московская биржа, 2006-2017.
Ваши предложения, замечания и вопросы
по работе форума направляйте на email: