public TechnicalIndicator()
        {
            InitializeComponent();
            if (Device.RuntimePlatform == Device.UWP)
            {
                secondaryAxisLabelStyle.LabelFormat = "'$'0.00";
            }
            else
            {
                secondaryAxisLabelStyle.LabelFormat = "'$'##.##";
            }

            PropertyWindowLayout = new StackLayout()
            {
                Orientation = StackOrientation.Vertical
            };
            animationPicker = new Picker();
            animationPicker.Items.Add("Accumulation Distribution");
            animationPicker.Items.Add("Average True");
            animationPicker.Items.Add("Exponential Moving Average");
            animationPicker.Items.Add("Momentum");
            animationPicker.Items.Add("Simple Moving Average");
            animationPicker.Items.Add("RSI Indicator");
            animationPicker.Items.Add("Triangular Moving Average");
            animationPicker.Items.Add("MACD Indicator");
            animationPicker.Items.Add("Stochastic");
            animationPicker.Items.Add("Bollinger Band");

            animationPicker.SelectedIndex = 4;

            animationPicker.HorizontalOptions = LayoutOptions.FillAndExpand;
            animationPicker.VerticalOptions   = LayoutOptions.Center;

            SimpleMovingAverageIndicator sma4 = new SimpleMovingAverageIndicator();
            NumericalAxis numericalAxis4      = new NumericalAxis();

            numericalAxis4.OpposedPosition    = true;
            numericalAxis4.ShowMajorGridLines = false;
            if (Device.RuntimePlatform == Device.UWP)
            {
                numericalAxis4.LabelStyle.LabelFormat = "'$'0.00";
            }
            else
            {
                numericalAxis4.LabelStyle.LabelFormat = "'$'##.##";
            }
            sma4.YAxis      = numericalAxis4;
            sma4.SeriesName = "Series";
            sma4.Period     = 14;
            Chart.TechnicalIndicators.Add(sma4);
            animationPickerLabel.Text = "Simple Moving Average";

            pickerLayout.IsVisible = true;

            PropertyWindowLayout.IsVisible = true;
            if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android)
            {
            }
            else
            {
                PropertyWindowLayout.Margin = new Thickness(5, 2, 2, 2);
            }
            animationPickerTitle.VerticalOptions   = LayoutOptions.Start;
            animationPickerTitle.HorizontalOptions = LayoutOptions.FillAndExpand;
            animationPicker.HorizontalOptions      = LayoutOptions.FillAndExpand;
            animationPicker.VerticalOptions        = LayoutOptions.Center;
            PropertyWindowLayout.Children.Add(animationPickerTitle);
            PropertyWindowLayout.Children.Add(animationPicker);
            this.PropertyView = PropertyWindowLayout;


            animationPicker.SelectedIndexChanged += labelDisplayMode_SelectedIndexChanged;

            if (Device.RuntimePlatform != Device.Android && Device.RuntimePlatform != Device.iOS)
            {
                animationPicker.Margin = new Thickness(5, 5, 10, 0);
            }
            animationPickerTitle.Margin = new Thickness(3, 5, 10, 0);
            animationPickerLabel.Margin = new Thickness(10, 5, 10, 5);
        }
        void labelDisplayMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            animationPickerLabel.Text = animationPicker.Items[animationPicker.SelectedIndex];

            NumericalAxis numericalAxis = new NumericalAxis();

            numericalAxis.OpposedPosition    = true;
            numericalAxis.ShowMajorGridLines = false;
            if (Device.RuntimePlatform == Device.UWP)
            {
                numericalAxis.LabelStyle.LabelFormat = "'$'0.00";
            }
            else
            {
                numericalAxis.LabelStyle.LabelFormat = "'$'##.##";
            }
            switch (animationPicker.SelectedIndex)
            {
            case 0:
                Chart.TechnicalIndicators.RemoveAt(0);
                AccumulationDistributionIndicator sma = new AccumulationDistributionIndicator();
                sma.SeriesName = "Series";
                sma.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma);
                break;

            case 1:
                Chart.TechnicalIndicators.RemoveAt(0);
                AverageTrueIndicator sma1 = new AverageTrueIndicator();
                sma1.SeriesName = "Series";
                sma1.Period     = 14;
                sma1.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma1);
                break;

            case 2:
                Chart.TechnicalIndicators.RemoveAt(0);
                ExponentialMovingAverageIndicator sma2 = new ExponentialMovingAverageIndicator();
                sma2.SeriesName = "Series";
                sma2.Period     = 14;
                sma2.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma2);
                break;

            case 3:
                Chart.TechnicalIndicators.RemoveAt(0);
                MomentumIndicator sma3 = new MomentumIndicator();
                sma3.SeriesName = "Series";
                sma3.Period     = 14;
                sma3.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma3);
                break;

            case 4:
                if (Chart.TechnicalIndicators.Count > 0)
                {
                    Chart.TechnicalIndicators.RemoveAt(0);
                }
                SimpleMovingAverageIndicator sma4 = new SimpleMovingAverageIndicator();
                sma4.YAxis      = numericalAxis;
                sma4.SeriesName = "Series";
                sma4.Period     = 14;
                Chart.TechnicalIndicators.Add(sma4);
                break;

            case 5:
                Chart.TechnicalIndicators.RemoveAt(0);
                RSIIndicator sma5 = new RSIIndicator();
                sma5.SeriesName = "Series";
                sma5.Period     = 14;
                sma5.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma5);
                break;

            case 6:
                Chart.TechnicalIndicators.RemoveAt(0);
                TriangularMovingAverageIndicator sma6 = new TriangularMovingAverageIndicator();
                sma6.SeriesName = "Series";
                sma6.Period     = 14;
                sma6.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma6);
                break;

            case 7:
                Chart.TechnicalIndicators.RemoveAt(0);
                MACDIndicator sma7 = new MACDIndicator();
                sma7.ItemsSource = (Chart.BindingContext as TechnicalIndicatorViewModel).TechnicalIndicatorData;
                sma7.SeriesName  = "Series";
                sma7.LongPeriod  = 10;
                sma7.ShortPeriod = 2;
                sma7.Trigger     = 14;
                sma7.YAxis       = numericalAxis;
                Chart.TechnicalIndicators.Add(sma7);
                break;

            case 8:
                Chart.TechnicalIndicators.RemoveAt(0);
                StochasticIndicator sma8 = new StochasticIndicator();
                sma8.SeriesName = "Series";
                sma8.Period     = 14;
                sma8.KPeriod    = 5;
                sma8.DPeriod    = 6;
                sma8.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma8);
                break;

            case 9:
                Chart.TechnicalIndicators.RemoveAt(0);
                BollingerBandIndicator sma9 = new BollingerBandIndicator();
                sma9.Period     = 14;
                sma9.SeriesName = "Series";
                sma9.YAxis      = numericalAxis;
                Chart.TechnicalIndicators.Add(sma9);
                break;
            }
        }
