// static method to get data directly by passing the Args to parser: i.e. input string, Focus, and bond curve. public static Tuple<string, DatedDataCollectionGen<double>> getData(DateTime earliestDate_, Args args, bool insertNan_ = true, bool displayAnyError_ = true) { if (args.Curve == Data.BondCurves.NONE && args.Focus != BondSpreadAnalysis.Enums.Focus.Yield) { if (displayAnyError_) throw new Exception( string.Format("No curve selected: You need to select a curve over which {0} is calculated", args.Focus)); } var processed = InputStringParser.ParseToCombination(args.Curve, args.Focus, args.Text.Trim()); if (processed == null) { if (displayAnyError_) throw new Exception( string.Format("Unrecognised input :Unable to parse given input string '{0}'. Please look at examples", args.Text)); } if (processed.Item1 != null) { if (displayAnyError_) throw new Exception("Error processing given input string"); } return new Tuple<string, DatedDataCollectionGen<double>>(null, processed.Item2); }
private void PlotCMT(DateTime endDate) { for (int i = 0; i < CMTInputVM.Count; i++) { var args = new Args {Curve = CMTInputVM[i].Curve, Focus = CMTInputVM[i].Focus, Text = CMTInputVM[i].Text}; var data = DailyDataRetriever.getData(new DateTime(StartYear, 01, 01), args); var dataWithRange = data.Item2.GetValuesBetweenDates(new DateTime(StartYear, 1, 1), endDate); CMTInputVM[i].SeriesData = dataWithRange; if (HasTechnicals) View.AddChartSeriesWithIndicator(dataWithRange, CMTInputVM[i].Text); else View.AddChartSeries(dataWithRange, CMTInputVM[i].Text); View.CreateChartLegend(CMTInputVM[i].Text, CMTInputVM.Count); SetupTechnicalsMark(dataWithRange); } }