Непонятная работа IMarketDataStorage

Непонятная работа IMarketDataStorage
Atom
5/25/2013
Architectus


Здравствуйте!
Разбираюсь с библиотекой. Возникло некоторое затруднение.

Рассмотрим простой код, почти из документации.
Версия S# - 4.1.13

Code

private IMarketDataStorage<Trade> _tradeStorage;
private Security _sec;

...

_sec= new Security {
                Id = "TestId",
                MinStepSize = 0.1m,
                Decimals = 1
            };

StorageRegistry storage = new StorageRegistry();
((LocalMarketDataDrive)storage.DefaultDrive).Path = @"E:\TestStockSharpStorage";
_tradeStorage = storage.GetTradeStorage(_sec);


...

private List<Trade> GenereateTrades(int amount) {
            List<Trade> trades = new List<Trade>();

            var tradeGenerator = new RandomWalkTradeGenerator(_sec, 99) {
                IdGenerator = new IdGenerator {
                    Current = DateTime.Now.Ticks
                }
            };
            tradeGenerator.Init();

            for (var i = 0; i < amount; i++) {
                var t = tradeGenerator.Generate(DateTime.Today + TimeSpan.FromMinutes(i));
                t.Id = i + 1;
                t.Status = 2;
                var dic = new Dictionary<object, object>();
                dic.Add("Parameter", 1.1m);
                t.ExtensionInfo = dic;

                trades.Add(t);
            }

            return trades;
}

private void b_CreateTicks_Click(object sender, RoutedEventArgs e) {
            var trades = GenereateTrades(100);
            _tradeStorage.Save(trades);
}

private void b_ReadData_Click(object sender, RoutedEventArgs e) {
            List<Trade> loadedTrades = _tradeStorage.Load(DateTime.Now.Date).ToList();
}


Теперь, если посмотреть trades из b_CreateTicks_Click, то там у каждого экземпляра Trade будут свойства Status == 2 и ExtensionInfo !=null.
Если посмотреть loadedTrades из b_ReadData_Click, то там у каждого экземпляра Trade будут свойства Status == 0 и ExtensionInfo == null. Все остальные свойства будут в порядке.
Почему не сохраняются свойства Status и ExtensionInfo?

Смотрел открытые исходные коды. Разбираться помогают, но не в этом случае.

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 5/26/2013
Reply


Architectus
Почему не сохраняются свойства Status и ExtensionInfo?


Потому что сжатие идет только на основные параметры. Статус, насколько я помню, сохраняется.
Thanks:

Architectus

Avatar
Date: 5/27/2013
Reply


Михаил, спасибо за ответ!
У меня статус не сохранялся. Но идею я понял. Некоторые свойства, по крайней мере ExtensionInfo точно, предназначены только для временного хранения в памяти и не сохраняются в хранилище.
Thanks:

Mikhail Sukhov

Avatar
Date: 5/27/2013
Reply


Architectus
Михаил, спасибо за ответ!
У меня статус не сохранялся. Но идею я понял. Некоторые свойства, по крайней мере ExtensionInfo точно, предназначены только для временного хранения в памяти и не сохраняются в хранилище.


Статус сохраняется если сделка несистемная. Вы что хотите сохранять через статус?
Thanks:

Architectus

Avatar
Date: 5/29/2013
Reply


Да, действительно, если IsSystem == false, то статус сохраняется. Спасибо.
Просто хотел понять, какую информацию можно хранить в объекте Trade. Так Status int, а OpenInterest decimal. Однако первый сохраняется только при IsSystem == false, а второй принимает только целые значения. Что впрочем правильно и понятно :)
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy