public void Observe(IGroupRuntimeMetricManager manager) { if (AfterUpdatedMetrics != null) { AfterUpdatedMetrics(); } }
public StandardEvaluationContext( ITradingDataProvider provider, EquityManager equityManager, ILogger logger, TradingSettings settings = null, StreamWriter dumpDataWriter = null, StockBlockRelationshipManager relationshipManager = null) { if (equityManager == null || provider == null || logger == null) { throw new ArgumentNullException(); } _provider = provider; _equityManager = equityManager; _logger = logger; _settings = settings; _relationshipManager = relationshipManager; var metricManager = new StandardRuntimeMetricManager(_provider.GetAllTradingObjects().Length); var groupMetricManager = new StandardGroupRuntimeMetricManager(metricManager); // register the group metric manager as observer of metric manager. metricManager.RegisterAfterUpdatedMetricsObserver(groupMetricManager); _metricManager = metricManager; _groupMetricManager = groupMetricManager; _boardIndexTradingObjects = new Dictionary <string, ITradingObject>(); var boards = new StockBoard[] { StockBoard.GrowingBoard, StockBoard.MainBoard, StockBoard.SmallMiddleBoard }; foreach (var board in boards) { string boardIndex = StockName.GetBoardIndex(board); ITradingObject tradingObject = GetTradingObject(boardIndex); _boardIndexTradingObjects.Add(boardIndex, tradingObject); } _dumper = dumpDataWriter == null ? null : new StreamDataDumper(dumpDataWriter, 8, 3, _settings.DumpMetrics, this, _provider); }