public SessionModel(HubConfigurationModel hubConfig, BrokerConfigurationModel brokerConfig, ResponseConfigurationModel responseConfig, ReportConfigurationModel reportConfig) { _hub = DarkLightFactory.GetHub(hubConfig); _broker = DarkLightFactory.GetBroker(_hub, brokerConfig); _responseList = DarkLightFactory.GetResponseList(_hub, responseConfig); _reporter = DarkLightFactory.GetReporter(_hub, reportConfig); //_riskMgr = DarkLightFactory.GetRiskManager(_hub, reportConfig); //_portfolioMgr = DarkLightFactory.GetPortfolioManager(_hub, reportConfig); //_hub.EventDict[EventType.ReportMessage] }
public static List <IDarkLightResponse> GetResponseList(IHub hub, ResponseConfigurationModel config) { var dlResponseList = new List <IDarkLightResponse>(); foreach (var response in config.ResponseList) { IDarkLightResponse dlResponse = new DarkLightResponse(hub, config); dlResponseList.Add(dlResponse); } return(dlResponseList); }
public DarkLightResponse(IHub hub, ResponseConfigurationModel config) : base(hub, config) { _type = ActorType.Response; //Plug into Tradelink _response = config.ResponseList[0]; _response.SendBasketEvent += PublishBasket; _response.SendCancelEvent += PublishCancelOrder; _response.SendChartLabelEvent += PublishChartLabel; _response.SendIndicatorsEvent += PublishIndicators; _response.SendDebugEvent += PublishMessage; _response.SendOrderEvent += PublishOrder; }
private void RunBacktestButton_Click2(object sender, System.Windows.RoutedEventArgs e) { UnbindInitializationModels(); UnbindReportModels(); _backtest2.Clear(); _activityModel.Status = "Backtest started."; var tickDataGroups = BacktestingTickFileControl.GetSelectedFilePaths(); _activityModel.NumberTestsToRun = tickDataGroups.Count; _activityModel.NumberTestsCompleted = 0; Task.Factory.StartNew(() => { _activityModel.AllRunsCompleted.WaitOne(); if (_backtest2.BacktestReports.Any()) { _backtest2.SelectedReport = _backtest2.BacktestReports.First(); BindStatisticsModels2("Results"); } }); foreach (var _tickDataGroup in tickDataGroups) { var hubConfig = new HubConfigurationModel(HubType.Local); var brokerConfig = new BrokerConfigurationModel(BrokerType.Sim); brokerConfig.PlayToValue = _backtestingConfigurationModel.SelectedPlayToValue; brokerConfig.SimUseBidAskFills = false; brokerConfig.TickFiles = _tickDataGroup; brokerConfig.SubscriptionList = new List <byte[]> { EventType.Basket, EventType.CancelOrder, EventType.Order }; var responseConfig = new ResponseConfigurationModel(); responseConfig.ResponseList.Add(_backtestingConfigurationModel.GetFreshResponseInstance()); responseConfig.SubscriptionList = new List <byte[]> { EventType.CancelOrderAck, EventType.Fill, EventType.Message, EventType.OrderAck, EventType.Tick }; var reportConfig = new ReportConfigurationModel(); reportConfig.Type = ReportType.Batch; reportConfig.ActivityInstance = _activityModel; var info = TickFileNameInfo.GetTickFileInfoFromLongName(_tickDataGroup.First()); reportConfig.ReportName = "Y:" + info.Year.ToString() + ",M:" + info.Month.ToString() + ",D:" + info.Day.ToString(); reportConfig.SubscriptionList = new List <byte[]> { EventType.ChartLabel, EventType.Fill, EventType.Indicator, EventType.Message, EventType.Order, EventType.ServiceTransition, EventType.Tick }; reportConfig.FilterMode = true; var sessionModel = new SessionModel(hubConfig, brokerConfig, responseConfig, reportConfig); _backtest2.AddRun(sessionModel); sessionModel.Reporter.RegisterDispatcher(EventType.Fill, FillsTab.Dispatcher); sessionModel.Reporter.RegisterDispatcher(EventType.Indicator, IndicatorTab.Dispatcher); sessionModel.Reporter.RegisterDispatcher(EventType.Message, MessagesTab.Dispatcher); sessionModel.Reporter.RegisterDispatcher(EventType.Order, OrdersTab.Dispatcher); sessionModel.Reporter.RegisterDispatcher(EventType.Plot, BacktestPlotter.Dispatcher); sessionModel.Reporter.RegisterDispatcher(EventType.Position, PositionTab.Dispatcher); } BindInitializationModels2(); _backtest2.Start(0); }