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); } }
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); }
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)); }
private void UpdateTickerHistory(BitstampTicker ticker) { TickerHistory24H.Add(ticker); TickerHistory24H.RemoveAll(t => t.Timestamp < DateTime.Now.AddDays(-1)); }