private void DrawCurveIndicator(application.Indicators.Meta meta) { pricePane.myGraphObj.myGraphPane.CurveList.Clear(); //Indicators.Meta meta = Indicators.Libs.FindMetaByName(indicatorName); string curveName = meta.ClassType.Name + "-" + meta.ParameterString; Charts.Controls.baseGraphPanel myGraphPanel = pricePane; commonClass.DataValues[] indicatorSeries = application.Indicators.Libs.GetIndicatorData(this.myData, meta); for (int idx = 0, metaIdx = 1; idx < indicatorSeries.Length && metaIdx < meta.Output.Length; idx++, metaIdx++) { this.myData.DateTime.FirstValidValue = indicatorSeries[idx].FirstValidValue; curveName = meta.ClassType.Name + "-" + meta.ParameterString + "-" + idx.ToString(); switch (meta.Output[metaIdx].ChartType) { case AppTypes.ChartTypes.Bar: PlotCurveBar(curveName, myGraphPanel, this.myData.DateTime, indicatorSeries[idx], meta.Output[metaIdx].Color, Color.Black, meta.Output[metaIdx].Weight); break; case AppTypes.ChartTypes.Line: PlotCurveLine(curveName, myGraphPanel, this.myData.DateTime, indicatorSeries[idx], meta.Output[metaIdx].Color, meta.Output[metaIdx].Weight); break; } } pricePane.myGraphObj.DefaultViewport(); pricePane.myGraphObj.UpdateChart(); }
private CurveItem PlotCurveLine(string curveName, Charts.Controls.baseGraphPanel graphPane, commonClass.DataSeries xSeries, commonClass.DataSeries ySeries, Color color, int weight) { pricePane.myGraphObj.SetSeriesX(xSeries.Values, Charts.AxisType.DateAsOrdinal); CurveItem curveItem = graphPane.myGraphObj.AddCurveLine(curveName, ySeries.Values, SymbolType.None, color, weight); return(curveItem); }
private CurveItem PlotCurveLine(string curveName, Charts.Controls.baseGraphPanel graphPane, DataValues xValues, DataValues yValues, Color color, int weight) { graphPane.myGraphObj.SetSeriesX(xValues.Values, Charts.AxisType.DateAsOrdinal); CurveItem curveItem = graphPane.myGraphObj.AddCurveLine(curveName, MakeChartValue(yValues), SymbolType.None, color, weight); myCurveList.Add(curveItem, curveName, graphPane.myGraphObj.myGraphPane, graphPane.Name); return(curveItem); }
private CurveItem PlotCandleStick(string curveName, Charts.Controls.baseGraphPanel graphPane, application.AnalysisData data, Color barUpColor, Color barDnColor, Color bullCandleColor, Color bearCandleColor) { pricePane.myGraphObj.SetSeriesX(data.DateTime.Values, Charts.AxisType.DateAsOrdinal); CurveItem curveItem = graphPane.myGraphObj.AddCandleStick(curveName, data.High.Values, data.Low.Values, data.Open.Values, data.Close.Values, data.Volume.Values, barUpColor, barDnColor, bullCandleColor, bearCandleColor); return(curveItem); }
private void DrawCurveIndicator(application.Indicators.Meta meta) { pricePane.myGraphObj.myGraphPane.CurveList.Clear(); //Indicators.Meta meta = Indicators.Libs.FindMetaByName(indicatorName); string curveName = meta.ClassType.Name + "-" + meta.ParameterString; Charts.Controls.baseGraphPanel myGraphPanel = pricePane; commonClass.DataSeries indicatorSeries = application.Indicators.Libs.GetIndicatorData(this.myData, meta); this.myData.DateTime.FirstValidValue = indicatorSeries.FirstValidValue; switch (meta.Output[0].ChartType) { case commonClass.AppTypes.ChartTypes.Bar: PlotCurveBar(curveName, myGraphPanel, this.myData.DateTime, indicatorSeries, meta.Output[0].Color, Color.Black, meta.Output[0].Weight); break; case commonClass.AppTypes.ChartTypes.Line: PlotCurveLine(curveName, myGraphPanel, this.myData.DateTime, indicatorSeries, meta.Output[0].Color, meta.Output[0].Weight); break; } // Some indicator such as MACD having more than one output series. // In such case, indicator form MUST have [form.ExtraInfo] propery to provide information for the output series. commonClass.DataSeries[] extraSeries = null; if (meta.Output.Length > 1) { extraSeries = application.Indicators.Libs.GetIndicatorData(indicatorSeries, meta); } if (extraSeries != null) { for (int idx = 0, metaIdx = 1; idx < extraSeries.Length && metaIdx < meta.Output.Length; idx++, metaIdx++) { this.myData.DateTime.FirstValidValue = extraSeries[idx].FirstValidValue; curveName = meta.ClassType.Name + "-" + meta.ParameterString + "-" + idx.ToString(); switch (meta.Output[metaIdx].ChartType) { case commonClass.AppTypes.ChartTypes.Bar: PlotCurveBar(curveName, myGraphPanel, this.myData.DateTime, extraSeries[idx], meta.Output[metaIdx].Color, Color.Black, meta.Output[metaIdx].Weight); break; case commonClass.AppTypes.ChartTypes.Line: PlotCurveLine(curveName, myGraphPanel, this.myData.DateTime, extraSeries[idx], meta.Output[metaIdx].Color, meta.Output[metaIdx].Weight); break; } } } pricePane.myGraphObj.DefaultViewport(); pricePane.myGraphObj.UpdateChart(); }
private CurveItem PlotCandleStick(string curveName, Charts.Controls.baseGraphPanel graphPane, AnalysisData data, Color barUpColor, Color barDnColor, Color bullCandleColor, Color bearCandleColor) { graphPane.myGraphObj.SetSeriesX(data.DateTime.Values, Charts.AxisType.DateAsOrdinal); CurveItem curveItem = graphPane.myGraphObj.AddCandleStick(curveName, MakeChartValue(data.High), MakeChartValue(data.Low), MakeChartValue(data.Open), MakeChartValue(data.Close), MakeChartValue(data.Volume), barUpColor, barDnColor, bullCandleColor, bearCandleColor); myCurveList.Add(curveItem, curveName, graphPane.myGraphObj.myGraphPane, graphPane.Name); return(curveItem); }