/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using QuantConnect.Algorithm.Framework.Alphas.Analysis; 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); } }