Beispiel #1
0
            public ContinuousSecurityList(StudioEntityRegistry registry)
            {
                _registry = registry;

                _jumps = new JumpList(_registry.Storage)
                {
                    BulkLoad = true
                };

                foreach (var group in _jumps.GroupBy(j => j.Id.ContinuousSecurity))
                {
                    group.ForEach(s => s.Id.JumpSecurity.CheckExchange());

                    var underlyingSecurity = group.First().Id.JumpSecurity;

                    var cs = new ContinuousSecurity
                    {
                        Id            = group.Key,
                        Board         = underlyingSecurity.Board,
                        Type          = underlyingSecurity.Type,
                        PriceStep     = underlyingSecurity.PriceStep,
                        ExtensionInfo = new Dictionary <object, object>(),
                    };

                    cs.ExpirationJumps.AddRange(group.Select(j => new KeyValuePair <Security, DateTimeOffset>(j.Id.JumpSecurity, j.JumpDate)));

                    Add(cs);
                }
            }