Непонятная работа IMarketDataStorage
Atom
25.05.2013
Architectus


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

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

[code=csharp] private IMarketDataStorage _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 GenereateTrades(int amount) { List trades = new List();

        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 loadedTrades = _tradeStorage.Load(DateTime.Now.Date).ToList(); } [/code]

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

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


Теги:


Спасибо:


Mikhail Sukhov

Фотография
Дата: 26.05.2013
Ответить


[quote=Architectus;26060]Почему не сохраняются свойства Status и ExtensionInfo?[/quote]

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

Спасибо:

Architectus

Фотография
Дата: 27.05.2013
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 27.05.2013
Ответить


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

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

Спасибо:

Architectus

Фотография
Дата: 29.05.2013
Ответить


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

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy