예제 #1
0
 private void kayilardaYoksaEkleVarsaGuncelle(Kayit coinData)
 {
     lock (lockerKayitlar)
     {
         if (!_kayitlar.ContainsKey(coinData.Sembol))
         {
             _kayitlar.Add(coinData.Sembol, coinData);
         }
         _kayitlar[coinData.Sembol] = coinData;
     }
 }
예제 #2
0
        private void _analizEt(string sembol)
        {
            var             client = new CryptoCompareClient();
            HistoryResponse historyHour;

            try
            {
                lbIslenenCoinAdet.Yazdir(Interlocked.Increment(ref _sayac).ToString());
                var task = client.History.HourAsync(sembol, "BTC", _limit - 1, "Binance");
                task.Wait();
                historyHour = task.Result;
            }
            catch (Exception ex)
            {
                lbHatalar.Yazdir(sembol + "Coini Binance da Mevcut Değil: " + ex.IctenDisaHatalariAl());
                return;
            }
            var coinData       = new Kayit(sembol);
            var candleDataList = historyHour.Data;
            var candles        = candleDataList.Where(x => x.Close > 0).ToList();

            if (!candles.Any())
            {
                lbHatalar.Yazdir("Hiç Mum Yok, Coin: " + sembol);
                return;
            }

            var kalan = candles.Count % 4;

            candles = candles.Skip(kalan).ToList();
            var son4Indeks = candles.Count / 4;

            for (var i = 0; i < son4Indeks; i++)
            {
                var mumlar     = candles.Skip(i * 4).Take(4);
                var candleData = new CandleData();
                foreach (var mum in mumlar)
                {
                    candleData.VolumeTo += mum.VolumeTo;
                }
                candleData.Close = mumlar.Last().Close;
                coinData.Closes4Saatlik.Add(candleData.Close);
                coinData.Volumes4Saatlik.Add(candleData.VolumeTo);
            }
            var sma21 = coinData.Closes4Saatlik.Sma(21);

            if (coinData.Closes4Saatlik.Any() && sma21.Any() && coinData.Closes4Saatlik.Last() > sma21.Last())
            {
                lbSinyaller.Yazdir(sembol);
                kayilardaYoksaEkleVarsaGuncelle(coinData);
            }
        }