/// <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));
        }
Ejemplo n.º 2
0
        /// <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)));
        }
Ejemplo n.º 3
0
        /// <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) });
            }
Ejemplo n.º 5
0
        /// <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)));
        }
Ejemplo n.º 6
0
        /// <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)));
        }