Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change. Получаю данные так: ```csharp
readonly HashSet _level1Fields = new HashSet(new[]
{
Level1Fields.AsksCount,
Level1Fields.AsksVolume,
Level1Fields.BidsCount,
Level1Fields.BidsVolume,
Level1Fields.HistoricalVolatility,
Level1Fields.ImpliedVolatility,
Level1Fields.MarginBuy,
Level1Fields.MarginSell,
Level1Fields.StepPrice,
Level1Fields.PriceStep,
Level1Fields.OpenInterest,
});
private void OnSecuritiesChanged(IEnumerable<Security> securities)
{
foreach (var security in securities)
{
var changeMessage = security.GetNewChanges(_level1Fields);
_saveManager.Level1ChangeMessages.Enqueue(changeMessage);
}
}
Сохраняю данные так: csharp
var level1ChangeMessagesBySecurity =
from c in level1ChangeMessagesFromQueue
group c by c.SecurityId
into g
select g;
foreach (var level1ChangeMessageBySecurity in level1ChangeMessagesBySecurity)
{
var level1ChangeStorage = _storageRegistry.GetLevel1ChangeStorage(new Security() { Id = level1ChangeMessageBySecurity.Key.Native.ToString()}, _defaultDrive);
try
{
level1ChangeStorage.Save(level1ChangeMessageBySecurity);
}
catch (Exception e)
{
Log.Error("Ошибка при сохранении изменений инструментов", e);
}
}
При сохранении получаю ошибку: plain
{"Unable to cast object of type 'Grouping[StockSharp.Messages.SecurityId,StockSharp.Messages.Level1ChangeMessage]' to type 'System.Collections.Generic.IEnumerable`1[StockSharp.Algo.Storages.SecurityChange]'."}