Проверил на версии 4.1.6
Подтверждаю. Проблема устранена полностью . Данные читаются и восстанавливаются точно с любым количеством десятичных знаков после запятой в поле Price.
Для тех, кому это может быть нужно, обращаю внимание, что, по всей видимости, формат записи изменился. Мне не удалось прочитать данные записанные версией 4.1.6 программой, использующей библиотеку 4.1.5
Однако я обнаружил еще один эффект, с которым хотел бы разобраться.
Дело в том, что я обнаружил, что в хранилище сохраняются не все искусственные сделки, которые я создаю.
Возможно, происходит некоторая фильтрация ( возможно, правильная) или в _tradesBuffer Гидры или в самом хранилище.
Дело в том, что данные из кастом таблиц Quik, по всей видимости, приходят с дублированием:
Вот типичный пример, сделанный по моим собственным независимым логам:
Code
1. miniSP500&WIDX,20:14:01,2012-11-14 20:14:01.0(00:00:01.9850995),1365.73553345389,buy
2. miniSP500&WIDX,20:14:01,2012-11-14 20:14:01.0(00:00:01.9850995),1365.73553345389,sell
3. miniSP500&WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:00.9850995),1365.73553345389,buy
4. miniSP500&WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:00.9850995),1365.73553345389,sell
5. miniSP500&WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:01.9444995),1365.73704038577,buy
6. miniSP500&WIDX,20:14:02,2012-11-14 20:14:02.0(00:00:01.9454995),1365.73704038577,sell
7. miniSP500&WIDX,20:14:03,2012-11-14 20:14:03.0(00:00:00.9464995),1365.73704038577,buy
8. miniSP500&WIDX,20:14:03,2012-11-14 20:14:03.0(00:00:00.9464995),1365.73704038577,sell
Время указано по данным из таблицы, в скобках задержка по отношению к компьютерному времени.
Если посмотреть, например, на строки 2 и 4, 5 и 7, то видно, что они соответствуют строго одному и тому же компьютерному времени, но задержки как-бы разные. Все параметры сделки, кроме времени в них идентичны.
Для каждой строчки была создана соответствующая искусственная сделка, которая помещалась в _tradesBuffer обычным образом.
Из хранилища были прочитаны вот эти данные:
Code
[1] {2012-11-14 20:14:01 0 1365.73553345389 1}
[2] {2012-11-14 20:14:01 0 1365.73553345389 1}
[3] {2012-11-14 20:14:02 0 1365.73553345389 1}
[4] {2012-11-14 20:14:02 0 1365.73553345389 1}
[7] {2012-11-14 20:14:03 0 1365.73704038577 1}
[8] {2012-11-14 20:14:03 0 1365.73704038577 1}
Т.е. сделки, соответствующие строкам 5 и 6 были отфильтрованы (отбракованы?) и не были сохранены.
Хотелось бы понять более четко, действительно ли делается какая-либо отбраковка данных при сохранении, и по каким принципам?