/// <summary> /// Creates the canonical <see cref="Future"/> chain security for a given symbol /// </summary> /// <param name="subscriptionDataConfigService">The service used to create new <see cref="SubscriptionDataConfig"/></param> /// <param name="symbol">Symbol of the future</param> /// <param name="settings">Universe settings define attributes of created subscriptions, such as their resolution and the minimum time in universe before they can be removed</param> /// <param name="securityManager">Used to create new <see cref="Security"/></param> /// <returns><see cref="Future"/> for the given symbol</returns> protected virtual Future CreateFutureChainSecurity( ISubscriptionDataConfigService subscriptionDataConfigService, Symbol symbol, UniverseSettings settings, SecurityManager securityManager) { var config = subscriptionDataConfigService.Add( typeof(ZipEntryName), symbol, settings.Resolution, settings.FillForward, settings.ExtendedMarketHours, isFilteredSubscription: false); return((Future)securityManager.CreateSecurity(symbol, config, settings.Leverage, false)); }
/// <summary> /// Gets the subscription requests to be added for the specified security /// </summary> /// <param name="security">The security to get subscriptions for</param> /// <param name="currentTimeUtc">The current time in utc. This is the frontier time of the algorithm</param> /// <param name="maximumEndTimeUtc">The max end time</param> /// <param name="subscriptionService">Instance which implements <see cref="ISubscriptionDataConfigService"/> interface</param> /// <returns>All subscriptions required by this security</returns> public override IEnumerable <SubscriptionRequest> GetSubscriptionRequests(Security security, DateTime currentTimeUtc, DateTime maximumEndTimeUtc, ISubscriptionDataConfigService subscriptionService) { var result = subscriptionService.Add(security.Symbol, UniverseSettings.Resolution, UniverseSettings.FillForward, UniverseSettings.ExtendedMarketHours, // force raw data normalization mode for underlying dataNormalizationMode: DataNormalizationMode.Raw); return(result.Select(config => new SubscriptionRequest(isUniverseSubscription: false, universe: this, security: security, configuration: config, startTimeUtc: currentTimeUtc, endTimeUtc: maximumEndTimeUtc))); }
/// <summary> /// Gets the subscription requests to be added for the specified security /// </summary> /// <param name="security">The security to get subscriptions for</param> /// <param name="currentTimeUtc">The current time in utc. This is the frontier time of the algorithm</param> /// <param name="maximumEndTimeUtc">The max end time</param> /// <param name="subscriptionService">Instance which implements <see cref="ISubscriptionDataConfigService"/> interface</param> /// <returns>All subscriptions required by this security</returns> public virtual IEnumerable <SubscriptionRequest> GetSubscriptionRequests(Security security, DateTime currentTimeUtc, DateTime maximumEndTimeUtc, ISubscriptionDataConfigService subscriptionService) { var result = subscriptionService.Add(security.Symbol, UniverseSettings.Resolution, UniverseSettings.FillForward, UniverseSettings.ExtendedMarketHours); return(result.Select(config => new SubscriptionRequest(isUniverseSubscription: false, universe: this, security: security, configuration: config, startTimeUtc: currentTimeUtc, endTimeUtc: maximumEndTimeUtc))); }
public override IEnumerable <SubscriptionRequest> GetSubscriptionRequests(Security security, DateTime currentTimeUtc, DateTime maximumEndTimeUtc, ISubscriptionDataConfigService subscriptionService) { var config = subscriptionService.Add( typeof(TiingoNews), security.Symbol, UniverseSettings.Resolution, UniverseSettings.FillForward, UniverseSettings.ExtendedMarketHours, dataNormalizationMode: UniverseSettings.DataNormalizationMode); return(new[] { new SubscriptionRequest(isUniverseSubscription: false, universe: this, security: security, configuration: config, startTimeUtc: currentTimeUtc, endTimeUtc: maximumEndTimeUtc) }); }
/// <summary> /// Gets the subscription requests to be added for the specified security /// </summary> /// <param name="security">The security to get subscriptions for</param> /// <param name="currentTimeUtc">The current time in utc. This is the frontier time of the algorithm</param> /// <param name="maximumEndTimeUtc">The max end time</param> /// <param name="subscriptionService">Instance which implements <see cref="ISubscriptionDataConfigService"/> interface</param> /// <returns>All subscriptions required by this security</returns> public virtual IEnumerable <SubscriptionRequest> GetSubscriptionRequests(Security security, DateTime currentTimeUtc, DateTime maximumEndTimeUtc, ISubscriptionDataConfigService subscriptionService) { var result = subscriptionService.Add(security.Symbol, UniverseSettings.Resolution, UniverseSettings.FillForward, UniverseSettings.ExtendedMarketHours, dataNormalizationMode: UniverseSettings.DataNormalizationMode, subscriptionDataTypes: UniverseSettings.SubscriptionDataTypes, dataMappingMode: UniverseSettings.DataMappingMode, contractDepthOffset: (uint)Math.Abs(UniverseSettings.ContractDepthOffset)); return(result.Select(config => new SubscriptionRequest(isUniverseSubscription: false, universe: this, security: security, configuration: config, startTimeUtc: currentTimeUtc, endTimeUtc: maximumEndTimeUtc))); }
/// <summary> /// Gets the subscription requests to be added for the specified security /// </summary> /// <param name="security">The security to get subscriptions for</param> /// <param name="currentTimeUtc">The current time in utc. This is the frontier time of the algorithm</param> /// <param name="maximumEndTimeUtc">The max end time</param> /// <param name="subscriptionService">Instance which implements <see cref="ISubscriptionDataConfigService"/> interface</param> /// <returns>All subscriptions required by this security</returns> public override IEnumerable <SubscriptionRequest> GetSubscriptionRequests(Security security, DateTime currentTimeUtc, DateTime maximumEndTimeUtc, ISubscriptionDataConfigService subscriptionService) { var isInternal = !security.Symbol.IsCanonical(); var result = subscriptionService.Add(security.Symbol, UniverseSettings.Resolution, UniverseSettings.FillForward, UniverseSettings.ExtendedMarketHours, dataNormalizationMode: UniverseSettings.DataNormalizationMode, subscriptionDataTypes: UniverseSettings.SubscriptionDataTypes, dataMappingMode: UniverseSettings.DataMappingMode, contractDepthOffset: (uint)Math.Abs(UniverseSettings.ContractDepthOffset), isInternalFeed: isInternal); return(result.Select(config => new SubscriptionRequest(isUniverseSubscription: false, universe: this, security: security, configuration: new SubscriptionDataConfig(config, isInternalFeed: config.IsInternalFeed || config.TickType == TickType.OpenInterest), startTimeUtc: currentTimeUtc, endTimeUtc: maximumEndTimeUtc))); }