示例#1
0
 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);
 }
示例#2
0
        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);//обязательно увеличить размеры области графика, менять цвет в зависимости от канала, сделать линию жирнее
        }
示例#3
0
 /// <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;
     }
 }
示例#4
0
        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;
            }
        }
示例#5
0
 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;
     }
 }
示例#6
0
 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;
     }
 }
示例#7
0
        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;
            }
        }
示例#8
0
 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;
     }
 }