/// <summary> /// Initializes a new instance of the <see cref="BaseUniverseRule"/> class. /// </summary> /// <param name="tradeBackwardWindowSize"> /// The trade backward window size. /// </param> /// <param name="marketBackwardWindowSize"> /// The market backward window size. /// </param> /// <param name="forwardWindowSize"> /// The forward window size. /// </param> /// <param name="rules"> /// The rules. /// </param> /// <param name="version"> /// The version. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="ruleContext"> /// The rule context. /// </param> /// <param name="equityFactory"> /// The equity factory. /// </param> /// <param name="fixedIncomeFactory"> /// The fixed income factory. /// </param> /// <param name="runMode"> /// The run mode. /// </param> /// <param name="logger"> /// The logger. /// </param> /// <param name="tradingStackLogger"> /// The trading stack logger. /// </param> protected BaseUniverseRule( TimeSpan tradeBackwardWindowSize, TimeSpan marketBackwardWindowSize, TimeSpan forwardWindowSize, Rules rules, string version, string name, ISystemProcessOperationRunRuleContext ruleContext, IUniverseEquityMarketCacheFactory equityFactory, IUniverseFixedIncomeMarketCacheFactory fixedIncomeFactory, RuleRunMode runMode, ILogger logger, ILogger <TradingHistoryStack> tradingStackLogger) { this.TradeBackwardWindowSize = tradeBackwardWindowSize; this.ForwardWindowSize = forwardWindowSize; this.Rule = rules; this.Version = version ?? string.Empty; this.UniverseEquityIntradayCache = equityFactory?.BuildIntraday(marketBackwardWindowSize, runMode) ?? throw new ArgumentNullException(nameof(equityFactory)); this.FutureUniverseEquityIntradayCache = equityFactory?.BuildIntraday(forwardWindowSize, runMode) ?? throw new ArgumentNullException(nameof(equityFactory)); this.UniverseEquityInterdayCache = equityFactory?.BuildInterday(runMode) ?? throw new ArgumentNullException(nameof(equityFactory)); this.UniverseFixedIncomeIntradayCache = fixedIncomeFactory?.BuildIntraday(marketBackwardWindowSize, runMode) ?? throw new ArgumentNullException(nameof(fixedIncomeFactory)); this.FutureUniverseFixedIncomeIntradayCache = fixedIncomeFactory?.BuildIntraday(forwardWindowSize, runMode) ?? throw new ArgumentNullException(nameof(fixedIncomeFactory)); this.UniverseFixedIncomeInterdayCache = fixedIncomeFactory?.BuildInterday(runMode) ?? throw new ArgumentNullException(nameof(fixedIncomeFactory)); this.TradingHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.TradingFillsHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.TradingInitialHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.DelayedTradingHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.DelayedTradingFillsHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.DelayedTradingInitialHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(); this.RuleCtx = ruleContext ?? throw new ArgumentNullException(nameof(ruleContext)); this.name = name ?? "Unnamed rule"; this.RunMode = runMode; this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.tradingStackLogger = tradingStackLogger ?? throw new ArgumentNullException(nameof(tradingStackLogger)); }
/// <summary> /// The base clone. /// </summary> public void BaseClone() { this.UniverseEquityIntradayCache = (IUniverseEquityIntraDayCache)this.UniverseEquityIntradayCache.Clone(); this.UniverseEquityInterdayCache = (IUniverseEquityInterDayCache)this.UniverseEquityInterdayCache.Clone(); this.FutureUniverseEquityIntradayCache = (IUniverseEquityIntraDayCache)this.FutureUniverseEquityIntradayCache.Clone(); this.UniverseFixedIncomeInterdayCache = (IUniverseFixedIncomeInterDayCache)this.UniverseFixedIncomeInterdayCache.Clone(); this.UniverseFixedIncomeIntradayCache = (IUniverseFixedIncomeIntraDayCache)this.UniverseFixedIncomeIntradayCache.Clone(); this.FutureUniverseFixedIncomeIntradayCache = (IUniverseFixedIncomeIntraDayCache)this.FutureUniverseFixedIncomeIntradayCache.Clone(); this.TradingHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.TradingHistory); this.TradingFillsHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.TradingFillsHistory); this.TradingInitialHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.TradingInitialHistory); this.DelayedTradingHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.DelayedTradingHistory); this.DelayedTradingFillsHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.DelayedTradingFillsHistory); this.DelayedTradingInitialHistory = new ConcurrentDictionary <InstrumentIdentifiers, ITradingHistoryStack>(this.DelayedTradingInitialHistory); }
public IMarketDataCacheStrategy InterdayStrategy(IUniverseFixedIncomeInterDayCache cache) { return(new FixedIncomeInterDayMarketCacheStrategy(cache)); }
public FixedIncomeInterDayMarketCacheStrategy(IUniverseFixedIncomeInterDayCache cache) { this._cache = cache ?? throw new ArgumentNullException(nameof(cache)); }