Esempio n. 1
0
        public ChartForm(ChartDataType chartDataType, List <DataTable> dataTables)
        {
            this._chartDataType = chartDataType;
            this._dataTables    = dataTables;
            InitializeComponent();

            _toolTip = new ToolTip();
        }
Esempio n. 2
0
        private string GetChartSeriesName(ChartDataType chartDataType)
        {
            if (chartDataType == ChartDataType.All)
            {
                return(string.Empty);
            }

            switch (chartDataType)
            {
            case ChartDataType.DailyAnnualReturnsRate:
                return("年化收益率(%)");

            case ChartDataType.DailyAvgAnnualReturnsRate:
                return("平均年化收益率(%)");

            case ChartDataType.TotalGrowthRate:
                return("资产增长率(%)");

            default:
                return(string.Empty);
            }
        }
Esempio n. 3
0
        private string GetChartSeriesName(ChartDataType chartDataType, int dataTableIndex)
        {
            if (chartDataType != ChartDataType.All)
            {
                return(string.Empty);
            }

            switch (dataTableIndex)
            {
            case 0:
                return("年化收益率(%)");

            case 1:
                return("平均年化收益率(%)");

            case 2:
                return("资产增长率(%)");

            default:
                return(string.Empty);
            }
        }
 public ChartArgumentAxisBuilder ArgumentType(ChartDataType value)
 {
     base.Options["argumentType"] = value;
     return(this);
 }
Esempio n. 5
0
 public PieChartCommonSeriesSettingsBuilder ArgumentType(ChartDataType value)
 {
     base.Options["argumentType"] = value;
     return(this);
 }
Esempio n. 6
0
        public ChartData(ChartDataType dataType)
        {
            DataType = dataType;

            Title = TranslationSource.Instance[DataType.ToString()];
        }
 public ChartValueAxisBuilder ValueType(ChartDataType value)
 {
     base.Options["valueType"] = value;
     return(this);
 }
Esempio n. 8
0
        private void btnGenDiagram_Click(object sender, EventArgs e)
        {
            ChartDataType chartDataType = ChartDataType.All;

            _dataTables = new List <DataTable>();
            DataTable dt1, dt2, dt3;

            switch (this.cmbDiagramIndicator.SelectedIndex)
            {
            case 0:     //合并
                chartDataType = ChartDataType.All;

                dt1 = new DataTable();
                dt1.Columns.Add("Date", typeof(string));
                dt1.Columns.Add("Rate", typeof(decimal));
                dt2 = new DataTable();
                dt2.Columns.Add("Date", typeof(string));
                dt2.Columns.Add("Rate", typeof(decimal));
                dt3 = new DataTable();
                dt3.Columns.Add("Date", typeof(string));
                dt3.Columns.Add("Rate", typeof(decimal));
                foreach (var item in this._dailyStatuses)
                {
                    if (this._reportDateFreq == DateFrequency.Daily ||
                        (this._reportDateFreq == DateFrequency.Monthly && item.Date.Day == 1))
                    {
                        dt1.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentDayReturnsRate * 100)));
                        dt2.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentAverageAnnualReturnsRate * 100)));
                        dt3.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentTotalGrowthRate * 100)));
                    }
                }
                _dataTables.Add(dt1);
                _dataTables.Add(dt2);
                _dataTables.Add(dt3);
                break;

            case 1:     //每日年化收益率
                chartDataType = ChartDataType.DailyAnnualReturnsRate;

                dt1 = new DataTable();
                dt1.Columns.Add("Date", typeof(string));
                dt1.Columns.Add("Rate", typeof(decimal));
                foreach (var item in this._dailyStatuses)
                {
                    if (this._reportDateFreq == DateFrequency.Daily ||
                        (this._reportDateFreq == DateFrequency.Monthly && item.Date.Day == 1))
                    {
                        dt1.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentDayReturnsRate * 100)));
                    }
                }
                _dataTables.Add(dt1);
                break;

            case 2:     //每日平均年化收益率
                chartDataType = ChartDataType.DailyAvgAnnualReturnsRate;

                dt2 = new DataTable();
                dt2.Columns.Add("Date", typeof(string));
                dt2.Columns.Add("Rate", typeof(decimal));
                foreach (var item in this._dailyStatuses)
                {
                    if (this._reportDateFreq == DateFrequency.Daily ||
                        (this._reportDateFreq == DateFrequency.Monthly && item.Date.Day == 1))
                    {
                        dt2.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentAverageAnnualReturnsRate * 100)));
                    }
                }
                _dataTables.Add(dt2);
                break;

            case 3:     //资产增长率
                chartDataType = ChartDataType.TotalGrowthRate;

                dt3 = new DataTable();
                dt3.Columns.Add("Date", typeof(string));
                dt3.Columns.Add("Rate", typeof(decimal));
                foreach (var item in this._dailyStatuses)
                {
                    if (this._reportDateFreq == DateFrequency.Daily ||
                        (this._reportDateFreq == DateFrequency.Monthly && item.Date.Day == 1))
                    {
                        dt3.Rows.Add(item.Date.ToString("yyyy-MM-dd"), Decimal.Parse(string.Format(DecimalFormat, item.CurrentTotalGrowthRate * 100)));
                    }
                }
                _dataTables.Add(dt3);
                break;

            default:
                break;
            }

            (new ChartForm(chartDataType, _dataTables)).ShowDialog();
        }
