public void ExecuteNextDay() { // Increment the date CurrentSimulationDate = Calendar.NextTradingDay(CurrentSimulationDate); // // Market Open // // Process morning trades TradeManager.ProcessTradeQueue(CurrentSimulationDate, TimeOfDay.MarketOpen); // // Market Close // // Process end of day trades & stops TradeManager.ProcessTradeQueue(CurrentSimulationDate, TimeOfDay.MarketEndOfDay); // Update stoplosses RiskManager.UpdateStoplosses(CurrentSimulationDate); // Scale open positions //RiskManager.ScalePositions(CurrentSimulationDate); // Generate new signals var securityUniverse = RiskManager.GetSecurityUniverse(); var signals = StrategyManager.GenerateSignals(securityUniverse, CurrentSimulationDate); // Send signals for processing RiskManager.ProcessSignals(signals, CurrentSimulationDate); // End of Day (EOD) }