public static SI.Controls.ShowForm DisplayEvals(string[] argsList_) { List<ReturnsEval.DataSeriesEvaluator> list = GetEvalListFromArgs(argsList_); if (list.Count == 0) return null; List<KeyValuePair<string, Control>> controlList = new List<KeyValuePair<string, Control>>(); foreach (ReturnsEval.DataSeriesEvaluator eval in list) { ReturnsEvalDisplay.ReturnsDisplay rd = new ReturnsDisplay(); rd.Bind(eval); controlList.Add(new KeyValuePair<string, Control>(eval.Name, rd)); } return controlList.DisplayInShowForm("Returns Analysis"); }
private void handleStratNameClicked(object sender, SI.Controls.RowClickedEventArgs e_) { if ((ModifierKeys & Keys.Shift) != 0) { PerfRow pr = (PerfRow)e_.ListObject; ReturnsEval.DataSeriesEvaluator eval = m_comp.FindEval(pr.StrategyName.Name); eval.Evaluate(); ReturnsDisplay rd = new ReturnsDisplay(); rd.Bind(eval); SI.Controls.ShowForm.Show(rd, eval.Name + " PnL"); } if ((ModifierKeys & Keys.Control) != 0) { PerfRow pr = (PerfRow)e_.ListObject; ReturnsEval.DataSeriesEvaluator eval = m_comp.FindEval(pr.StrategyName.Name); eval.Evaluate(); DatedDataCollectionGen<double> orig = new DatedDataCollectionGen<double>(eval.All.Dates, eval.All.Data); int maxDays=5; DatedDataCollectionGen<double>[] arr = new DatedDataCollectionGen<double>[maxDays]; for(int i=0;i<arr.Length;++i) arr[i] = (DatedDataCollectionGen<double>) orig.Clone(); for (int i = 1; i < orig.Length; ++i) { if (orig.Dates[i].Month != orig.Dates[i - 1].Month) { int indexOfLastDay = i - 1; // iterate over array with j; first in array will have just last day blanked out, last in array with have 'maxDay's blanked out for (int j = 0; j < maxDays; ++j) for (int k = 0; k <= j; ++k) { int indexToBlank = indexOfLastDay - k; if(indexToBlank>=0) arr[j].Data[indexToBlank] = 0d; } } } List<ReturnsEval.DataSeriesEvaluator> newEvals = new List<ReturnsEval.DataSeriesEvaluator>(); newEvals.Add(new ReturnsEval.DataSeriesEvaluator(orig.Dates, orig.Data, pr.StrategyName.Name, ReturnsEval.DataSeriesType.Returns)); for (int i = 0; i < maxDays; ++i) newEvals.Add(new ReturnsEval.DataSeriesEvaluator(arr[i].Dates, arr[i].Data, string.Format("{0} - {1} days month end", pr.StrategyName.Name, (i + 1).ToString()),ReturnsEval.DataSeriesType.Returns)); EvalComparerControl con = new EvalComparerControl(); con.Create(newEvals); con.DisplayInShowForm(string.Format("Month End Analysis of {0}", pr.StrategyName.Name)); } }
public static void Display(ReturnsEval.DataSeriesEvaluator eval_,string title_, List<DateTime> rebalDates_) { ReturnsDisplay rd = new ReturnsDisplay(); rd.Bind(eval_); rd.RebalDates = rebalDates_; SI.Controls.ShowForm.Show(rd, title_); }
public static SI.ReturnsEvalDisplay.ReturnsDisplay GetReturnsDisplay(this SI.ReturnsEval.DataSeriesEvaluator eval_) { ReturnsEvalDisplay.ReturnsDisplay rd = new ReturnsEvalDisplay.ReturnsDisplay(); rd.Bind(eval_); return rd; }
private void showFXRegion(Data.FXGroup group_) { ReturnsEval.DataSeriesEvaluator eval = new ReturnsEval.DataSeriesEvaluator(group_.ToString(), m_evaluator.DataType); foreach (ReturnsEval.DataSeriesEvaluator innerEval in m_evaluator.InnerSeries) { Data.Currency ccy = Singleton<Data.FXIDs>.Instance[innerEval.Name]; if (ccy == null) continue; if (ccy.IsGroup(group_)) eval.AddInnerEvaluator(innerEval); } eval.Evaluate(eval.All.MinDate, eval.All.MaxDate); ReturnsDisplay rd = new ReturnsDisplay(); rd.Bind(eval); SI.Controls.ShowForm.Show(rd, FormBorderStyle.Sizable, null, FindForm().Text + " - " + group_.ToString()); }