Exemplo n.º 3
0
 public TemperatureEvent(Termometer termo, int period, double temperature, bool above)
 {
     this.movingAverage = new SimpleMovingAverageIndicator(period);
     this.termo = termo;
     this.above = above;
 }
        void labelDisplayMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (animationPicker.SelectedIndex)
            {
            case 0:
                Chart.TechnicalIndicators.RemoveAt(0);
                AccumulationDistributionIndicator sma = new AccumulationDistributionIndicator();
                sma.SeriesName = "Series";
                NumericalAxis numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                sma.YAxis = numericalAxis;
                Chart.TechnicalIndicators.Add(sma);
                break;

            case 1:
                Chart.TechnicalIndicators.RemoveAt(0);
                AverageTrueIndicator sma1 = new AverageTrueIndicator();
                sma1.SeriesName = "Series";
                sma1.Period     = 14;
                NumericalAxis numericalAxis1 = new NumericalAxis();
                numericalAxis1.OpposedPosition    = true;
                numericalAxis1.ShowMajorGridLines = false;
                sma1.YAxis = numericalAxis1;
                Chart.TechnicalIndicators.Add(sma1);
                break;

            case 2:
                Chart.TechnicalIndicators.RemoveAt(0);
                ExponentialMovingAverageIndicator sma2 = new ExponentialMovingAverageIndicator();
                sma2.SeriesName = "Series";
                sma2.Period     = 14;
                NumericalAxis numericalAxis2 = new NumericalAxis();
                numericalAxis2.OpposedPosition    = true;
                numericalAxis2.ShowMajorGridLines = false;
                sma2.YAxis = numericalAxis2;
                Chart.TechnicalIndicators.Add(sma2);
                break;

            case 3:
                Chart.TechnicalIndicators.RemoveAt(0);
                MomentumIndicator sma3 = new MomentumIndicator();
                sma3.SeriesName = "Series";
                sma3.Period     = 14;
                NumericalAxis numericalAxis3 = new NumericalAxis();
                numericalAxis3.OpposedPosition    = true;
                numericalAxis3.ShowMajorGridLines = false;
                sma3.YAxis = numericalAxis3;
                Chart.TechnicalIndicators.Add(sma3);
                break;

            case 4:
                if (Chart.TechnicalIndicators.Count > 0)
                {
                    Chart.TechnicalIndicators.RemoveAt(0);
                }
                SimpleMovingAverageIndicator sma4 = new SimpleMovingAverageIndicator();
                NumericalAxis numericalAxis4      = new NumericalAxis();
                numericalAxis4.OpposedPosition    = true;
                numericalAxis4.ShowMajorGridLines = false;
                sma4.YAxis      = numericalAxis4;
                sma4.SeriesName = "Series";
                sma4.Period     = 14;
                Chart.TechnicalIndicators.Add(sma4);
                break;

            case 5:
                Chart.TechnicalIndicators.RemoveAt(0);
                RSIIndicator sma5 = new RSIIndicator();
                sma5.SeriesName = "Series";
                sma5.Period     = 14;
                NumericalAxis numericalAxis5 = new NumericalAxis();
                numericalAxis5.OpposedPosition    = true;
                numericalAxis5.ShowMajorGridLines = false;
                sma5.YAxis = numericalAxis5;
                Chart.TechnicalIndicators.Add(sma5);
                break;

            case 6:
                Chart.TechnicalIndicators.RemoveAt(0);
                TriangularMovingAverageIndicator sma6 = new TriangularMovingAverageIndicator();
                sma6.SeriesName = "Series";
                sma6.Period     = 14;
                NumericalAxis numericalAxis6 = new NumericalAxis();
                numericalAxis6.OpposedPosition    = true;
                numericalAxis6.ShowMajorGridLines = false;
                sma6.YAxis = numericalAxis6;
                Chart.TechnicalIndicators.Add(sma6);
                break;

            case 7:
                Chart.TechnicalIndicators.RemoveAt(0);
                MACDIndicator sma7 = new MACDIndicator();
                sma7.ItemsSource = (this.BindingContext as ViewModel).TechnicalIndicatorData;
                sma7.SeriesName  = "Series";
                sma7.LongPeriod  = 10;
                sma7.ShortPeriod = 2;
                sma7.Trigger     = 14;
                NumericalAxis numericalAxis7 = new NumericalAxis();
                numericalAxis7.OpposedPosition    = true;
                numericalAxis7.ShowMajorGridLines = false;
                sma7.YAxis = numericalAxis7;
                Chart.TechnicalIndicators.Add(sma7);
                break;

            case 8:
                Chart.TechnicalIndicators.RemoveAt(0);
                StochasticIndicator sma8 = new StochasticIndicator();
                sma8.SeriesName = "Series";
                sma8.Period     = 14;
                sma8.KPeriod    = 5;
                sma8.DPeriod    = 6;
                NumericalAxis numericalAxis8 = new NumericalAxis();
                numericalAxis8.OpposedPosition    = true;
                numericalAxis8.ShowMajorGridLines = false;
                sma8.YAxis = numericalAxis8;
                Chart.TechnicalIndicators.Add(sma8);
                break;

            case 9:
                Chart.TechnicalIndicators.RemoveAt(0);
                BollingerBandIndicator sma9 = new BollingerBandIndicator();
                sma9.Period     = 14;
                sma9.SeriesName = "Series";
                NumericalAxis numericalAxis9 = new NumericalAxis();
                numericalAxis9.OpposedPosition    = true;
                numericalAxis9.ShowMajorGridLines = false;
                sma9.YAxis = numericalAxis9;
                Chart.TechnicalIndicators.Add(sma9);
                break;
            }
        }
