public Portfolio(Framework framework, string name = "") { this.framework = framework; this.name = name; this.account = new Account(framework); this.fills = new FillSeries(name); this.positions = new List<Position>(); this.positionByInstrument = new IdArray<Position>(1000); this.pricer = framework.portfolioManager.pricer; this.performance = new PortfolioPerformance(this); this.statistics = new PortfolioStatistics(this); }
public FormHistogram(Form f, string channel, CalculationClass source) : this() { f.Hide(); RGBChannel = channel; somePicture = source; this.chartColor.Size = new Size(500, 500); chartColor.Dock = DockStyle.Fill; //добавляем в Chart область для рисования графиков, их может быть //много, поэтому даем ей имя. chartColor.ChartAreas.Add(new ChartArea("RGB")); //Создаем и настраиваем набор точек для рисования графика, в том //не забыв указать имя области на которой хотим отобразить этот //набор точек. Series SeriesOfColor = new Series(channel); SeriesOfColor.ChartType = SeriesChartType.Line; SeriesOfColor.ChartArea = "RGB"; FillSeries del = FillRedSeries; Channel colorChannel = Channel.Red; switch (channel) { case "Green": { del = FillGreenSeries; colorChannel = Channel.Green; break; } case "Blue": { del = FillBlueSeries; colorChannel = Channel.Blue; break; } } SeriesOfColor = del.Invoke(SeriesOfColor, colorChannel); //SeriesOfRed=FillSeries(SeriesOfRed, Channel.Red); //Добавляем созданный набор точек в Chart chartColor.Series.Add(SeriesOfColor);//обязательно увеличить размеры области графика, менять цвет в зависимости от канала, сделать линию жирнее }
/// <summary> /// Creates a new instance of the <see cref="T:Dt.Cells.UndoRedo.DragFillUndoAction" /> class. /// </summary> /// <param name="workSheet">The drag fill worksheet.</param> /// <param name="dragFillExtent">The drag fill extent information.</param> public DragFillUndoAction(Worksheet workSheet, DragFillExtent dragFillExtent) { _workSheet = workSheet; _dragFillExtent = dragFillExtent; if (_dragFillExtent.AutoFillType == AutoFillType.ClearValues) { _clearValueUndoAction = new ClearValueUndoAction(workSheet, new CellRange[] { _dragFillExtent.FillRange }); } else { InitWholeFilledRange(); } if ((_dragFillExtent.FillDirection == FillDirection.Left) || (_dragFillExtent.FillDirection == FillDirection.Right)) { _fillSeries = FillSeries.Row; } else { _fillSeries = FillSeries.Column; } }
public void OnNewGroupEvent(GroupEvent groupEvent) { var groupItem2 = this.table[groupEvent.Group.Id]; object obj; groupItem2.Table.TryGetValue((int)groupEvent.Obj.TypeId, out obj); switch (groupEvent.Obj.TypeId) { case DataObjectType.Bar: if (obj == null) { obj = new BarSeries(groupItem2.Name, "", -1); groupItem2.Table.Add((int)groupEvent.Obj.TypeId, obj); } (obj as BarSeries).Add(groupEvent.Obj as Bar); break; case DataObjectType.Fill: if (obj == null) { obj = new FillSeries(groupItem2.Name); groupItem2.Table.Add((int)groupEvent.Obj.TypeId, obj); } (obj as FillSeries).Add(groupEvent.Obj as Fill); break; case DataObjectType.TimeSeriesItem: if (obj == null) { obj = new TimeSeries(groupItem2.Name, ""); groupItem2.Table.Add((int)groupEvent.Obj.TypeId, obj); } (obj as TimeSeries).Add((groupEvent.Obj as TimeSeriesItem).DateTime, (groupEvent.Obj as TimeSeriesItem).Value); break; } }
public void OnNewGroupEvent(GroupEvent groupEvent) { var item = this.table[groupEvent.Group.Id]; Tuple<Viewer, object> tuple = null; item.Table.TryGetValue(groupEvent.Obj.TypeId, out tuple); switch (groupEvent.Obj.TypeId) { case DataObjectType.Bar: object obj1; if (tuple == null) { obj1 = new BarSeries("", "", -1); int padNumber = item.PadNumber; this.EnsurePadExists(padNumber, item.Format); int viewerIndex = this.GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, obj1 as BarSeries); this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, obj1)); } else obj1 = tuple.Item2 as BarSeries; (obj1 as BarSeries).Add(groupEvent.Obj as Bar); break; case DataObjectType.Fill: object obj2; if (tuple == null) { obj2 = new FillSeries(""); int padNumber = item.PadNumber; this.EnsurePadExists(padNumber, item.Format); int viewerIndex = this.GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, obj2); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, obj2)); } else obj2 = tuple.Item2 as FillSeries; (obj2 as FillSeries).Add(groupEvent.Obj as Fill); break; case DataObjectType.TimeSeriesItem: object obj3; if (tuple == null) { obj3 = new TimeSeries(); int padNumber = item.PadNumber; EnsurePadExists(padNumber, item.Format); int viewerIndex = this.GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, obj3); foreach (var kv in groupEvent.Group.Fields) viewer.Set(obj3, kv.Value.Name, kv.Value.Value); if (groupEvent.Group.Fields.ContainsKey("Color")) this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, (Color)groupEvent.Group.Fields["Color"].Value); else this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, obj3)); } else obj3 = tuple.Item2 as TimeSeries; (obj3 as TimeSeries).Add((groupEvent.Obj as TimeSeriesItem).DateTime, (groupEvent.Obj as TimeSeriesItem).Value); break; } }
public void OnNewGroupEvent(GroupEvent groupEvent) { var item = this.table[groupEvent.Group.Id]; Tuple <Viewer, object> tuple = null; item.Table.TryGetValue(groupEvent.Obj.TypeId, out tuple); switch (groupEvent.Obj.TypeId) { case DataObjectType.Bar: BarSeries bs; if (tuple == null) { bs = new BarSeries("", "", -1); int padNumber = item.PadNumber; EnsurePadExists(padNumber, item.Format); int viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, bs as BarSeries); this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); item.Table.Add(groupEvent.Obj.TypeId, new Tuple <Viewer, object>(viewer, bs)); } else { bs = tuple.Item2 as BarSeries; } bs.Add(groupEvent.Obj as Bar); break; case DataObjectType.Fill: FillSeries fs; if (tuple == null) { fs = new FillSeries(""); var padNumber = item.PadNumber; this.EnsurePadExists(padNumber, item.Format); var viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, fs); item.Table.Add(groupEvent.Obj.TypeId, new Tuple <Viewer, object>(viewer, fs)); } else { fs = tuple.Item2 as FillSeries; } fs.Add(groupEvent.Obj as Fill); break; case DataObjectType.TimeSeriesItem: TimeSeries ts; if (tuple == null) { ts = new TimeSeries(); var padNumber = item.PadNumber; EnsurePadExists(padNumber, item.Format); var viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); var viewer = this.chart.Pads[padNumber].Insert(viewerIndex, ts); foreach (var kv in groupEvent.Group.Fields) { viewer.Set(ts, kv.Value.Name, kv.Value.Value); } if (groupEvent.Group.Fields.ContainsKey("Color")) { this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, (Color)groupEvent.Group.Fields["Color"].Value); } else { this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); } item.Table.Add(groupEvent.Obj.TypeId, new Tuple <Viewer, object>(viewer, ts)); } else { ts = tuple.Item2 as TimeSeries; } ts.Add((groupEvent.Obj as TimeSeriesItem).DateTime, (groupEvent.Obj as TimeSeriesItem).Value); break; } }
public void OnNewGroupEvent(GroupEvent groupEvent) { var item = this.table[groupEvent.Group.Id]; Tuple<Viewer, object> tuple = null; item.Table.TryGetValue(groupEvent.Obj.TypeId, out tuple); switch (groupEvent.Obj.TypeId) { case DataObjectType.Bar: BarSeries bs; if (tuple == null) { bs = new BarSeries("", "", -1); int padNumber = item.PadNumber; EnsurePadExists(padNumber, item.Format); int viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, bs as BarSeries); this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, bs)); } else bs = tuple.Item2 as BarSeries; bs.Add(groupEvent.Obj as Bar); break; case DataObjectType.Fill: FillSeries fs; if (tuple == null) { fs = new FillSeries(""); var padNumber = item.PadNumber; this.EnsurePadExists(padNumber, item.Format); var viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); Viewer viewer = this.chart.Pads[padNumber].Insert(viewerIndex, fs); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, fs)); } else fs = tuple.Item2 as FillSeries; fs.Add(groupEvent.Obj as Fill); break; case DataObjectType.TimeSeriesItem: TimeSeries ts; if (tuple == null) { ts = new TimeSeries(); var padNumber = item.PadNumber; EnsurePadExists(padNumber, item.Format); var viewerIndex = GetViewerIndex(groupEvent.Group, padNumber); var viewer = this.chart.Pads[padNumber].Insert(viewerIndex, ts); foreach (var kv in groupEvent.Group.Fields) viewer.Set(ts, kv.Value.Name, kv.Value.Value); if (groupEvent.Group.Fields.ContainsKey("Color")) this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, (Color)groupEvent.Group.Fields["Color"].Value); else this.chart.Pads[padNumber].Legend.Add(groupEvent.Group.Name, Color.Black); item.Table.Add(groupEvent.Obj.TypeId, new Tuple<Viewer, object>(viewer, ts)); } else ts = tuple.Item2 as TimeSeries; ts.Add((groupEvent.Obj as TimeSeriesItem).DateTime, (groupEvent.Obj as TimeSeriesItem).Value); break; } }