Esempio n. 1
0
 /// <summary>
 /// To get accumulated data from the buffer and delete them.
 /// </summary>
 /// <returns>Gotten data.</returns>
 public IDictionary <TKey, IEnumerable <TMarketData> > Get()
 {
     return(_data.SyncGet(d =>
     {
         var retVal = d.ToDictionary(p => p.Key, p => (IEnumerable <TMarketData>)p.Value);
         d.Clear();
         return retVal;
     }));
 }
Esempio n. 2
0
        private void PulseWaiting()
        {
            foreach (var pair in _candleInfo.SyncGet(c => c.CopyAndClear()))
            {
                var candleInfo = pair.Value;

                this.AddWarningLog(LocalizedStrings.Str2150Params, candleInfo.Fourth);

                lock (candleInfo.Second)
                {
                    candleInfo.Third = true;
                    candleInfo.Second.Pulse();
                }
            }

            foreach (var pair in _ticksInfo.SyncGet(c => c.CopyAndClear()))
            {
                var l1Info = pair.Value;

                this.AddWarningLog(LocalizedStrings.Str2151Params, l1Info.Fourth);

                lock (l1Info.Second)
                {
                    l1Info.Third = true;
                    l1Info.Second.Pulse();
                }
            }
        }
            public void RecycleCandles()
            {
                if (_container.CandlesKeepTime == TimeSpan.Zero)
                {
                    return;
                }

                var diff = _lastCandleTime - _firstCandleTime;

                if (diff <= _container._maxCandlesKeepTime)
                {
                    return;
                }

                _firstCandleTime = _lastCandleTime - _container.CandlesKeepTime.Ticks;

                _allCandles.SyncDo(list =>
                {
                    while (list.Count > 0)
                    {
                        if (list.First.Value.OpenTime.UtcTicks >= _firstCandleTime)
                        {
                            break;
                        }

                        _candleStat.Remove(list.First.Value);
                        list.RemoveFirst();
                    }
                });

                _byTime.SyncGet(d => d.RemoveWhere(p => p.Key < _firstCandleTime));
            }
Esempio n. 4
0
        /// <summary>
        /// Create a copy of <see cref="OrderCondition"/>.
        /// </summary>
        /// <returns>Copy.</returns>
        public override OrderCondition Clone()
        {
            var clone = GetType().CreateInstance <OrderCondition>();

            clone.Parameters.Clear();             // удаляем параметры по умолчанию
            clone.Parameters.AddRange(_parameters.SyncGet(d => d.ToArray()));
            return(clone);
        }
Esempio n. 5
0
        public override void Save(SettingsStorage storage)
        {
            if (storage == null)
            {
                throw new ArgumentNullException(nameof(storage));
            }

            storage.SetValue("Controls", _dockingControlSettings.SyncGet(c => c.Select(p => p.Value).ToArray()));
            storage.SetValue("Layout", _layout);
        }
Esempio n. 6
0
 /// <inheritdoc />
 public IEnumerable <Security> Lookup(SecurityLookupMessage criteria)
 {
     return(_inner.SyncGet(d => d.Values.Filter(criteria).ToArray()).Concat(_underlying.Lookup(criteria)).Distinct());
 }
Esempio n. 7
0
        object ISecurityProvider.GetNativeId(Security security)
        {
            var finamId = _cacheByFinamId.SyncGet(d => d.FirstOrDefault(p => p.Value == security).Key);

            return(finamId.IsDefault() ? null : (object)finamId);
        }
Esempio n. 8
0
 object ISecurityProvider.GetNativeId(Security security)
 {
     return(_cacheByNativeId.SyncGet(d => d.FirstOrDefault(p => p.Value == security).Key));
 }