/// <summary> /// Initializes a new instance of the <see cref="UserDefinedUniverse"/> class /// </summary> /// <param name="configuration">The configuration used to resolve the data for universe selection</param> /// <param name="subscriptionSettings">The settings used for new subscriptions generated by this universe</param> /// <param name="interval">The interval at which selection should be performed</param> /// <param name="symbols">The initial set of symbols in this universe</param> public UserDefinedUniverse(SubscriptionDataConfig configuration, SubscriptionSettings subscriptionSettings, TimeSpan interval, IEnumerable<Symbol> symbols) : base(configuration) { _interval = interval; _symbols = symbols.ToHashSet(); _subscriptionSettings = subscriptionSettings; }
/// <summary> /// Initializes a new instance of the <see cref="UserDefinedUniverse"/> class /// </summary> /// <param name="configuration">The configuration used to resolve the data for universe selection</param> /// <param name="subscriptionSettings">The settings used for new subscriptions generated by this universe</param> /// <param name="interval">The interval at which selection should be performed</param> /// <param name="selector">Universe selection function invoked for each time returned via GetTriggerTimes. /// The function parameter is a DateTime in the time zone of configuration.ExchangeTimeZone</param> public UserDefinedUniverse(SubscriptionDataConfig configuration, SubscriptionSettings subscriptionSettings, TimeSpan interval, Func<DateTime,IEnumerable<string>> selector) : base(configuration) { _interval = interval; _subscriptionSettings = subscriptionSettings; _selector = time => { var selectSymbolsResult = selector(time.ConvertFromUtc(Configuration.ExchangeTimeZone)); // if we received an unchaged then short circuit the symbol creation and return it directly if (ReferenceEquals(selectSymbolsResult, Unchanged)) return Unchanged; return selectSymbolsResult.Select(sym => Symbol.Create(sym, Configuration.SecurityType, Configuration.Market)); }; }
/// <summary> /// Initializes a new instance of the <see cref="FuncUniverse"/> class /// </summary> /// <param name="configuration">The configuration used to resolve the data for universe selection</param> /// <param name="subscriptionSettings">The settings used for new subscriptions generated by this universe</param> /// <param name="universeSelector">Returns the symbols that should be included in the universe</param> public FuncUniverse(SubscriptionDataConfig configuration, SubscriptionSettings subscriptionSettings, Func<IEnumerable<BaseData>, IEnumerable<Symbol>> universeSelector) : base(configuration) { _universeSelector = universeSelector; _subscriptionSettings = subscriptionSettings; }
/// <summary> /// Initializes a new instance of the <see cref="FuncUniverse"/> class /// </summary> /// <param name="configuration">The configuration used to resolve the data for universe selection</param> /// <param name="subscriptionSettings">The settings used for new subscriptions generated by this universe</param> /// <param name="universeSelector">Returns the symbols that should be included in the universe</param> public FuncUniverse(SubscriptionDataConfig configuration, SubscriptionSettings subscriptionSettings, Func <IEnumerable <BaseData>, IEnumerable <Symbol> > universeSelector) : base(configuration) { _universeSelector = universeSelector; _subscriptionSettings = subscriptionSettings; }
/// <summary> /// Initializes a new instance of the <see cref="FuncUniverse"/> class /// </summary> /// <param name="configuration"></param> /// <param name="subscriptionSettings"></param> /// <param name="coarse">Defines an initial coarse selection</param> public FuncUniverse(SubscriptionDataConfig configuration, SubscriptionSettings subscriptionSettings, Func<IEnumerable<BaseData>, IEnumerable<Symbol>> coarse) { _coarse = coarse; Configuration = configuration; SubscriptionSettings = subscriptionSettings; }