示例#1
0
        internal Data.ArcsRange GetArcsRange(double s, double e)
        {
            Data.ArcsRange range = new Data.ArcsRange();
            if (Model.CurrectQuote != null && Model.CurrectQuote.Data != null && Model.CurrectQuote.Data.Any())
            {
                IEnumerable <Object.QuoteData> quoteCache = Model.CurrectQuote.Data.Skip(Convert.ToInt32(s)).Take(Convert.ToInt32(e) - Convert.ToInt32(s));

                if (quoteCache.Any())
                {
                    range.EndY   = quoteCache.Min(p => p.Close);
                    range.StartY = quoteCache.Max(p => p.Close);

                    range.StartX = s + quoteCache.TakeWhile(p => p.Close != range.StartY).Count();
                    range.EndX   = s + quoteCache.TakeWhile(p => p.Close != range.EndY).Count();
                }
            }
            return(range);
        }
示例#2
0
        internal void RangeSelectorChanged()
        {
            if (financialChart != null && Model.LowerValue != null && Model.UpperValue != null)
            {
                financialChart.BeginUpdate();

                IEnumerable <Object.QuoteRange> ranges = GetYRange(Model.LowerValue.Value, Model.UpperValue.Value);
                if (ranges != null && ranges.Any())
                {
                    if (financialChart != null)
                    {
                        mainSeries.AxisY.Min
                              = financialChart.AxisY.Min
                              = ranges.Min(p => { return(p == null ? int.MaxValue : p.Min); });
                        mainSeries.AxisY.Max
                              = financialChart.AxisY.Max
                              = ranges.Max(p => { return(p == null ? int.MinValue : p.Max); });

                        IndicatorsRangeSelectorChanged();

                        if (arcs.Visibility == C1.Chart.SeriesVisibility.Visible)
                        {
                            Data.ArcsRange range = GetArcsRange(Model.LowerValue.Value, Model.UpperValue.Value);

                            arcs.StartX = range.StartX;
                            arcs.EndX   = range.EndX;

                            arcs.StartY = range.StartY;
                            arcs.EndY   = range.EndY;

                            IEnumerable <Data.SettingParam> settings;
                            if (ViewModel.ViewModel.Instance.Settings.TryGetValue("Fibonacci Arcs", out settings))
                            {
                                Data.SettingParam param = (from p in settings where p.Key == "StartX" select p).FirstOrDefault();
                                param.Value = arcs.StartX;
                                param       = (from p in settings where p.Key == "EndX" select p).FirstOrDefault();
                                param.Value = arcs.EndX;

                                param       = (from p in settings where p.Key == "StartY" select p).FirstOrDefault();
                                param.Value = arcs.StartY;
                                param       = (from p in settings where p.Key == "EndY" select p).FirstOrDefault();
                                param.Value = arcs.EndY;
                            }
                        }
                        else if (fans.Visibility == C1.Chart.SeriesVisibility.Visible)
                        {
                            Data.ArcsRange range = GetArcsRange(Model.LowerValue.Value, Model.UpperValue.Value);

                            fans.StartX = range.EndX;
                            fans.EndX   = range.StartX;

                            fans.StartY = range.EndY;
                            fans.EndY   = range.StartY;

                            IEnumerable <Data.SettingParam> settings;
                            if (ViewModel.ViewModel.Instance.Settings.TryGetValue("Fibonacci Fans", out settings))
                            {
                                Data.SettingParam param = (from p in settings where p.Key == "StartX" select p).FirstOrDefault();
                                param.Value = fans.StartX;
                                param       = (from p in settings where p.Key == "EndX" select p).FirstOrDefault();
                                param.Value = fans.EndX;

                                param       = (from p in settings where p.Key == "StartY" select p).FirstOrDefault();
                                param.Value = fans.StartY;
                                param       = (from p in settings where p.Key == "EndY" select p).FirstOrDefault();
                                param.Value = fans.EndY;
                            }
                        }
                    }
                }
                var quote = ranges.First();
            }
            financialChart.EndUpdate();
        }