private double[] findWorstInMonth(ReturnsEval.DataSeriesEvaluator eval_) { double[] ret = new double[eval_.Monthly.Dates.Length]; double lowest = 0d; int monthIndex = 0; double mtd=0d; DateTime monthStart=eval_.Daily.Dates[0]; for (int i = 0; i < eval_.Daily.Dates.Length; ++i) { DateTime today = eval_.Daily.Dates[i]; if (today.Year != monthStart.Year || today.Month != monthStart.Month) { ret[monthIndex] = lowest; monthStart = today; mtd = 0d; lowest=0d; ++monthIndex; } mtd += eval_.Daily.Data[i]; lowest = Math.Min(mtd, lowest); } // commit the last one ret[monthIndex] = lowest; return ret; }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_, string dateFormat_) { ultraChart.DataSource = null; dt.Rows.Clear(); dt.Columns.Clear(); int numberOfValues = eval_[period_].Dates.Length; for (int i = 0; i < numberOfValues; ++i) { dt.Columns.Add(eval_[period_].Dates[i].ToString(dateFormat_, CultureInfo.InvariantCulture), typeof(double)); } DataRow row = dt.NewRow(); for (int i = 0; i < numberOfValues; ++i) { row[i] = eval_[period_].Data[i]; } dt.Rows.Add(row); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); ultraChart.InvalidateLayers(); showChartSeparateControl1.Create(dt, GetType(), period_.ToString() + " Returns of " + eval_.Name); setuptooltip(); }
public void Bind(ReturnsEval.DataSeries series_) { ultraChart.DataSource = null; dt.Rows.Clear(); dt.Columns.Clear(); if (series_.DrawDowns.Length == 0) return; for (int i = 0; i < 10 && i < series_.DrawDowns.Length; ++i) { dt.Columns.Add(getTitle(i+1), typeof(double)); } DataRow row = dt.NewRow(); for (int i = 0; i < 10 && i < series_.DrawDowns.Length; ++i) { row[i] = (series_.DrawDowns[i].ValueDown * 100); } ultraChart.Axis.Y.RangeMax = Convert.ToDouble(series_.DrawDowns[0].ValueDown * 100); label1.Text = string.Format("Top {0} drawdowns", Math.Min(10, series_.DrawDowns.Length).ToString()); dt.Rows.Add(row); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); setTitlePosition(); }
public void Bind(ReturnsEval.RegressionResult result_) { dt.Rows.Clear(); dt.Columns.Clear(); ultraChart.DataSource = null; dt.Columns.Add("Date", typeof(DateTime)); dt.Columns.Add("Observations", typeof(double)); dt.Columns.Add("Regression", typeof(double)); for (int i = 0; i < result_.RegressionPointDates.Length; ++i) { double regressionVal = result_.LinearRegression.HasInterceptParameter ? result_.LinearRegression.Parameters[0] : 0.0 ; for (int j = 0; j < result_.LinearRegressionParameters.Length; ++j) regressionVal += (result_.LinearRegressionParameters[j].Value * result_.RegressionMatrix[i, j]); dt.LoadDataRow(new object[] { result_.RegressionPointDates[i], result_.Observations[i], regressionVal }, true); } dt.AcceptChanges(); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); showChartSeparateControl1.Create(dt, GetType(), "Regression vs. Observed"); }
public ConditionalCorrelationAnalyzer(ReturnsEval.DataSeriesEvaluator eval1_, ReturnsEval.DataSeriesEvaluator eval2_) { m_eval = eval1_; m_eval2 = eval2_; // find common dates List<DateTime> commonDates = new List<DateTime>(); List<DateTime> stratDates = new List<DateTime>(m_eval.Daily.Dates); foreach (DateTime date in m_eval2.Daily.Dates) if (stratDates.Contains(date)) commonDates.Add(date); QuickSort.Sort<DateTime>(commonDates); List<double> first = new List<double>(); List<double> second = new List<double>(); // get the values for each of the common dates foreach (DateTime date in commonDates) { first.Add(m_eval.Daily.DataValueOnDate(date)); second.Add(m_eval2.Daily.DataValueOnDate(date)); } m_eval = new DataSeriesEvaluator(commonDates.ToArray(), first.ToArray(), eval1_.Name, DataSeriesType.Returns); m_eval2 = new DataSeriesEvaluator(commonDates.ToArray(), second.ToArray(), eval2_.Name, DataSeriesType.Returns); recalc(); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_) { m_eval = eval_; m_period = period_; ClearSeries(); DatedDataCollectionGen<double> daily = eval_.Daily; AddSeries(eval_.Daily.Dates, eval_.Daily.CumulativeReturnSeries, "Cumulative Pnl", 40, "##0.0#%"); { DatedDataCollectionGen<double>[] years = new DatedDataCollectionGen<double>[] { daily.ToYearsCumulativeYTD(), daily.ToYearsCumulativeYTD() }; int index = 1; for (int i = 0; i < years[0].Length; ++i) { if (i>0 && years[0].Dates[i].Year != years[0].Dates[i - 1].Year) index = (index == 1) ? 0 : 1; years[index].Data[i] = 0d; } if (ShowYearly) { AddSeries(years[0].Dates, years[0].Data, "YTD Cumulative(A)", 40, "##0.0#%"); AddSeries(years[1].Dates, years[1].Data, "YTD Cumulative(B)", 40, "##0.0#%"); } } //AddSeries(daily.Dates, daily.ToYearsCumulativeYTD().Data, "YTD Cumulative", 40, "##0.0#%"); //AddSeries(daily.Dates, daily.ToMonthsCumulativeMTD().Data, "MTD Cumulative", 40, "##0.0#%"); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_, string dateFormat_, int[] filtIndicies_) { ultraChart.DataSource = null; dt.Rows.Clear(); dt.Columns.Clear(); if (eval_.InnerSeries.Count == 0) return; int[] filt = filtIndicies_; if (filt == null) { filt = new int[eval_.InnerSeries.Count]; for (int i = 0; i < filt.Length; ++i) filt[i] = i; } // create a column for the date dt.Columns.Add("Date", typeof(string)); // create a column for each inner evaluator foreach (int ind in filt) dt.Columns.Add(eval_.InnerSeries[ind].Name, typeof(double)); //foreach (ReturnsEval.DataSeriesEvaluator eval in eval_.InnerSeries) //{ // dt.Columns.Add(eval.Name, typeof(double)); //} int numOfRows = eval_[period_].Dates.Length; for (int i = 0; i < numOfRows; ++i) { DataRow row = dt.NewRow(); row[0] = eval_[period_].Dates[i].ToString(dateFormat_); for (int j = 0; j < filt.Length; ++j) { row[j + 1] = eval_.InnerSeries[filt[j]][period_].Data[i]; } //for (int j = 0; j < eval_.InnerSeries.Count; ++j) //{ // row[j + 1] = eval_.InnerSeries[j][period_].Data[i]; //} dt.Rows.Add(row); } ultraChart.ColorModel.ModelStyle = Infragistics.UltraChart.Shared.Styles.ColorModels.CustomSkin; ultraChart.ColorModel.Skin.PEs.Clear(); for (int i = 0; i < eval_.InnerSeries.Count; ++i) ultraChart.ColorModel.Skin.PEs.Add(new PaintElement(ColorAttribute.GetColor(i))); ultraChart.ColorModel.Skin.ApplyRowWise = false; setuptooltip(); ultraChart.DataSource = dt; ultraChart.DataBind(); }
public void Bind(ReturnsEval.ConditionalCorrelationAnalyzer anal_) { tbCond_VolLength.Bind(anal_, "NumDays", new Validators.IntValidator(null)); tbCond_NumBuckets.Bind(anal_, "NumSections", new Validators.IntValidator(null)); boundInfraGrid1Vol.Bind(anal_.List, typeof(ReturnsEval.ConditionalCorrelationAnalyzer.ResultItem)); cbEqualBucketSize.DataBindings.Add("Checked", anal_, "EqualBuckets", false, DataSourceUpdateMode.OnPropertyChanged); }
public void Bind(ReturnsEval.CorrelationAnalyzer analyzer_) { m_anal = analyzer_; m_anal.PropertyChanged += propChanged; setupDatatable(); refresh(); EstablishDefaultTooltip(); }
public void Bind(ReturnsEval.DataSeries series_) { lblDailyLargestLoss.Bind(series_, "Min", new Validators.DoubleValidator("#0.00%")); lblDailyLargestProfit.Bind(series_, "Max", new Validators.DoubleValidator("#0.00%")); lblKurtosis.Bind(series_, "Kurtosis", new Validators.DoubleValidator("#0.00")); lblSkew.Bind(series_, "Skewness", new Validators.DoubleValidator("#0.00")); lblavgLoss.Bind(series_, "AverageLoss", new Validators.DoubleValidator("#0.00%")); lblAvgProfit.Bind(series_, "AverageWin", new Validators.DoubleValidator("#0.00%")); m_series = series_; }
public void Bind(ReturnsEval.CorrelationAnalyzer anal_) { init(); SI.Controls.Util.ClearBindings(this); tbNumPeriods.Bind(anal_, "NumberOfPeriods", new Validators.IntValidator(null)); cmbTenor.Bind(anal_, "Period", new Validators.EnumDescValidator(ReturnsEval.Period.Daily)); rollingCorrelationChart1.Bind(anal_); lblOverallCorr.Bind(anal_, "OverallCorrelation", new Validators.DoubleValidator("##0.0%")); cbSpearmans.DataBindings.Add("Checked", anal_, "DoSpearmans", false, DataSourceUpdateMode.OnPropertyChanged); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, DateTime startDate_, DateTime endDate_) { ReturnsEval.DataSeries[] series; DataRow row; ultraChart.DataSource = null; dt.Columns.Clear(); dt.Rows.Clear(); if (eval_ == null) return; if (eval_.InnerSeries.Count == 0) return; series = new ReturnsEval.DataSeries[eval_.InnerSeries.Count]; for (int i = 0; i < series.Length; ++i) { series[i] = eval_.InnerSeries[i][ReturnsEval.Period.Daily]; dt.Columns.Add(eval_.InnerSeries[i].Name.Replace("_GSLE_1", string.Empty), typeof(double)); } int startIndex = 0; int endIndex = 0; for(int i=0;i<eval_[ReturnsEval.Period.Daily].Dates.Length;++i) { if(eval_[ReturnsEval.Period.Daily].Dates[i]<=startDate_) startIndex=i; if(eval_[ReturnsEval.Period.Daily].Dates[i]>endDate_) { break; } else { endIndex=i; } } row = dt.NewRow(); for (int j = 0; j < series.Length; ++j) { row[j] = series[j].Data.Slice(startIndex, endIndex - startIndex).Sum(); } dt.Rows.Add(row); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); showChartSeparateControl1.Create(dt, GetType(), "Return attribution of " + eval_.Name); }
public void Create(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_, int[] filterIndicies_) { dt.Rows.Clear(); dt.Columns.Clear(); ultraChart.ColorModel.Skin.PEs.Clear(); if (eval_.InnerSeries.Count == 0) return; m_eval = eval_; m_period = period_; m_filterIndicies = filterIndicies_; if (m_filterIndicies == null) { m_filterIndicies = new int[eval_.InnerSeries.Count]; for (int i = 0; i < m_filterIndicies.Length; ++i) m_filterIndicies[i] = i; } dt.Columns.Add("Title", typeof(string)); for(int i=0;i<m_filterIndicies.Length;++i) { dt.Columns.Add(eval_.InnerSeries[m_filterIndicies[i]].Name, typeof(double)); ultraChart.ColorModel.Skin.PEs.Add(new PaintElement(ColorAttribute.GetColor(i))); } ultraChart.DataSource = dt; ultraChart.DataBind(); string dateFormat = EnumHelper.GetAttribute<ReturnsEval.DateDisplayFormatAttribute>(period_).Format; ReturnsEval.DataSeries series = eval_[period_]; for(int j=0;j<series.Dates.Length;++j) { DataRow row = dt.NewRow(); row[0] = series.Dates[j].ToString(dateFormat); for(int i=0;i<m_filterIndicies.Length;++i) { row[i + 1] = eval_.InnerSeries[m_filterIndicies[i]][period_].Data[j]; } dt.Rows.Add(row); } ultraChart.DataBind(); }
public void Create(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period startingPeriod_) { m_args = new ARgsClass(); m_args.Period = startingPeriod_; boundComboBox1.Items.Add(ReturnsEval.Period.Daily); boundComboBox1.Items.Add(ReturnsEval.Period.Monthly); boundComboBox1.Bind(m_args, "Period", new Validators.EnumDescValidator(ReturnsEval.Period.Daily)); m_eval = eval_; m_args.PropertyChanged += handleArgsChanged; rebind(); }
public void Bind(ReturnsEval.DataSeriesEvaluator evaluator_) { m_evaluator = evaluator_; SI.Controls.Util.ClearBindings(this); init(); rebind(); if (evaluator_.HasTag(ReturnsEval.DataSeriesEvaluator.Tag.RebalDates)) { DateTime[] rebalDates = (DateTime[])evaluator_.GetTag(ReturnsEval.DataSeriesEvaluator.Tag.RebalDates); m_rebalDates = new List<DateTime>(rebalDates); } }
public void Bind(ReturnsEval.DataSeries series_) { lblDailyLargestLoss.Bind(series_, "Min", new Validators.DoubleValidator("#0.00%")); lblDailyLargestProfit.Bind(series_, "Max", new Validators.DoubleValidator("#0.00%")); lblDailyAverageReturn.Bind(series_, "Mean", new Validators.DoubleValidator("#0.00%")); lblDailyVolOfReturns.Bind(series_,"RealisedVolPerAnnum", new Validators.DoubleValidator("#0.00%")); lblDailyLosingPeriods.Bind(series_, "NumberOfLosingPeriods", new Validators.DoubleValidator("###")); lblDailyWinningPeriods.Bind(series_, "NumberOfWinningPeriods", new Validators.DoubleValidator("###")); lblKurtosis.Bind(series_, "Kurtosis", new Validators.DoubleValidator("#0.00")); lblSkew.Bind(series_, "Skewness", new Validators.DoubleValidator("#0.00")); lblavgLoss.Bind(series_, "AverageLoss", new Validators.DoubleValidator("#0.00%")); lblAvgProfit.Bind(series_, "AverageWin", new Validators.DoubleValidator("#0.00%")); m_series = series_; }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, int ddIndex_, bool drawdown_) { SI.Controls.Util.ClearBindings(this); ReturnsEval.DrawDown dd = (drawdown_) ? eval_.Daily.DrawDowns[ddIndex_] : eval_.Daily.DrawUps[ddIndex_]; m_eval = eval_; m_ddIndex = ddIndex_; m_isDrawdown=drawdown_; lblValue.Bind(dd, "ValueDown", new Validators.DoubleValidator("#0.00%")); lblFrom.Bind(dd, "StartDate", new Validators.DateValidator()); lblTo.Bind(dd, "LowDate", new Validators.DateValidator()); lblRecovery.Bind(dd, "RecoveryDate", new Validators.DateValidator()); lblZScore.Bind(dd, "ZScore", new Validators.DoubleValidator("#0.00")); lblProb.Bind(dd, "Prob", new Validators.DoubleValidator("#0.00%")); //lblProb.Visible = false; }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_) { m_rollingWindow = eval_[period_].RollingSharpeSeries; m_baseName = eval_.Name; cmbRollType.Items.Clear(); cmbRollType.Items.Add(ReturnsEval.RollingSeriesType.Sharpe); cmbRollType.Items.Add(ReturnsEval.RollingSeriesType.Vol); //cmbRollType.Items.Add(ReturnsEval.RollingSeriesType.K); subscribeToEvents(true); // will invoke a rebind... cmbRollType.SelectedItem = cmbRollType.Items[0]; //rebind(); }
public void Bind(ReturnsEval.CorrelationAnalyzer analyzer_, ReturnsEval.ConditionalCorrelationAnalyzer conditionalAnalyzer_) { if (analyzer_ == null) { ultraTabControl1.Tabs[0].Visible = false; } else { Bind(analyzer_); } if (conditionalAnalyzer_ == null) { ultraTabControl1.Tabs[1].Visible = false; } else { Bind(conditionalAnalyzer_); } }
public void Create(ReturnsEval.DataSeriesEvaluator eval_) { addAreas(); double[] worstInMonth = findWorstInMonth(eval_); for (int i = 0; i < eval_.Monthly.Dates.Length; ++i) { DateTime date = eval_.Monthly.Dates[i]; double perf = eval_.Monthly.Data[i]; double worst = worstInMonth[i]; int area = date.Month - 1; dts[area].LoadDataRow(new object[] { date.ToString("yy"), perf, worst }, true); } setuptooltip(); ultraChart.InvalidateLayers(); SI.Controls.LookFeel.ProcessChart(this); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_) { ReturnsEval.DataSeriesEvaluator[] comps; ultraChart.DataSource = null; // 1 row per drawdown // each col is component part (e.g. ccy) int numRow = Math.Min(5, eval_.Daily.DrawDowns.Length); int colNum = eval_.InnerSeries.Count; comps = new ReturnsEval.DataSeriesEvaluator[colNum]; for (int i = 0; i < comps.Length; ++i) { comps[i] = new ReturnsEval.DataSeriesEvaluator( eval_.InnerSeries[i].Daily.Dates, eval_.InnerSeries[i].Daily.Data, eval_.InnerSeries[i].Name, eval_.DataType); } // add the columns (one for each component part) for (int i = 0; i < colNum; ++i) { dt.Columns.Add(eval_.InnerSeries[i].Name, typeof(double)); } for (int rowIndex = 0; rowIndex < numRow; ++rowIndex) { DataRow row = dt.NewRow(); for (int colIndex = 0; colIndex < colNum; ++colIndex) { comps[colIndex].Evaluate(eval_.Daily.DrawDowns[rowIndex].StartDate, eval_.Daily.DrawDowns[rowIndex].LowDate); row[colIndex] = comps[colIndex].Daily.TotalReturn * 100; } dt.Rows.Add(row); } ultraChart.DataSource = dt; ultraChart.Data.DataBind(); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, int drawdownIndex_, bool isDrawdown_) { ReturnsEval.DataSeriesEvaluator[] comps; // each col is component part (e.g. ccy) ultraChart.DataSource = null; int colNum = eval_.InnerSeries.Count; comps = new ReturnsEval.DataSeriesEvaluator[colNum]; for (int i = 0; i < comps.Length; ++i) { comps[i] = new ReturnsEval.DataSeriesEvaluator( eval_.InnerSeries[i].Daily.Dates, eval_.InnerSeries[i].Daily.Data, eval_.InnerSeries[i].Name, eval_.DataType); } // add the columns (one for each component part) for (int i = 0; i < colNum; ++i) { dt.Columns.Add(eval_.InnerSeries[i].Name, typeof(double)); } ReturnsEval.DrawDown dd = (isDrawdown_) ? eval_.Daily.DrawDowns[drawdownIndex_] : eval_.Daily.DrawUps[drawdownIndex_]; DataRow row = dt.NewRow(); for (int colIndex = 0; colIndex < colNum; ++colIndex) { comps[colIndex].Evaluate(dd.StartDate, dd.LowDate); row[colIndex] = comps[colIndex].Daily.TotalReturn * 100; } dt.Rows.Add(row); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_) { ReturnsEval.DataSeries[] series; DataRow row; ultraChart.DataSource = null; dt.Columns.Clear(); dt.Rows.Clear(); if (eval_ == null) return; // 1 row per period // each col is component part (e.g. ccy) if (eval_.InnerSeries.Count == 0) return; series = new ReturnsEval.DataSeries[eval_.InnerSeries.Count]; for (int i = 0; i < series.Length; ++i) { series[i] = eval_.InnerSeries[i][period_]; dt.Columns.Add(eval_.InnerSeries[i].Name.Replace("_GSLE_1",string.Empty), typeof(double)); } row = dt.NewRow(); for (int j = 0; j < series.Length; ++j) { row[j] = series[j].TotalReturn; } dt.Rows.Add(row); ultraChart.DataSource = dt; ultraChart.Data.DataBind(); showChartSeparateControl1.Create(dt, GetType(), "Return attribution of " + eval_.Name); }
public void AddEval(ReturnsEval.DataSeriesEvaluator eval_) { checkedListBox1.Items.Add(eval_, true); }
public void Bind(ReturnsEval.RegressionsDataSeriesWrapper wrapper_) { SI.Controls.Util.ClearBindings(this); lblName.Bind(wrapper_, "Name", null); tbLags.Bind(wrapper_, "Lag", new Validators.IntValidator("###0")); }
private void setup(ReturnsEval.DataSeriesEvaluator eval_) { if (doneSetup) return; doneSetup = true; setuptooltip(); // add the columns dt.Columns.Add("Date", typeof(DateTime)); dt.Columns.Add(eval_.Name, typeof(double)); for (int i = 0; i < eval_.InnerSeries.Count; ++i) dt.Columns.Add(eval_.InnerSeries[i].Name, typeof(double)); ChartLayerAppearance chart; NumericTimeSeries series; LineChartAppearance lcApp; // example of adding layer in code // add numeric series for top series = new NumericTimeSeries(); series.Data.TimeValueColumn = "Date"; series.Data.ValueColumn = eval_.Name; series.Key = eval_.Name; series.Label = eval_.Name; ultraChart.CompositeChart.Series.Add(series); // add a layer for the overall cumulative at the top chart = new ChartLayerAppearance(); chart.ChartComponent = ultraChart; chart.ChartArea = ultraChart.CompositeChart.ChartAreas.FromKey("areaTop"); chart.AxisX = chart.ChartArea.Axes.FromKey("areaTopX"); chart.AxisY = chart.ChartArea.Axes.FromKey("areaTopY"); chart.ChartType = ChartType.LineChart; lcApp = (LineChartAppearance)chart.ChartTypeAppearance; lcApp.Thickness = 1; lcApp.MidPointAnchors = false; chart.Key = string.Concat("chart_", eval_.Name); ultraChart.CompositeChart.ChartLayers.Add(chart); // link them all up chart.Series.Add(series); series.Data.DataSource = dt; chart.SeriesList = eval_.Name; series.DataBind(); for (int i = 0; i < eval_.InnerSeries.Count; ++i) { series = new NumericTimeSeries(); series.Data.TimeValueColumn = "Date"; series.Data.ValueColumn = eval_.InnerSeries[i].Name; series.Key = eval_.InnerSeries[i].Name; series.Label = eval_.InnerSeries[i].Name; ultraChart.CompositeChart.Series.Add(series); chart = new ChartLayerAppearance(); chart.ChartComponent = ultraChart; chart.ChartArea = ultraChart.CompositeChart.ChartAreas.FromKey("areaBottom"); chart.AxisX = chart.ChartArea.Axes.FromKey("areaBottomX"); chart.AxisY = chart.ChartArea.Axes.FromKey("areaBottomY"); chart.ChartType = ChartType.LineChart; lcApp = (LineChartAppearance)chart.ChartTypeAppearance; lcApp.Thickness = 1; lcApp.MidPointAnchors = false; chart.Key = string.Concat("chart_", eval_.InnerSeries[i].Name); ultraChart.CompositeChart.ChartLayers.Add(chart); // link them all up chart.Series.Add(series); chart.SeriesList = eval_.InnerSeries[i].Name; series.Data.DataSource = dt; series.DataBind(); if (i < COLOURS.Length) series.PEs.Add(new PaintElement(COLOURS[i])); ultraChart.CompositeChart.Legends[0].ChartLayers.Add(chart); } }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_) { // first thing to do is to build the datatable and put the data in it dt.Rows.Clear(); setup(eval_); for (int i = 0; i < eval_.Daily.Data.Length; ++i) { DataRow row = dt.NewRow(); row[0] = eval_.Daily.Dates[i]; row[1] = eval_.Daily.CumulativeReturnSeries[i]; for (int j = 0; j < eval_.InnerSeries.Count; ++j) { row[j + 2] = eval_.InnerSeries[j].Daily.CumulativeValueOnDate(eval_.Daily.Dates[i]); } dt.Rows.Add(row); } foreach (NumericTimeSeries nts in ultraChart.CompositeChart.Series) nts.DataBind(); //FX.Controls.BoundInfraGrid grid = new FX.Controls.BoundInfraGrid(); //grid.Bind(dt); //grid.ExportToExcel(); ultraChart.InvalidateLayers(); }
public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_, string dateFormat_) { Bind(eval_, period_, dateFormat_, null); }
public CorrelationAnalyzer(ReturnsEval.DataSeriesEvaluator eval1_, ReturnsEval.DataSeriesEvaluator eval2_) : this(new DatedDataCollectionGen<double>(eval1_.Daily.Dates,eval1_.Daily.Data),new DatedDataCollectionGen<double>(eval2_.Daily.Dates,eval2_.Daily.Data)) { }
public void Create(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_) { Create(eval_, period_, null); }