Esempio n. 9
0
        private static ChartDataType[] GetChartedData(IEnumerable <ChartDataType> datas, ViewTypeEnum viewType, bool isUseName, bool isUseDateNameInChart = false)
        {
            var dic = new Dictionary <string, ChartDataType>();

            foreach (var data in datas)
            {
                DateTime date;
                string   dateName;
                switch (viewType)
                {
                case ViewTypeEnum.Hours:
                    date     = new DateTime(data.DateTime.Year, data.DateTime.Month, data.DateTime.Day, data.DateTime.Hour, 0, 0);
                    dateName = string.Format("{0}.{1:00}.{2:00} {3}h", data.DateTime.Year, data.DateTime.Month, data.DateTime.Day, data.DateTime.Hour);
                    break;

                case ViewTypeEnum.Days:
                    date     = new DateTime(data.DateTime.Year, data.DateTime.Month, data.DateTime.Day);
                    dateName = string.Format("{0}.{1:00}.{2:00}", data.DateTime.Year, data.DateTime.Month, data.DateTime.Day);
                    break;

                case ViewTypeEnum.Weeks:
                    date     = new DateTime(data.DateTime.Year, data.DateTime.Month, data.DateTime.Day / 7 + 1);
                    dateName = string.Format("{0}.{1:00}.{2}w", data.DateTime.Year, data.DateTime.Month, data.DateTime.Day / 7 + 1);
                    break;

                case ViewTypeEnum.Months:
                    date     = new DateTime(data.DateTime.Year, data.DateTime.Month, 1);
                    dateName = string.Format("{0}.{1:00}", data.DateTime.Year, data.DateTime.Month);
                    break;

                case ViewTypeEnum.Years:
                    date     = new DateTime(data.DateTime.Year, 1, 1);
                    dateName = string.Format("{0}", data.DateTime.Year);
                    break;

                default:
                    throw new ArgumentOutOfRangeException("viewType", viewType, null);
                }
                var key = data.Name + dateName;
                if (dic.ContainsKey(key))
                {
                    dic[key].DateTime = date;
                    dic[key].Name     = isUseDateNameInChart ? dateName : data.Name;
                    dic[key].Price   += data.Price;
                    dic[key].Count   += data.Count;
                    dic[key].DateName = dateName;
                    dic[key].CodeBar  = data.CodeBar;
                }
                else
                {
                    dic[key] = new ChartDataType
                    {
                        DateTime = date,
                        Name     = isUseDateNameInChart ? dateName : data.Name,
                        Price    = data.Price,
                        Count    = data.Count,
                        DateName = dateName,
                        CodeBar  = data.CodeBar
                    };
                }
            }
            return(dic.Select(pair => pair.Value).OrderBy(d => d.DateTime).ToArray());
        }
Esempio n. 10
0
 public static ILogChart GetLogChart(ChartDataType type)
 {
     return((ILogChart)Activator.CreateInstance(LogChartDict[type]));
 }
 public RangeSelectorScaleBuilder ValueType(ChartDataType value)
 {
     base.Options["valueType"] = value;
     return(this);
 }