Ejemplo n.º 1
0
        public async Task <BitstampTicker> GetTickerAsync(BitstampTickerCode tickerCode)
        {
            var result = "";

            try
            {
                //var cts = new CancellationTokenSource();
                //cts.CancelAfter(2500);

                using (var client = new HttpClient())
                    using (var response = await client.GetAsync(ApiBaseUrl + "ticker/" + tickerCode.ToString().ToLower()))
                        using (var content = response.Content)
                        {
                            result = await content.ReadAsStringAsync();

                            _ticker = JsonConvert.DeserializeObject <BitstampTicker>(result);
                            UpdateMinMaxLogs(_ticker.Last);
                            if (tickerCode == BitstampTickerCode.BtcUsd) //todo: make beter storage of tickers, now code expects only BtcUsd ticker
                            {
                                UpdateTickerHistory(_ticker);
                            }

                            return(_ticker);
                        }
            }
            catch (OperationCanceledException)
            {
                return(null);
            }
            catch (Exception e)
            {
                return(null);
                //throw new Exception("BitstampExchange.GetTickerAsync() : " + e.Message + Environment.NewLine + result);
            }
        }
Ejemplo n.º 2
0
        private List <IDataRow> UpdateBitstampTicker()
        {
            var             li  = BitstampTicker.GetList();
            List <IDataRow> li2 = new List <IDataRow>();

            foreach (var item in li)
            {
                li2.Add(item as IDataRow);
            }
            return(li2);
        }
Ejemplo n.º 3
0
        public static decimal CalculateBtcAmountToBuy(decimal maximumUsd, decimal minimumUsd, decimal offsetPercentage, BitstampTicker lastTicker)
        {
            var maximumUsdToBuy = maximumUsd - (maximumUsd - minimumUsd) * offsetPercentage;

            return(Math.Round(maximumUsdToBuy / lastTicker.Last, 6));
        }
Ejemplo n.º 4
0
 private void UpdateTickerHistory(BitstampTicker ticker)
 {
     TickerHistory24H.Add(ticker);
     TickerHistory24H.RemoveAll(t => t.Timestamp < DateTime.Now.AddDays(-1));
 }