protected override void engine_Complete(RunWorkerCompletedEventArgs e) { string[] r = _messageBuilder.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string l in r) { //_activityModel.Messages.Add(new ObservableMessage {Message = l}); Messages.Add(new ObservableMessage { Message = l }); } IndicatorTable = _indicatorTable; TickTable = _tickCollection; OrderTable = _orderCollection; FillTable = _fillCollection; PositionTable = _positionCollection; Plots = new ObservableCollection <TimePlot>(_plotMap.Values); //_updatePlots(); string responseName = _engineInfo.ResponseName; string prettyTickFiles = _engineInfo.PrettyTickFiles; var name = responseName + "." + prettyTickFiles; var resultInstance = DarkLightResults.GetDarkLightResults(name, _tradeList, engine_MessageUpdate, 0.0001m, 0.0012m); ResultsList = new ObservableCollection <KeyValuePair <string, string> >(PlottingUtilities.GetFieldAndPropertyValueList(resultInstance)); Results = resultInstance; _activityModel.NumberTestsCompleted = _activityModel.NumberTestsCompleted + 1; if (e.Error != null) { engine_MessageUpdate(e.Error.Message + e.Error.StackTrace); engine_StatusUpdate("Terminated because of an Exception. See messages."); } else if (e.Cancelled) { engine_StatusUpdate("Canceled play."); } else { string playToString = _engineInfo.PlayToString; engine_StatusUpdate("Reached next " + playToString + " at time " + KadTime); } }
public DarkLightResults(Results results) { PlottingUtilities.CopyParameters(results, this); NetProfitOrLoss = GrossPL - (HundredLots * 100 * ComPerShare); NetPerShare = SharesTraded != 0 ? NetProfitOrLoss / SharesTraded : 0.0m; }