private UltimateOscillatorIndicator CreateUltimateOscillatorIndicator()
        {
            UltimateOscillatorIndicator indicator = new UltimateOscillatorIndicator();

            indicator.Period           = 6;
            indicator.Period2          = 9;
            indicator.Period3          = 12;
            indicator.CategoryMember   = "Date";
            indicator.CloseValueMember = "Close";
            indicator.HighValueMember  = "High";
            indicator.LowValueMember   = "Low";
            indicator.DataSource       = viewModel.Data;

            ConfigureAxis(0, 100, 20);

            return(indicator);
        }
Exemple #2
0
        private IndicatorBase CreateIndicator(Indicators indicatorToAdd)
        {
            switch (indicatorToAdd)
            {
            case Indicators.CommodityChannelIndexIndicator:
                var cciIndicator = new CommodityChannelIndexIndicator();
                cciIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                cciIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                cciIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                cciIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                cciIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                cciIndicator.Period          = 10;
                cciIndicator.Stroke          = Color.Green;
                cciIndicator.StrokeThickness = 1;
                return(cciIndicator);

            case Indicators.AverageTrueRangeIndicator:
                var artIndicator = new AverageTrueRangeIndicator();
                artIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                artIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                artIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                artIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                artIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                artIndicator.Period          = 14;
                artIndicator.Stroke          = Color.Green;
                artIndicator.StrokeThickness = 1;
                return(artIndicator);

            case Indicators.TrueRangeIndicator:
                var trIndicator = new TrueRangeIndicator();
                trIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                trIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                trIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                trIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                trIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                trIndicator.Stroke          = Color.Green;
                trIndicator.StrokeThickness = 1;
                return(trIndicator);

            case Indicators.MacdIndicator:
                var macdIndicator = new MacdIndicator();
                macdIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                macdIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                macdIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                macdIndicator.ShortPeriod     = 2;
                macdIndicator.SignalPeriod    = 6;
                macdIndicator.LongPeriod      = 9;
                macdIndicator.Stroke          = Color.Green;
                macdIndicator.SignalStroke    = Color.Red;
                macdIndicator.StrokeThickness = 1;
                return(macdIndicator);

            case Indicators.RelativeMomentumIndexIndicator:
                var rmiIndicator = new RelativeMomentumIndexIndicator();
                rmiIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                rmiIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                rmiIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                rmiIndicator.Stroke          = Color.Green;
                rmiIndicator.Period          = 12;
                rmiIndicator.StrokeThickness = 1;
                return(rmiIndicator);

            case Indicators.RateOfChangeIndicator:
                var rocIndicator = new RateOfChangeIndicator();
                rocIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                rocIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                rocIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                rocIndicator.Stroke          = Color.Green;
                rocIndicator.Period          = 8;
                rocIndicator.StrokeThickness = 1;
                return(rocIndicator);

            case Indicators.RelativeStrengthIndexIndicator:
                var rsiIndicator = new RelativeStrengthIndexIndicator();
                rsiIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                rsiIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                rsiIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                rsiIndicator.Stroke          = Color.Green;
                rsiIndicator.Period          = 8;
                rsiIndicator.StrokeThickness = 1;
                return(rsiIndicator);

            case Indicators.StochasticFastIndicator:
                var sfIndicator = new StochasticFastIndicator();
                sfIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                sfIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                sfIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                sfIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                sfIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                sfIndicator.MainPeriod      = 14;
                sfIndicator.SignalPeriod    = 3;
                sfIndicator.SignalStroke    = Color.Red;
                sfIndicator.Stroke          = Color.Green;
                sfIndicator.StrokeThickness = 1;
                return(sfIndicator);

            case Indicators.StochasticSlowIndicator:
                var ssIndicator = new StochasticSlowIndicator();
                ssIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                ssIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                ssIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                ssIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                ssIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                ssIndicator.MainPeriod      = 14;
                ssIndicator.SlowingPeriod   = 2;
                ssIndicator.SignalPeriod    = 3;
                ssIndicator.SignalStroke    = Color.Red;
                ssIndicator.Stroke          = Color.Green;
                ssIndicator.StrokeThickness = 1;
                return(ssIndicator);

            case Indicators.TrixIndicator:
                var trixIndicator = new TrixIndicator();
                trixIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                trixIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                trixIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                trixIndicator.Stroke          = Color.Green;
                trixIndicator.Period          = 15;
                trixIndicator.StrokeThickness = 1;
                return(trixIndicator);

            case Indicators.UltimateOscillatorIndicator:
                var uoIndicator = new UltimateOscillatorIndicator();
                uoIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                uoIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                uoIndicator.LowBinding      = new PropertyNameDataPointBinding("Low");
                uoIndicator.HighBinding     = new PropertyNameDataPointBinding("High");
                uoIndicator.CloseBinding    = new PropertyNameDataPointBinding("Close");
                uoIndicator.Period          = 5;
                uoIndicator.Period2         = 8;
                uoIndicator.Period3         = 10;
                uoIndicator.Stroke          = Color.Green;
                uoIndicator.StrokeThickness = 1;
                return(uoIndicator);

            default:
                return(null);
            }
        }