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

Раздел тех.поддержки | Форма обратной связи Тех.поддержка ОАО Московская Биржа: +7 (495) 733-9507, 287-7691
Особенности разборки DECIMAL в протоколе FAST
Новая тема   Ответить на тему
 Предыдущая тема :: Следующая тема 
 Автор  Сообщение 
oleg1101
Стаж: 1 год 5 месяцев
Сообщений: 2
Чт Май 21, 2020 19:47 Ответить с цитатой Получить постоянный адрес сообщения
Программа слушает входящие потоки данных по FAST протоколу. Всё хорошо, кроме некоторых шероховатостей. Например, в шаблоне 3610 (X-OLR-CURR) встречается поле
<decimal name="MDEntryPx" id="270" presence="optional"><copy/></decimal>
Так, хорошо, вылавливаем из потока данных величину этого поля для инструмента 'USD000UTSTOM'
Величина такая:
FE 35 96
FE - экспонента. Если убрать стоп-бит и учесть отрицательность, то получим -2
35 96 - мантисса. Удаляем стоп-бит из второго байта, получаем последовательность 35 16 (в десятичных 53 22)
Считаем мантиссу: 53 * 128 + 22 = 6806. С учетом экспоненты -2 получаем итоговую величину курса доллара 'USD000UTSTOM' = 68.06
Всё бы хорошо, но эти данные получены 19 мая 2020г, когда курс доллара был на уровне 72-73.
Полученное значение 68.06 не является выбросом, все значения за этот день колеблются в районе 67-69. Например,
FE 34 85 = 66.61
FF 05 A0 = 67.2
FE 35 8D = 67.97

И так далее... По величине напоминает курс йены, но в пакете четко указано 'USD000UTSTOM'. У кого есть идеи, пожалуйста подскажите! Может я неправильно разбираю decimal? Или что еще может быть? При необходимости могу выложить полученные пакеты с детальной разборкой.
Спасибо! 
 
maxman
Стаж: 3 года 5 месяцев
Сообщений: 5
Чт Июл 02, 2020 17:27 (спустя 1 месяц 11 дней 21 час) Ответить с цитатой Получить постоянный адрес сообщения
Выложите полностью FAST декодированный пакет.
Там же есть поля и с таймстемпом со стороны ядра биржи и прочая важная информация.
Тогда можно будет и бирже вопрос задать. А так не понятно, что вы там на декодировали.
 
 
rolaman
Стаж: 1 месяц 29 дней
Откуда: Москва
Сообщений: 2
Пт Июл 31, 2020 21:17 (спустя 2 месяца 10 дней 1 час) Ответить с цитатой Получить постоянный адрес сообщения
Цитата:
Величина такая:
FE 35 96
FE - экспонента. Если убрать стоп-бит и учесть отрицательность, то получим -2
35 96 - мантисса. Удаляем стоп-бит из второго байта, получаем последовательность 35 16 (в десятичных 53 22)
Считаем мантиссу: 53 * 128 + 22 = 6806. С учетом экспоненты -2 получаем итоговую величину курса доллара 'USD000UTSTOM' = 68.06 


Правильный ли это алгоритм? Почему перемещение точки происходит по десятичной записи? 
 
Показать сообщения:   
Новая тема   Ответить на тему
Список разделов форума -> Техническая поддержка

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