diff --git a/Million/SubForm/ChartViewerUI.Designer.cs b/Million/SubForm/ChartViewerUI.Designer.cs index 60e79b5..0597c73 100644 --- a/Million/SubForm/ChartViewerUI.Designer.cs +++ b/Million/SubForm/ChartViewerUI.Designer.cs @@ -29,8 +29,11 @@ private void InitializeComponent() { DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.XYDiagramPane xyDiagramPane1 = new DevExpress.XtraCharts.XYDiagramPane(); + DevExpress.XtraCharts.SecondaryAxisY secondaryAxisY1 = new DevExpress.XtraCharts.SecondaryAxisY(); DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); DevExpress.XtraCharts.CandleStickSeriesView candleStickSeriesView1 = new DevExpress.XtraCharts.CandleStickSeriesView(); + DevExpress.XtraCharts.ExponentialMovingAverage exponentialMovingAverage1 = new DevExpress.XtraCharts.ExponentialMovingAverage(); DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series(); DevExpress.XtraCharts.SplineSeriesView splineSeriesView1 = new DevExpress.XtraCharts.SplineSeriesView(); DevExpress.XtraCharts.Series series3 = new DevExpress.XtraCharts.Series(); @@ -52,8 +55,11 @@ this.chartControl_VolumeBar = new DevExpress.XtraCharts.ChartControl(); ((System.ComponentModel.ISupportInitialize)(this.chartControl_Candle)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagramPane1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(secondaryAxisY1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(candleStickSeriesView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(exponentialMovingAverage1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(splineSeriesView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(series3)).BeginInit(); @@ -76,13 +82,16 @@ // // chartControl_Candle // - this.chartControl_Candle.BackColor = System.Drawing.Color.Black; + this.chartControl_Candle.BackColor = System.Drawing.Color.White; this.chartControl_Candle.BorderOptions.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.chartControl_Candle.BorderOptions.Visibility = DevExpress.Utils.DefaultBoolean.False; this.chartControl_Candle.Breadcrumbs.Border.Color = System.Drawing.Color.White; + this.chartControl_Candle.CrosshairOptions.ArgumentLineColor = System.Drawing.Color.Blue; this.chartControl_Candle.CrosshairOptions.ShowOutOfRangePoints = true; + this.chartControl_Candle.CrosshairOptions.ShowValueLine = true; xyDiagram1.AxisX.GridLines.MinorVisible = true; xyDiagram1.AxisX.GridLines.Visible = true; + xyDiagram1.AxisX.Label.TextColor = System.Drawing.Color.Black; xyDiagram1.AxisX.Visibility = DevExpress.Utils.DefaultBoolean.True; xyDiagram1.AxisX.VisibleInPanesSerializable = ""; xyDiagram1.AxisY.VisibleInPanesSerializable = ""; @@ -94,6 +103,20 @@ xyDiagram1.EnableAxisXZooming = true; xyDiagram1.EnableAxisYScrolling = true; xyDiagram1.EnableAxisYZooming = true; + xyDiagramPane1.Name = "Pane 1"; + xyDiagramPane1.PaneID = 0; + xyDiagram1.Panes.AddRange(new DevExpress.XtraCharts.XYDiagramPane[] { + xyDiagramPane1}); + secondaryAxisY1.Alignment = DevExpress.XtraCharts.AxisAlignment.Near; + secondaryAxisY1.AxisID = 0; + secondaryAxisY1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + secondaryAxisY1.Label.BackColor = System.Drawing.Color.Transparent; + secondaryAxisY1.Label.TextColor = System.Drawing.Color.White; + secondaryAxisY1.Logarithmic = true; + secondaryAxisY1.Name = "Secondary AxisY 1"; + secondaryAxisY1.VisibleInPanesSerializable = ""; + xyDiagram1.SecondaryAxesY.AddRange(new DevExpress.XtraCharts.SecondaryAxisY[] { + secondaryAxisY1}); this.chartControl_Candle.Diagram = xyDiagram1; this.chartControl_Candle.Dock = System.Windows.Forms.DockStyle.Fill; this.chartControl_Candle.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Empty; @@ -110,12 +133,19 @@ this.chartControl_Candle.Name = "chartControl_Candle"; series1.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.DateTime; series1.CrosshairContentShowMode = DevExpress.XtraCharts.CrosshairContentShowMode.Label; - series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; + series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; series1.LegendName = "기본"; series1.Name = "기본 차트"; - candleStickSeriesView1.LineThickness = 1; + candleStickSeriesView1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + exponentialMovingAverage1.Color = System.Drawing.Color.Blue; + exponentialMovingAverage1.LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.Dot; + exponentialMovingAverage1.Name = "지수이동평균"; + exponentialMovingAverage1.PointsCount = 5; + exponentialMovingAverage1.ValueLevel = DevExpress.XtraCharts.ValueLevel.Close; + candleStickSeriesView1.Indicators.AddRange(new DevExpress.XtraCharts.Indicator[] { + exponentialMovingAverage1}); candleStickSeriesView1.RangeControlOptions.ValueLevel = DevExpress.XtraCharts.ValueLevel.Close; - candleStickSeriesView1.ReductionOptions.Color = System.Drawing.Color.Red; + candleStickSeriesView1.ReductionOptions.Color = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(73)))), ((int)(((byte)(125))))); candleStickSeriesView1.ReductionOptions.ColorMode = DevExpress.XtraCharts.ReductionColorMode.OpenToCloseValue; candleStickSeriesView1.ReductionOptions.FillMode = DevExpress.XtraCharts.CandleStickFillMode.AlwaysFilled; candleStickSeriesView1.Shadow.Color = System.Drawing.Color.Transparent; @@ -153,10 +183,11 @@ rangeAreaSeriesView1.FillStyle.Options = polygonGradientFillOptions1; rangeAreaSeriesView1.Transparency = ((byte)(150)); series6.View = rangeAreaSeriesView1; - series7.CheckedInLegend = false; series7.Name = "거래량"; + sideBySideBarSeriesView1.AxisYName = "Secondary AxisY 1"; sideBySideBarSeriesView1.Color = System.Drawing.Color.Gold; sideBySideBarSeriesView1.ColorEach = true; + sideBySideBarSeriesView1.PaneName = "Pane 1"; series7.View = sideBySideBarSeriesView1; this.chartControl_Candle.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series1, @@ -187,7 +218,7 @@ // // chartControl_VolumeBar // - this.chartControl_VolumeBar.BackColor = System.Drawing.Color.Black; + this.chartControl_VolumeBar.BackColor = System.Drawing.Color.White; this.chartControl_VolumeBar.BorderOptions.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.chartControl_VolumeBar.BorderOptions.Visibility = DevExpress.Utils.DefaultBoolean.False; this.chartControl_VolumeBar.Breadcrumbs.Border.Color = System.Drawing.Color.White; @@ -236,7 +267,10 @@ this.Controls.Add(this.splitContainerControl_Chart); this.Name = "ChartViewerUI"; this.Size = new System.Drawing.Size(1000, 841); + ((System.ComponentModel.ISupportInitialize)(xyDiagramPane1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(secondaryAxisY1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(exponentialMovingAverage1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(candleStickSeriesView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(series1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(splineSeriesView1)).EndInit(); diff --git a/Million/SubForm/ChartViewerUI.cs b/Million/SubForm/ChartViewerUI.cs index 5fd897f..24acf9a 100644 --- a/Million/SubForm/ChartViewerUI.cs +++ b/Million/SubForm/ChartViewerUI.cs @@ -190,7 +190,8 @@ namespace Million.SubForm var ich = chartControl_Candle.Series[5]; var moneyVolume = chartControl_VolumeBar.Series[0]; - + var moneyVolume1 = chartControl_Candle.Series[6]; + // 각 시리즈의 포인트 초기화 candle.Points.Clear(); bol_40_1.Points.Clear(); @@ -210,9 +211,10 @@ namespace Million.SubForm // 거래량 var volumeApoint = new SeriesPoint(item.DateTime, item.MoneyVolume); moneyVolume.Points.Add(volumeApoint); + moneyVolume1.Points.Add(volumeApoint); // bol(40,1) bol(40,2), ich1, ich2 - if(item.IndicatorDic.ContainsKey("Bol401")) bol_40_1.Points.Add(new SeriesPoint(item.DateTime, item.IndicatorDic["Bol401"].value)); + if (item.IndicatorDic.ContainsKey("Bol401")) bol_40_1.Points.Add(new SeriesPoint(item.DateTime, item.IndicatorDic["Bol401"].value)); if (item.IndicatorDic.ContainsKey("Bol402")) bol_40_2.Points.Add(new SeriesPoint(item.DateTime, item.IndicatorDic["Bol402"].value)); if (item.IndicatorDic.ContainsKey("Ich2695226")) {