Esempio n. 1
0
        /// <summary>
        /// Removes the subscription from the data feed, if it exists
        /// </summary>
        /// <param name="configuration">The configuration of the subscription to remove</param>
        /// <returns>True if the subscription was successfully removed, false otherwise</returns>
        public bool RemoveSubscription(SubscriptionDataConfig configuration)
        {
            Subscription subscription;

            if (!_subscriptions.TryRemove(configuration, out subscription))
            {
                Log.Error("FileSystemDataFeed.RemoveSubscription(): Unable to remove: " + configuration.ToString());
                return(false);
            }

            subscription.Dispose();
            Log.Debug("FileSystemDataFeed.RemoveSubscription(): Removed " + configuration.ToString());

            UpdateFillForwardResolution();

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Removes the subscription from the data feed, if it exists
        /// </summary>
        /// <param name="configuration">The configuration of the subscription to remove</param>
        /// <returns>True if the subscription was successfully removed, false otherwise</returns>
        public bool RemoveSubscription(SubscriptionDataConfig configuration)
        {
            // remove the subscription from our collection
            Subscription subscription;

            if (!_subscriptions.TryGetValue(configuration, out subscription))
            {
                return(false);
            }

            var security = subscription.Security;

            // remove the subscriptions
            if (subscription.Configuration.IsCustomData)
            {
                _customExchange.RemoveEnumerator(security.Symbol);
                _customExchange.RemoveDataHandler(security.Symbol);
            }
            else
            {
                _dataQueueHandler.Unsubscribe(_job, new[] { security.Symbol });
                _exchange.RemoveDataHandler(security.Symbol);
            }

            subscription.Dispose();

            // keep track of security changes, we emit these to the algorithm
            // as notications, used in universe selection
            _changes += SecurityChanges.Removed(security);


            Log.Trace("LiveTradingDataFeed.RemoveSubscription(): Removed " + configuration.ToString());
            UpdateFillForwardResolution();

            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// Removes the subscription from the data feed, if it exists
        /// </summary>
        /// <param name="configuration">The configuration of the subscription to remove</param>
        /// <returns>True if the subscription was successfully removed, false otherwise</returns>
        public bool RemoveSubscription(SubscriptionDataConfig configuration)
        {
            // remove the subscription from our collection
            Subscription subscription;

            if (!_subscriptions.TryRemove(configuration, out subscription))
            {
                Log.Error("LiveTradingDataFeed.RemoveSubscription(): Unable to remove: " + configuration.ToString());
                return(false);
            }

            var security = subscription.Security;

            // remove the subscriptions
            if (subscription.Configuration.IsCustomData)
            {
                _customExchange.RemoveEnumerator(security.Symbol);
                _customExchange.RemoveDataHandler(security.Symbol);
            }
            else
            {
                _dataQueueHandler.Unsubscribe(_job, new[] { security.Symbol });
                _exchange.RemoveDataHandler(security.Symbol);
            }

            // if the security is no longer a member of the universe, then mark the subscription properly
            if (subscription.Universe != null && !subscription.Universe.Members.ContainsKey(configuration.Symbol))
            {
                subscription.MarkAsRemovedFromUniverse();
            }
            subscription.Dispose();

            // keep track of security changes, we emit these to the algorithm
            // as notications, used in universe selection
            if (!subscription.IsUniverseSelectionSubscription)
            {
                _changes += SecurityChanges.Removed(security);
            }

            Log.Trace("LiveTradingDataFeed.RemoveSubscription(): Removed " + configuration);
            UpdateFillForwardResolution();

            return(true);
        }
Esempio n. 4
0
 /// <summary>Returns a string that represents the current object.</summary>
 /// <returns>A string that represents the current object.</returns>
 /// <filterpriority>2</filterpriority>
 public override string ToString()
 {
     return(Configuration.ToString());
 }