コード例 #1
0
        public override void EndInitialize( )
        {
            MainSeries.EndInitialize();

            ((System.ComponentModel.ISupportInitialize)(InnerDiagram)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.InnerChart)).EndInit();
            this.ResumeLayout(false);
        }
コード例 #2
0
        internal void UpdateDataRange()
        {
            if (MainChart != null)
            {
                DateTime ds    = DateTime.FromOADate(this.LowerValue);
                Quote    quote = ViewModel.ChartViewModel.Instance.DataSource.FirstOrDefault(p => p.date >= ds);
                if (quote != null)
                {
                    ViewModel.ChartViewModel.Instance.DataSource.ReferenceValue.Value = quote.close;
                }

                var thisType  = this.MovingAverageType;
                var otherType = MovingAverageType.Simple;
                foreach (MovingAverageType t in Enum.GetValues(typeof(MovingAverageType)))
                {
                    if (t != thisType)
                    {
                        otherType = t;
                        break;
                    }
                }


                if (ViewModel.ChartViewModel.Instance.SymbolCollection != null && ViewModel.ChartViewModel.Instance.SymbolCollection.Any())
                {
                    foreach (var symbol in ViewModel.ChartViewModel.Instance.SymbolCollection)
                    {
                        quote = symbol.DataSource.FirstOrDefault(p => p.date >= ds);
                        if (quote != null)
                        {
                            symbol.DataSource.ReferenceValue.Value = quote.close;
                            if (symbol.Series != null)
                            {
                                symbol.Series.Dispose();
                            }
                            if (symbol.MovingAverage != null)
                            {
                                symbol.MovingAverage.Dispose();
                                symbol.MovingAverage.Type = otherType;
                                symbol.MovingAverage.Type = thisType;
                            }
                        }
                    }
                }
                if (MainSeries != null)
                {
                    MainSeries.Dispose();
                }
                if (MainMovingAverage != null)
                {
                    MainMovingAverage.Dispose();
                    MainMovingAverage.Type = otherType;
                    MainMovingAverage.Type = thisType;
                }
                UpdateYRange();
            }
        }
コード例 #3
0
ファイル: SeriesView.cs プロジェクト: vcoda/fastquant.dll
        public override PadRange GetPadRangeY(Pad pad)
        {
            double max = MainSeries.GetMax(this.firstDate, this.lastDate);
            double min = MainSeries.GetMin(this.firstDate, this.lastDate);

            if (max >= min)
            {
                double num = max / 10.0;
                max -= num;
                min += num;
            }
            return(new PadRange(max, min));
        }
コード例 #4
0
ファイル: Pad.cs プロジェクト: fastquant/SQCharts
        public int ClientX(DateTime dateTime)
        {
            double w = (double)Width / (LastIndex - FirstIndex + 1);

            return(X1 + (int)((MainSeries.GetIndex(dateTime, IndexOption.Null) - FirstIndex) * w + w / 2));
        }