using System; using QuantConnect.Algorithm.Framework.Alphas.Analysis; using QuantConnect.Interfaces; namespace QuantConnect.Algorithm.Framework.Alphas { /// /// Abstraction point to handle the various concerns from a common api. /// At the time of writing, these concerns are charting, scoring, perisistence and messaging. /// public interface IInsightManagerExtension { /// /// Invokes the manager at the end of the time step. /// /// The current frontier time utc void Step(DateTime frontierTimeUtc); /// /// Allows the extension to initialize itself over the expected range /// /// The start date of the algorithm /// The end date of the algorithm /// The algorithm's current utc time void InitializeForRange(DateTime algorithmStartDate, DateTime algorithmEndDate, DateTime algorithmUtcTime); /// /// Invoked when the insight manager first received a generated insight from the algorithm /// /// Context whose insight has just generated void OnInsightGenerated(InsightAnalysisContext context); /// /// Invoked when the insight manager detects that an insight has closed (frontier has passed insight period) /// /// Context whose insight has just closed void OnInsightClosed(InsightAnalysisContext context); /// /// Invoked when the insight manager has completed analysis on an insight /// /// Context whose insight has just completed analysis void OnInsightAnalysisCompleted(InsightAnalysisContext context); } }