Exemplo n.º 5
0
        public override View GetSampleContent(Context context)
        {
            chart = new SfChart(context);
            chart.SetPadding(0, 10, 0, 0);
            chart.Behaviors.Add(new ChartTrackballBehavior());
            DateTimeAxis dateTimeAxis = new DateTimeAxis();

            dateTimeAxis.LabelStyle.LabelFormat = "MM/yyyy";
            chart.PrimaryAxis = dateTimeAxis;


            NumericalAxis numericalAxis = new NumericalAxis();

            chart.SecondaryAxis = numericalAxis;

            HiLoOpenCloseSeries candleSeries = new HiLoOpenCloseSeries();

            candleSeries.ItemsSource     = MainPage.GetTechnicalIndicatorData();
            candleSeries.XBindingPath    = "XValue";
            candleSeries.Open            = "Open";
            candleSeries.Close           = "Close";
            candleSeries.High            = "High";
            candleSeries.Low             = "Low";
            candleSeries.EnableAnimation = true;
            candleSeries.Name            = "Series";
            chart.Series.Add(candleSeries);

            SimpleMovingAverageIndicator sMA = new SimpleMovingAverageIndicator();

            sMA.SeriesName      = "Series";
            sMA.XBindingPath    = "XValue";
            sMA.Open            = "Open";
            sMA.Close           = "Close";
            sMA.High            = "High";
            sMA.Low             = "Low";
            sMA.EnableAnimation = true;
            chart.TechnicalIndicators.Add(sMA);

            TextView labelDisplayMode = new TextView(context);

            labelDisplayMode.TextSize = 20;
            labelDisplayMode.Text     = "Technical Indicator type";

            Spinner selectLabelMode = new Spinner(context, SpinnerMode.Dialog);

            adapter = new List <String>()
            {
                "Simple Moving Average Indicator", "Average True Indicator", "Exponential Moving Averge Indicator", "Momentum Indicator",
                "Accumulation Distribution Indicator", "RSI Indicator", "Triangular Moving Average Indicator",
                "MACD Indicator", "Stochastic Indicator", "Bollinger Band Indicator"
            };

            ArrayAdapter <String> dataAdapter = new ArrayAdapter <String>
                                                    (context, Android.Resource.Layout.SimpleSpinnerItem, adapter);

            dataAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleDropDownItem1Line);
            selectLabelMode.Adapter       = dataAdapter;
            selectLabelMode.ItemSelected += SelectLabelMode_ItemSelected;

            LinearLayout linearLayout = new LinearLayout(context);

            linearLayout.SetPadding(20, 0, 20, 30);
            linearLayout.SetBackgroundColor(Color.Rgb(236, 235, 242));
            linearLayout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent,
                                                                          LinearLayout.LayoutParams.WrapContent);
            linearLayout.Orientation = Orientation.Vertical;
            linearLayout.SetBackgroundColor(Color.White);
            linearLayout.AddView(selectLabelMode);
            linearLayout.AddView(chart);
            return(linearLayout);
        }
