private void kayilardaYoksaEkleVarsaGuncelle(Kayit coinData) { lock (lockerKayitlar) { if (!_kayitlar.ContainsKey(coinData.Sembol)) { _kayitlar.Add(coinData.Sembol, coinData); } _kayitlar[coinData.Sembol] = coinData; } }
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); } }