Ошибка при чтении тиков из bin-хранилища, API 4.2.72
Записал Гидрой данные из источника RTS (всё подряд за несколько лет). Пытаюсь прочитать (без разницы, через API 4.2.72 или самой Гидрой c библиотеками 4.2.71) - время от времени вылезает exception:
Error System.ArgumentException: Decimal byte array constructor requires an array of length four containing valid decimal bytes.
at System.Decimal.SetBits(Int32[] bits)
at StockSharp.Algo.Storages.MarketDataStorageHelper.ReadDecimal(BitArrayReader reader, Decimal prevPrice)
at StockSharp.Algo.Storages.MarketDataStorageHelper.ReadPriceEx[T](BitArrayReader reader, BinaryMetaInfo`1 info)
at StockSharp.Algo.Storages.TradeSerializer.MoveNext(MarketDataEnumerator enumerator)
at StockSharp.Algo.Storages.BinaryMarketDataSerializer`2.MarketDataEnumerator.MoveNext()
at StockSharp.Algo.Storages.StorageHelper.RangeEnumerable`1.RangeEnumerator.System.Collections.IEnumerator.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at StockSharp.Algo.Export.TextExporter.Do[TValue](IEnumerable`1 values, String templateName)
at Ecng.Common.Converter.<>c__DisplayClassf.<DoInCulture>b__e()
at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
at StockSharp.Algo.Export.BaseExporter.Export(Type dataType, IEnumerable values)
at StockSharp.Hydra.Controls.ExportProgress.<>c__DisplayClass6.<Start>b__4(Object s, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
На достаточно активных фьючах (RIZ4) такая ошибка появляется раз в несколько месяцев. В общем, прочитать полностью все сделки по конкретному фьючерсу удается редко.
Еще забавный баг в последней Гидре: почему-то разучилась создавать временные директории вида yyyy_MM_dd внутри \TemporaryFiles во время загрузки данных из RTS. Пишет ошибку "System.IO.DirectoryNotFoundException: Could not find a part of the path 'S:\Hydra\TemporaryFiles\2009_11_02\20091102.zip'". Насоздавал ей директорий вручную под каждую дату - всё завелось, она их даже удалила сама после использования.