private bool RollOrderBooks(DateTime currentTime) { if (!currentTime.IsWithinCacheRangeOf(bookRollPreviousCheckTime)) { pertinentContracts = instrumentCollection.PertinentContracts(currentTime); ReconcileMissingContracts(); ReconcileExpiredContracts(); bookRollPreviousCheckTime = currentTime; return true; } return false; }
/// <summary> /// Returns 'true' if the InstrumentId property of the order book is pertinent, according to the collection of pertinent instrument IDs provided as an argument. /// </summary> /// <param name="pertinentContracts"></param> /// <returns></returns> public bool IsPertinent(List<int> pertinentContracts, DateTime currentTime) { if (currentTime.IsWithinCacheRangeOf(previousCallTime)) { return isPertinent; } isPertinent = false; foreach (int pertinentInstrumentId in pertinentContracts) { if (InstrumentId == pertinentInstrumentId) { isPertinent = true; break; } } previousCallTime = currentTime; return isPertinent; }
/// <summary> /// Returns an up-to-date list of the instrument's pertinent contracts, as defined by the instrument's configuration file. /// </summary> /// <param name="currentTime"></param> /// <returns></returns> public List<int> PertinentContracts(DateTime currentTime) { if (currentTime.IsWithinCacheRangeOf(previousCallTime)) { return pertinentContracts; } pertinentContracts.Clear(); foreach (int x in PertinentContractMonths) { pertinentContracts.Add(GetMonth(x, currentTime)); } previousCallTime = currentTime; return pertinentContracts; }