Exemple #1
0
        private void Candles_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            var candle = (BinanceCandle)e.NewItems[0];

            var wideness = 0.27m;
            var s1       = candle.Candle.Low * (100 + wideness) / 100;
            var l1       = candle.Candle.Low * (100 - wideness) / 100;
            var l2       = candle.Candle.Low * (100 - wideness * 2) / 100;
            var l3       = candle.Candle.Low * (100 - wideness * 3) / 100;
            var l4       = candle.Candle.Low * (100 - wideness * 4) / 100;

            Console.WriteLine("Low : {0}", candle.Candle.Low);
            Console.WriteLine("L1 : {0}", l1);
            Console.WriteLine("L2 : {0}", l2);
            Console.WriteLine("L3 : {0}", l3);
            Console.WriteLine("L4 : {0}", l4);
            Console.WriteLine("S1 : {0}", s1);

            string[] row = { candle.Name,                   candle.CollectedDate.ToLongTimeString(), candle.Candle.Open.ToString(), candle.Candle.Close.ToString(),
                             candle.Candle.Low.ToString(),
                             candle.Candle.High.ToString(),
                             candle.Candle.Volume.ToString() };
            var      listViewItem = new ListViewItem(row);

            if (candle.Candle.Open < candle.Candle.Close)
            {
                listViewItem.ForeColor = System.Drawing.Color.Green;
            }
            else
            {
                listViewItem.ForeColor = System.Drawing.Color.Green;
            }
            FormUtils.AddListItem(listView1, listViewItem);

            if (candle != null)
            {
                candlesvalues.Add(new OhlcPoint
                {
                    Close = double.Parse(candle.Candle.Close.ToString()),
                    Open  = double.Parse(candle.Candle.Open.ToString()),
                    High  = double.Parse(candle.Candle.High.ToString()),
                    Low   = double.Parse(candle.Candle.Low.ToString())
                });

                High.Add(new ObservableValue(double.Parse(candle.Candle.High.ToString())));
                Low.Add(new ObservableValue(double.Parse(candle.Candle.Low.ToString())));

                //Thread Safe Caller for Carte 1



                //lets only use the last 60 values - To remove by Util function !
                if (candlesvalues.Count > 60)
                {
                    candlesvalues.RemoveAt(0);
                }
                if (High.Count > 60)
                {
                    High.RemoveAt(0);
                }
                if (Low.Count > 60)
                {
                    Low.RemoveAt(0);
                }
                if (Buyer.Count > 60)
                {
                    Buyer.RemoveAt(0);
                }
                if (Seller.Count > 60)
                {
                    Seller.RemoveAt(0);
                }
                if (Close.Count > 60)
                {
                    Close.RemoveAt(0);
                }
                solidGauge1.Invoke((MethodInvoker) delegate
                {
                    solidGauge1.Value = candle.Properties.Where(y => y.Key.ToString().Contains("TradeCount")).First().Value;
                    solidGauge1.To    = Global.Shared.IncomingBinance.BData.Select(y => y.Data.TradeCount).Max();
                });

                solidGauge2.Invoke((MethodInvoker) delegate
                {
                    solidGauge2.Value = Double.Parse(candle.Properties.Where(y => y.Key.ToString().Contains("Volume")).First().Value.ToString());
                    solidGauge2.To    = Double.Parse(Global.Shared.IncomingBinance.BData.Select(y => y.Data.Volume).Max().ToString());
                });
                Double TakerVolume = Double.Parse(candle.Properties.Where(y => y.Key.ToString().Contains("TakerBuyBaseAssetVolume")).First().Value.ToString());
                Double TotalVolume = Double.Parse(candle.Properties.Where(y => y.Key.ToString().Contains("Volume")).First().Value.ToString());

                solidGauge3.Invoke((MethodInvoker) delegate
                {
                    solidGauge3.Value = TakerVolume;
                    solidGauge3.To    = TotalVolume;
                });

                solidGauge4.Invoke((MethodInvoker) delegate
                {
                    solidGauge4.Value = TotalVolume - TakerVolume;
                    solidGauge4.To    = TotalVolume;
                });


                Buyer.Add(new ObservableValue(double.Parse(TakerVolume.ToString())));
                Seller.Add(new ObservableValue(double.Parse((TotalVolume - TakerVolume).ToString())));

                cartesianChart2.Invoke((MethodInvoker) delegate
                {
                    cartesianChart2.Series[0].Values = Buyer;
                    cartesianChart2.Series[1].Values = Seller;
                    //cartesianChart2.Series[2].Values = Close;
                });

                LastUID = candle.UID;
            }
        }