public OpenContinuousSecurityPanelCommand(ContinuousSecurity security)
		{
			if (security == null)
				throw new ArgumentNullException(nameof(security));

			Security = security;
		}
		private void CreateContinuousSecurity_OnClick(object sender, RoutedEventArgs e)
		{
			_continuousSecurityWindow = new ContinuousSecurityWindow
			{
				SecurityProvider = _entityRegistry.Securities,
				ContinuousSecurity = new ContinuousSecurity { Board = ExchangeBoard.Associated }
			};

			if (!_continuousSecurityWindow.ShowModal(this))
				return;

			_continuousSecurity = _continuousSecurityWindow.ContinuousSecurity;
			ContinuousSecurity.Content = _continuousSecurity.Id;

			var first = _continuousSecurity.InnerSecurities.First();

			var gluingSecurity = new Security
			{
				Id = _continuousSecurity.Id,
				Code = _continuousSecurity.Code,
				Board = ExchangeBoard.Associated,
				Type = _continuousSecurity.Type,
				VolumeStep = first.VolumeStep,
				PriceStep = first.PriceStep,
				ExtensionInfo = new Dictionary<object, object> { { "GluingSecurity", true } }
			};

			if (_entityRegistry.Securities.ReadById(gluingSecurity.Id) == null)
			{
				_entityRegistry.Securities.Save(gluingSecurity);
			}
		}
		public ContinuousSecurityMarketDataStorage(ContinuousSecurity security, object arg, Func<T, DateTimeOffset> getTime, Func<T, Security> getSecurity, Func<Security, IMarketDataDrive, IMarketDataStorage<T>> getStorage, IMarketDataStorageDrive drive)
		{
			if (security == null)
				throw new ArgumentNullException(nameof(security));

			if (getTime == null)
				throw new ArgumentNullException(nameof(getTime));

			if (getSecurity == null)
				throw new ArgumentNullException(nameof(getSecurity));

			if (getStorage == null)
				throw new ArgumentNullException(nameof(getStorage));

			if (drive == null)
				throw new ArgumentNullException(nameof(drive));

			_getStorage = getStorage;
			_security = security;
			_getTime = getTime;
			_getSecurity = getSecurity;
			
			_arg = arg;
			Drive = drive;
		}
        //private readonly Func<Security, IMarketDataDrive, IMarketDataStorage<T>> _getStorage;
        //private readonly Func<T, Security> _getSecurity;
        //private readonly Func<T, DateTimeOffset> _getTime;

        /// <summary>
        /// Initializes a new instance of the <see cref="ContinuousSecurityMarketDataStorage{T}"/>.
        /// </summary>
        /// <param name="security">Continuous security (generally, a futures contract), containing expirable securities.</param>
        /// <param name="arg">The additional argument, associated with data. For example, <see cref="CandleMessage.Arg"/>.</param>
        public ContinuousSecurityMarketDataStorage(ContinuousSecurity security, object arg)
        {
            if (security == null)
            {
                throw new ArgumentNullException(nameof(security));
            }

            //if (getTime == null)
            //	throw new ArgumentNullException(nameof(getTime));

            //if (getSecurity == null)
            //	throw new ArgumentNullException(nameof(getSecurity));

            //if (getStorage == null)
            //	throw new ArgumentNullException(nameof(getStorage));

            //if (drive == null)
            //	throw new ArgumentNullException(nameof(drive));

            //_getStorage = getStorage;
            Security = security;
            //_getTime = getTime;
            //_getSecurity = getSecurity;

            Arg = arg;
            //Drive = drive;
        }
        public OpenContinuousSecurityPanelCommand(ContinuousSecurity security)
        {
            if (security == null)
            {
                throw new ArgumentNullException(nameof(security));
            }

            Security = security;
        }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ContinuousSecurityMarketDataStorage{T}"/>.
        /// </summary>
        /// <param name="security">Continuous security (generally, a futures contract), containing expirable securities.</param>
        /// <param name="arg">The additional argument, associated with data. For example, <see cref="CandleMessage.Arg"/>.</param>
        public ContinuousSecurityMarketDataStorage(ContinuousSecurity security, object arg)
        {
            if (security == null)
            {
                throw new ArgumentNullException(nameof(security));
            }

            Security = _security = security;
            Arg      = arg;
        }
		public CandleContinuousSecurityMarketDataStorage(ContinuousSecurity security,
			object arg,
			Func<CandleMessage, DateTimeOffset> getTime,
			Func<CandleMessage, Security> getSecurity,
			Func<Security, IMarketDataDrive, IMarketDataStorage<CandleMessage>> getStorage,
			IMarketDataStorageDrive drive)
			: base(security, arg, getTime, getSecurity, getStorage, drive)
		{
			_security = security;
			_arg = arg;
		}
        private void CreateContinuousSecurity_OnClick(object sender, RoutedEventArgs e)
        {
            ContinuousSecurity.Content = string.Empty;

            _continuousSecurityWindow = new ContinuousSecurityWindow
            {
                SecurityProvider = _entityRegistry.Securities
            };
            _continuousSecurity = new ContinuousSecurity {
                Board = ExchangeBoard.Associated
            };
            _continuousSecurityWindow.ContinuousSecurity = _continuousSecurity;

            if (_continuousSecurityWindow.ShowModal(this))
            {
                ContinuousSecurity.Content = _continuousSecurity.Id;

                var first = _continuousSecurity.InnerSecurities.First();

                var gluingSecurity = new Security
                {
                    Id            = _continuousSecurity.Id,
                    Code          = _continuousSecurity.Code,
                    Board         = ExchangeBoard.Associated,
                    Type          = _continuousSecurity.Type,
                    VolumeStep    = first.VolumeStep,
                    PriceStep     = first.PriceStep,
                    ExtensionInfo = new Dictionary <object, object> {
                        { "GluingSecurity", true }
                    }
                };

                if (_entityRegistry.Securities.ReadById(gluingSecurity.Id) == null)
                {
                    _entityRegistry.Securities.Save(gluingSecurity);
                }
            }
            else
            {
                ContinuousSecurity.Content = string.Empty;
            }
        }
		public ConvertableContinuousSecurityMarketDataStorage(ContinuousSecurity security, 
			object arg,
			Func<TMessage, DateTimeOffset> getTime, 
			Func<TMessage, Security> getSecurity,
			Func<TEntity, TMessage> toMessage,
			Func<TEntity, DateTimeOffset> getEntityTime,
			Func<Security, IMarketDataDrive, IMarketDataStorage<TMessage>> getStorage, 
			IMarketDataStorageDrive drive)
			: base(security, arg, getTime, getSecurity, getStorage, drive)
		{
			if (toMessage == null)
				throw new ArgumentNullException(nameof(toMessage));

			if (getEntityTime == null)
				throw new ArgumentNullException(nameof(getEntityTime));

			_security = security;
			_toMessage = toMessage;
			_getEntityTime = getEntityTime;
		}