Exemplo n.º 6
0
        private void SelectLabelMode_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
        {
            String selectedItem = adapter[e.Position];

            if (selectedItem.Equals("Accumulation Distribution Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                AccumulationDistributionIndicator accumulationDistribution = new AccumulationDistributionIndicator();
                NumericalAxis numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition         = true;
                numericalAxis.ShowMajorGridLines      = false;
                accumulationDistribution.YAxis        = numericalAxis;
                accumulationDistribution.SeriesName   = "Series";
                accumulationDistribution.XBindingPath = "XValue";
                accumulationDistribution.Open         = "Open";
                accumulationDistribution.Close        = "Close";
                accumulationDistribution.High         = "High";
                accumulationDistribution.Low          = "Low";
                chart.TechnicalIndicators.Add(accumulationDistribution);
            }
            else if (selectedItem.Equals("Average True Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                AverageTrueIndicator aTR           = new AverageTrueIndicator();
                NumericalAxis        numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                aTR.YAxis        = numericalAxis;
                aTR.Period       = 14;
                aTR.SeriesName   = "Series";
                aTR.XBindingPath = "XValue";
                aTR.Open         = "Open";
                aTR.Close        = "Close";
                aTR.High         = "High";
                aTR.Low          = "Low";
                chart.TechnicalIndicators.Add(aTR);
            }
            else if (selectedItem.Equals("Exponential Moving Averge Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                ExponentialMovingAverageIndicator eMA = new ExponentialMovingAverageIndicator();
                NumericalAxis numericalAxis           = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                eMA.YAxis        = numericalAxis;
                eMA.Period       = 14;
                eMA.SeriesName   = "Series";
                eMA.XBindingPath = "XValue";
                eMA.Open         = "Open";
                eMA.Close        = "Close";
                eMA.High         = "High";
                eMA.Low          = "Low";
                chart.TechnicalIndicators.Add(eMA);
            }
            else if (selectedItem.Equals("Momentum Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                MomentumIndicator momentum      = new MomentumIndicator();
                NumericalAxis     numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                momentum.YAxis        = numericalAxis;
                momentum.SeriesName   = "Series";
                momentum.XBindingPath = "XValue";
                momentum.Open         = "Open";
                momentum.Close        = "Close";
                momentum.High         = "High";
                momentum.Low          = "Low";
                momentum.Period       = 14;
                chart.TechnicalIndicators.Add(momentum);
            }
            else if (selectedItem.Equals("Simple Moving Average Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                SimpleMovingAverageIndicator sMA = new SimpleMovingAverageIndicator();
                sMA.SeriesName   = "Series";
                sMA.XBindingPath = "XValue";
                sMA.Open         = "Open";
                sMA.Close        = "Close";
                sMA.High         = "High";
                sMA.Low          = "Low";
                sMA.Period       = 14;
                chart.TechnicalIndicators.Add(sMA);
            }
            else if (selectedItem.Equals("RSI Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                RSIIndicator  rSI           = new RSIIndicator();
                NumericalAxis numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                rSI.YAxis        = numericalAxis;
                rSI.Period       = 14;
                rSI.SeriesName   = "Series";
                rSI.XBindingPath = "XValue";
                rSI.Open         = "Open";
                rSI.Close        = "Close";
                rSI.High         = "High";
                rSI.Low          = "Low";
                chart.TechnicalIndicators.Add(rSI);
            }
            else if (selectedItem.Equals("Triangular Moving Average Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                TriangularMovingAverageIndicator tMA = new TriangularMovingAverageIndicator();
                NumericalAxis numericalAxis          = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                tMA.YAxis        = numericalAxis;
                tMA.Period       = 14;
                tMA.SeriesName   = "Series";
                tMA.XBindingPath = "XValue";
                tMA.Open         = "Open";
                tMA.Close        = "Close";
                tMA.High         = "High";
                tMA.Low          = "Low";
                chart.TechnicalIndicators.Add(tMA);
            }
            else if (selectedItem.Equals("MACD Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                MACDIndicator mACD          = new MACDIndicator();
                NumericalAxis numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                mACD.YAxis        = numericalAxis;
                mACD.SeriesName   = "Series";
                mACD.XBindingPath = "XValue";
                mACD.Open         = "Open";
                mACD.Close        = "Close";
                mACD.High         = "High";
                mACD.Low          = "Low";
                mACD.ShortPeriod  = 2;
                mACD.LongPeriod   = 10;
                mACD.Trigger      = 14;
                chart.TechnicalIndicators.Add(mACD);
            }
            else if (selectedItem.Equals("Stochastic Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                StochasticIndicator stochastic    = new StochasticIndicator();
                NumericalAxis       numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                stochastic.YAxis        = numericalAxis;
                stochastic.SeriesName   = "Series";
                stochastic.XBindingPath = "XValue";
                stochastic.Open         = "Open";
                stochastic.Close        = "Close";
                stochastic.High         = "High";
                stochastic.Low          = "Low";
                stochastic.Period       = 14;
                stochastic.KPeriod      = 5;
                stochastic.DPeriod      = 6;
                chart.TechnicalIndicators.Add(stochastic);
            }
            else if (selectedItem.Equals("Bollinger Band Indicator"))
            {
                chart.TechnicalIndicators.RemoveAt(0);
                BollingerBandIndicator bB = new BollingerBandIndicator();
                bB.Period = 14;
                NumericalAxis numericalAxis = new NumericalAxis();
                numericalAxis.OpposedPosition    = true;
                numericalAxis.ShowMajorGridLines = false;
                //bB.YAxis = numericalAxis;
                bB.SeriesName   = "Series";
                bB.XBindingPath = "XValue";
                bB.Open         = "Open";
                bB.Close        = "Close";
                bB.High         = "High";
                bB.Low          = "Low";
                chart.TechnicalIndicators.Add(bB);
            }
        }
Exemplo n.º 7
0
 public TemperatureEvent(Termometer termo, int period, double temperature, bool above)
 {
     this.movingAverage = new SimpleMovingAverageIndicator(period);
     this.termo         = termo;
     this.above         = above;
 }