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; }
/// <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; }
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); } }