Example #10
0
        private void CreateSourceElements(ContinuousSecurity security)
        {
            var area = _mainArea;
            var id   = 1;

            foreach (var innerSecurity in security.InnerSecurities)
            {
                var series           = new CandleSeries(typeof(TimeFrameCandle), innerSecurity, TimeSpan.FromMinutes(5));
                var indicatorElement = new ChartIndicatorElement
                {
                    Title           = innerSecurity.Id,
                    Color           = _colors[id++],
                    StrokeThickness = 1
                };

                var indicator = new CandlePartIndicator();

                //_indicators.Add(indicatorElement, indicator);
                _sourceElements.Add(innerSecurity, indicatorElement);
                _bufferedChart.AddElement(area, indicatorElement, series, indicator);
            }
        }
		private void CreateSourceElements(ContinuousSecurity security)
		{
			var area = _mainArea;
			var id = 1;

			foreach (var innerSecurity in security.InnerSecurities)
			{
				var series = new CandleSeries(typeof(TimeFrameCandle), innerSecurity, TimeSpan.FromMinutes(5));
				var indicatorElement = new ChartIndicatorElement
				{
					Title = innerSecurity.Id,
					Color = _colors[id++],
					StrokeThickness = 1
				};

				var indicator = new CandlePartIndicator();

				//_indicators.Add(indicatorElement, indicator);
				_sourceElements.Add(innerSecurity, indicatorElement);
				_bufferedChart.AddElement(area, indicatorElement, series, indicator);
			}
		}