/// <summary> /// Used to retrieve the latest trades that have occured for a specific market. /// </summary> /// <param name="market">requires a string literal for the market (ex: BTC-LTC)</param> /// <returns>The market history for the specified market</returns> public static List <MarketHistory> GetMarketHistory(string market) { List <MarketHistory> marketHistoryList = new List <MarketHistory>(); dynamic response = JsonConvert.DeserializeObject(HTTPMethods.HttpGet(Constants.baseUrl + "/public/getmarkethistory?market=" + market)); if (response.success == false) { throw new Exception("Unable to get data from API: " + response.message.ToString()); } foreach (var item in response.result) { int id = Convert.ToInt32(item.Id); DateTime timeStamp = Convert.ToDateTime(item.TimeStamp); double quantity = Convert.ToDouble(item.Quantity); double price = Convert.ToDouble(item.Price); double total = Convert.ToDouble(item.Total); string fillType = item.FillType.ToString(); string orderType = item.OrderType.ToString(); MarketHistory marketHistroy = new MarketHistory(id, timeStamp, quantity, price, total, fillType, orderType); marketHistoryList.Add(marketHistroy); } return(marketHistoryList); }
public async Task<int> GetMarketHistory(string marketName) { var result = await _client.GetMarketHistory(marketName) .ConfigureAwait(false); var market = _marketRepository.GetList(x => x.MarketName.Equals(marketName)).FirstOrDefault(); foreach (var item in result.Result) { if (!_marketHistoryRepository.GetList().Any(x => x.TransactionId.Equals(item.Id))) { var marketHistory = new MarketHistory { TransactionId = item.Id, Market = market, Timestamp = item.TimeStamp, Quantity = item.Quantity, Price = item.Price, FillType = (short) ((item.FillType == "FILL")? FillType.Fill: FillType.PartialFill), OrderType = (short)((item.FillType == "BUY") ? OrderType.Buy : OrderType.Sell), CreatedDate = DateTime.Now }; _marketHistoryRepository.Insert(marketHistory); } } var numRecords = _marketHistoryRepository.Save(); return numRecords; }
public static MarketHistory ToHistory(this PoloniexTradeHistoryDataType historyDataType, Pair pair) { DateTime timeStamp; if (!DateTime.TryParse(historyDataType.TimeStamp, out timeStamp)) { throw new Exception("TimeStamp is a required field"); } TradePosition orderType; switch (historyDataType.OrderType.ToLower()) { case "buy": orderType = TradePosition.Buy; break; case "sell": orderType = TradePosition.Sell; break; default: throw new Exception($"Unknown trade tag: {historyDataType.OrderType}"); } var history = new MarketHistory(pair, historyDataType.Id.ToString(), timeStamp, historyDataType.Quantity, historyDataType.Price, historyDataType.Total, orderType); return(history); }
public void TestCreateMarketHistoryWithDictionary() { //List<string> allLines = Reader.GetAllLinesFromPath("COTAHIST_A2016.TXT"); Dictionary <string, MarketData> mData = Reader.GetMarketDataFromPaper("PETR3", allLines); MarketHistory mh = new MarketHistory(mData); }
public float RecentSupplyAverage() { float numberOfRounds = MarketHistory.Count >= 15 ? 15 : MarketHistory.Count; float supply = (float)Math.Round((MarketHistory.Sum(x => x.Supply) / numberOfRounds), 2); return(supply); }
} = new List <TransactionRecord>(); //Make a TransactionRecord class with seller, buyer, amount, price, and round public Market(Resource resource) { Resource = resource; MarketPrice = resource.BasePrice; MarketHistory.Add(new MarketHistoryRecord(0, 1, 1, 1, 1)); //populate market history with a single fake record to start }
public float RecentDemandAverage() { float numberOfRounds = MarketHistory.Count >= 15 ? 15 : MarketHistory.Count; float demand = (float)Math.Round((MarketHistory.Sum(x => x.Demand) / numberOfRounds), 2); return(demand); }
public void TestGetLastNClosingPrices() { //List<string> allLines = Reader.GetAllLinesFromPath("COTAHIST_A2016.TXT"); Dictionary <string, MarketData> mData = Reader.GetMarketDataFromPaper("PETR3", allLines); MarketHistory mh = new MarketHistory(mData); var last15 = mh.GetLastNClosingPrices(15, mh[225].dateStr); }
public void TestIntIndexer() { //List<string> allLines = Reader.GetAllLinesFromPath("COTAHIST_A2016.TXT"); Dictionary <string, MarketData> mData = Reader.GetMarketDataFromPaper("PETR3", allLines); MarketHistory mh = new MarketHistory(mData); MarketData retrieved = mh[429]; }
private void AddMarketHistoryRecord(MarketHistoryRecord record) { MarketHistory.Add(record); if (MarketHistory.Count() > _marketHistoryLimit) { MarketHistory.RemoveAt(0); } Demand = (float)Math.Round((MarketHistory.Sum(x => x.Demand) / (float)MarketHistory.Count()), 2); Supply = (float)Math.Round((MarketHistory.Sum(x => x.Supply) / (float)MarketHistory.Count()), 2); }
public void TestForEach() { //List<string> allLines = Reader.GetAllLinesFromPath("COTAHIST_A2016.TXT"); Dictionary <string, MarketData> mData = Reader.GetMarketDataFromPaper("PETR3", allLines); MarketHistory mh = new MarketHistory(mData); int mDatas = 0; foreach (MarketData m in mh) { mDatas++; } }
public Dictionary <string, decimal> CalculateIndicator(MarketHistory mHistory) { Dictionary <string, decimal> temp = new Dictionary <string, decimal>(); foreach (MarketData m in mHistory) { var lastCloses = mHistory.GetLastNClosingPrices(period, m.dateStr); decimal avg = lastCloses.Average(); temp.Add(m.dateStr, avg); } return(temp); }
public void TestGetLastNumericData() { //List<string> allLines = Reader.GetAllLinesFromPath("COTAHIST_A2016.TXT"); Dictionary <string, MarketData> mData = Reader.GetMarketDataFromPaper("PETR3", allLines); MarketHistory mh = new MarketHistory(mData); var avg = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.AVGPRICE); var close = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.CLOSEPRICE); var mkt = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.MARKETTYPE); var max = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.MAXPRICE); var min = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.MINPRICE); var neg = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.NEGOTIATIONSNUMBER); var open = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.OPENPRICE); var papers = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.PAPERSNUMBER); var vol = mh.GetLastNumericData(15, mh[225].dateStr, MarketNumericInfo.VOLUME); }
private void initialize() { if (BuyOrders.Any()) { CurrentBuyPrice = BuyOrders.MaxBy(order => order.Price).Price; } if (SellOrders.Any()) { CurrentSellPrice = SellOrders.MinBy(order => order.Price).Price; } var high = new List <decimal>(); var low = new List <decimal>(); if (!MarketHistory.Any()) { return; } foreach (MarketHistoryAggregateEntry entry in MarketHistory) { high.Add(entry.HighPrice); low.Add(entry.LowPrice); if (high.Count > DonchianLength) { high.RemoveAt(0); } if (low.Count > DonchianLength) { low.RemoveAt(0); } if (high.Any()) { entry.DonchianHigh = high.Max(); } if (low.Any()) { entry.DonchianLow = low.Min(); } entry.DonchianCenter = (entry.DonchianHigh + entry.DonchianLow) / 2; } }
static void Main(string[] args) { string apiKey = "YourApiKey"; string apiSecret = "yourApiSecret"; TradeSatoshi tradeSatoshi = new TradeSatoshi("https://tradesatoshi.com/", apiKey, apiSecret); while (true) { // User Prompt Console.WriteLine("TradeSatoshi API Demo"); Console.WriteLine("\t1: \\GetCurrencies"); Console.WriteLine("\t2: \\GetTicker"); Console.WriteLine("\t3: \\GetMarketHistory"); Console.WriteLine("\t4: \\GetMarketSummary"); Console.WriteLine("\t5: \\GetMarketSummaries"); Console.WriteLine("\t6: \\GetOrderBook"); Console.WriteLine("\t7: \\GetBalance"); Console.WriteLine("\t8: \\GetBalances"); Console.WriteLine("\t9: \\GetOrder"); Console.WriteLine("\t10: \\GetOrders"); Console.WriteLine("\t11: \\SubmitOrder"); Console.WriteLine("\t12: \\CancelOrder"); Console.WriteLine("\t13: \\GetTradeHistory"); Console.WriteLine("\t14: \\GenerateAddress"); Console.WriteLine("\t15: \\SubmitWithdraw"); Console.WriteLine("\t16: \\GetDeposits"); Console.WriteLine("\t17: \\GetWithdrawls"); Console.WriteLine("\t18: \\SubmitTransfer"); Console.WriteLine("\t19: \\GetTradePairChart"); Console.Write("\n\tOption: "); string option = Console.ReadLine(); Console.WriteLine(); switch (option) { case "1": // GetCurrencies CurrencyList[] currencyList = new CurrencyList[] { }; try { currencyList = tradeSatoshi.GetCurrencyList().Result; Console.WriteLine(@"\GetCurrencies"); foreach (CurrencyList currency in currencyList) { Console.WriteLine(String.Format("\t\tCurrency:\t\t{0}", currency.Currency)); Console.WriteLine(String.Format("\t\tCurrencyLong:\t\t{0}", currency.CurrencyLong)); Console.WriteLine(String.Format("\t\tMinConfirmation:\t{0}", currency.MinConfirmation)); Console.WriteLine(String.Format("\t\ttxFee:\t\t\t{0}", currency.TxFee)); Console.WriteLine(String.Format("\t\tStatus:\t\t\t{0}", currency.Status)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "2": // GetTicker Ticker ticker = new Ticker(); try { ticker = tradeSatoshi.GetTicker("ZCL", TradingPair.BTC).Result; Console.WriteLine(@"\GetTicker"); Console.WriteLine(String.Format("\t\tBid:\t{0}", ticker.Bid)); Console.WriteLine(String.Format("\t\tAsk:\t{0}", ticker.Ask)); Console.WriteLine(String.Format("\t\tLast:\t{0}", ticker.Last)); Console.WriteLine(String.Format("\t\tMarket:\t{0}", ticker.Market)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "3": // GetMarketHistory MarketHistory[] marketHistory = new MarketHistory[] { }; try { marketHistory = tradeSatoshi.GetMarketHistory("ZCL", TradingPair.BTC, 5).Result; Console.WriteLine(@"\GetMarketHistory"); foreach (MarketHistory history in marketHistory) { Console.WriteLine(String.Format("\t\tID:\t\t{0}", history.Id)); Console.WriteLine(String.Format("\t\tTimeStamp:\t{0}", history.TimeStamp)); Console.WriteLine(String.Format("\t\tQuantity:\t{0}", history.Quantity)); Console.WriteLine(String.Format("\t\tPrice:\t\t{0}", history.Price)); Console.WriteLine(String.Format("\t\tOrderType:\t{0}", history.OrderType)); Console.WriteLine(String.Format("\t\tTotal:\t\t{0}", history.Total)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } break; case "4": // GetMarketSummary MarketSummary marketSummary = new MarketSummary(); try { marketSummary = tradeSatoshi.GetMarketSummary("ZCL", TradingPair.BTC).Result; Console.WriteLine(@"\GetMarketSummary"); Console.WriteLine(String.Format("\t\tMarket:\t\t{0}", marketSummary.Market)); Console.WriteLine(String.Format("\t\tHigh:\t\t{0}", marketSummary.High)); Console.WriteLine(String.Format("\t\tLow:\t\t{0}", marketSummary.Low)); Console.WriteLine(String.Format("\t\tBaseVolume:\t{0}", marketSummary.BaseVolume)); Console.WriteLine(String.Format("\t\tLast:\t\t{0}", marketSummary.Last)); Console.WriteLine(String.Format("\t\tBid:\t\t{0}", marketSummary.Bid)); Console.WriteLine(String.Format("\t\tAsk:\t\t{0}", marketSummary.Ask)); Console.WriteLine(String.Format("\t\tOpenBuyOrders:\t{0}", marketSummary.OpenBuyOrders)); Console.WriteLine(String.Format("\t\tOpenSellOrders:\t{0}", marketSummary.OpenSellOrders)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "5": // GetMarketSummaries MarketSummary[] marketSummaries = new MarketSummary[] { }; try { marketSummaries = tradeSatoshi.GetMarketSummaries().Result; Console.WriteLine(@"\GetMarketSummaries"); foreach (MarketSummary market in marketSummaries) { Console.WriteLine(String.Format("\t\tMarket:\t\t{0}", market.Market)); Console.WriteLine(String.Format("\t\tHigh:\t\t{0}", market.High)); Console.WriteLine(String.Format("\t\tLow:\t\t{0}", market.Low)); Console.WriteLine(String.Format("\t\tBaseVolume:\t{0}", market.BaseVolume)); Console.WriteLine(String.Format("\t\tLast:\t\t{0}", market.Last)); Console.WriteLine(String.Format("\t\tBid:\t\t{0}", market.Bid)); Console.WriteLine(String.Format("\t\tAsk:\t\t{0}", market.Ask)); Console.WriteLine(String.Format("\t\tOpenBuyOrders:\t{0}", market.OpenBuyOrders)); Console.WriteLine(String.Format("\t\tOpenSellOrders:\t{0}", market.OpenSellOrders)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "6": // GetOrderBook OrderBook orderBook = new OrderBook(); try { orderBook = tradeSatoshi.GetOrderBook("ZCL", TradingPair.BTC, OrderType.Both, 5).Result; Console.WriteLine(@"\GetOrderBook"); Console.WriteLine("\t\tBuy:"); foreach (Buy buy in orderBook.Buy) { Console.WriteLine(String.Format("\t\t\tQuantity:\t{0}", buy.Quantity)); Console.WriteLine(String.Format("\t\t\tRate:\t\t{0}", buy.Rate)); } Console.WriteLine("\t\tSell:"); foreach (Sell sell in orderBook.Sell) { Console.WriteLine(String.Format("\t\t\tQuantity:\t{0}", sell.Quantity)); Console.WriteLine(String.Format("\t\t\tRate:\t\t{0}", sell.Rate)); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "7": // GetBalance Balance balance = new Balance(); try { balance = tradeSatoshi.GetBalance("GRLC").Result; Console.WriteLine(@"\GetBalance"); Console.WriteLine(String.Format("\t\tCurrency:\t\t{0}", balance.Currency)); Console.WriteLine(String.Format("\t\tCurrencyLong:\t\t{0}", balance.CurrencyLong)); Console.WriteLine(String.Format("\t\tAvailable:\t\t{0}", balance.Avaliable)); // a typo! Console.WriteLine(String.Format("\t\tTotal:\t\t\t{0}", balance.Total)); Console.WriteLine(String.Format("\t\tHeldForTrades:\t\t{0}", balance.HeldForTrades)); Console.WriteLine(String.Format("\t\tUnconfirmed:\t\t{0}", balance.Unconfirmed)); Console.WriteLine(String.Format("\t\tPendingWithdraw:\t{0}", balance.PendingWithdraw)); Console.WriteLine(String.Format("\t\tAddress:\t\t{0}", balance.PendingWithdraw)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "8": // GetBalances Balance[] balances = new Balance[] { }; try { balances = tradeSatoshi.GetBalances().Result; Console.WriteLine(@"\GetBalances"); foreach (Balance individualBalance in balances) { Console.WriteLine(String.Format("\t\tCurrency:\t\t{0}", individualBalance.Currency)); Console.WriteLine(String.Format("\t\tCurrencyLong:\t\t{0}", individualBalance.CurrencyLong)); Console.WriteLine(String.Format("\t\tAvailable:\t\t{0}", individualBalance.Avaliable)); // a typo! Console.WriteLine(String.Format("\t\tTotal:\t\t\t{0}", individualBalance.Total)); Console.WriteLine(String.Format("\t\tHeldForTrades:\t\t{0}", individualBalance.HeldForTrades)); Console.WriteLine(String.Format("\t\tUnconfirmed:\t\t{0}", individualBalance.Unconfirmed)); Console.WriteLine(String.Format("\t\tPendingWithdraw:\t{0}", individualBalance.PendingWithdraw)); Console.WriteLine(String.Format("\t\tAddress:\t\t{0}", individualBalance.PendingWithdraw)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "9": // GetOrder Order order = new Order(); try { order = tradeSatoshi.GetOrder(00000000).Result; Console.WriteLine(@"\GetOrder"); Console.WriteLine(String.Format("\t\tAmount:\t\t{0}", order.Amount)); Console.WriteLine(String.Format("\t\tId:\t\t{0}", order.Id)); Console.WriteLine(String.Format("\t\tIsApi:\t\t{0}", order.IsApi)); Console.WriteLine(String.Format("\t\tMarket:\t\t{0}", order.Market)); Console.WriteLine(String.Format("\t\tRate:\t\t{0}", order.Rate)); Console.WriteLine(String.Format("\t\tRemaining:\t{0}", order.Remaining)); Console.WriteLine(String.Format("\t\tTimestamp:\t{0}", order.Timestamp)); Console.WriteLine(String.Format("\t\tTotal:\t\t{0}", order.Total)); Console.WriteLine(String.Format("\t\tType:\t\t{0}", order.Type)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "10": // GetOrders Order[] orders = new Order[] { }; try { orders = tradeSatoshi.GetOrders("GRLC", TradingPair.BTC, 5).Result; Console.WriteLine(@"\GetOrders"); foreach (Order individualOrder in orders) { Console.WriteLine(String.Format("\t\tAmount:\t\t{0}", individualOrder.Amount)); Console.WriteLine(String.Format("\t\tId:\t\t{0}", individualOrder.Id)); Console.WriteLine(String.Format("\t\tIsApi:\t\t{0}", individualOrder.IsApi)); Console.WriteLine(String.Format("\t\tMarket:\t\t{0}", individualOrder.Market)); Console.WriteLine(String.Format("\t\tRate:\t\t{0}", individualOrder.Rate)); Console.WriteLine(String.Format("\t\tRemaining:\t{0}", individualOrder.Remaining)); Console.WriteLine(String.Format("\t\tTimestamp:\t{0}", individualOrder.Timestamp)); Console.WriteLine(String.Format("\t\tTotal:\t\t{0}", individualOrder.Total)); Console.WriteLine(String.Format("\t\tType:\t\t{0}", individualOrder.Type)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "11": // SubmitOrder SubmitOrder submitOrder = new SubmitOrder(); try { submitOrder = tradeSatoshi.SubmitOrder("GRLC", TradingPair.BTC, OrderType.Sell, .5, .00002).Result; Console.WriteLine(@"\SubmitOrder"); Console.WriteLine(String.Format("\t\tOrderID:\t{0}", submitOrder.OrderId)); Console.WriteLine(String.Format("\t\tFilled:")); foreach (long fill in submitOrder.Filled) { Console.WriteLine(String.Format("\t\t\t{0}", fill)); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "12": // CancelOrder CancelOrder cancelOrder = new CancelOrder(); try { cancelOrder = tradeSatoshi.CancelOrder(CancelType.Market, null, "GRLC", TradingPair.BTC).Result; Console.WriteLine(@"\CancelOrder"); Console.WriteLine(String.Format("\t\tCancelledOrders:")); foreach (long cancelledOrder in cancelOrder.CanceledOrders) { Console.WriteLine(String.Format("\t\t\t{0}", cancelledOrder)); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "13": // GetTradeHistory Order[] tradeHistory = new Order[] { }; // TODO: Retest later.. server gives an error try { tradeHistory = tradeSatoshi.GetTradeHistory("GRLC", TradingPair.BTC, 10, 0).Result; Console.WriteLine(@"\GetTradeHistory"); Console.WriteLine(String.Format("\t\tCancelledOrders:")); foreach (Order trade in tradeHistory) { Console.WriteLine(String.Format("\t\tAmount:\t\t{0}", trade.Amount)); Console.WriteLine(String.Format("\t\tId:\t\t{0}", trade.Id)); Console.WriteLine(String.Format("\t\tIsApi:\t\t{0}", trade.IsApi)); Console.WriteLine(String.Format("\t\tMarket:\t\t{0}", trade.Market)); Console.WriteLine(String.Format("\t\tRate:\t\t{0}", trade.Rate)); Console.WriteLine(String.Format("\t\tRemaining:\t{0}", trade.Remaining)); Console.WriteLine(String.Format("\t\tTimestamp:\t{0}", trade.Timestamp)); Console.WriteLine(String.Format("\t\tTotal:\t\t{0}", trade.Total)); Console.WriteLine(String.Format("\t\tType:\t\t{0}", trade.Type)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "14": // GenerateAddress GenerateAddress generateAddress = new GenerateAddress(); try { generateAddress = tradeSatoshi.GenerateAddress("BCH").Result; Console.WriteLine(@"\GenerateAddress"); Console.WriteLine(String.Format("\t\tCurrency:\t{0}", generateAddress.Currency)); Console.WriteLine(String.Format("\t\tAddress:\t{0}", generateAddress.Address)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "15": // SubmitWithdraw SubmitWithdraw submitWithdraw = new SubmitWithdraw(); // TODO: Test try { submitWithdraw = tradeSatoshi.SubmitWithdraw("GRLC", "address", 10).Result; Console.WriteLine(@"\SubmitWithdraw"); Console.WriteLine(String.Format("\t\tWithdrawalId:\t{0}", submitWithdraw.WithdrawalId)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "16": // GetDeposits Deposit[] deposits = new Deposit[] { }; try { deposits = tradeSatoshi.GetDeposits("GRLC", 5).Result; Console.WriteLine(@"\GetDeposits"); foreach (Deposit deposit in deposits) { Console.WriteLine(String.Format("\t\tID:\t\t{0}", deposit.Id)); Console.WriteLine(String.Format("\t\tCurrency:\t{0}", deposit.Currency)); Console.WriteLine(String.Format("\t\tCurrencyLong:\t{0}", deposit.CurrencyLong)); Console.WriteLine(String.Format("\t\tAmount:\t\t{0}", deposit.Amount)); Console.WriteLine(String.Format("\t\tStatus:\t\t{0}", deposit.Status)); Console.WriteLine(String.Format("\t\tTxid:\t\t{0}", deposit.Txid)); Console.WriteLine(String.Format("\t\tConfirmations:\t{0}", deposit.Confirmations)); Console.WriteLine(String.Format("\t\tTimestamp:\t{0}", deposit.Timestamp)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } break; case "17": // GetWithdrawls Withdrawl[] withdrawls = new Withdrawl[] { }; // TODO: Test try { withdrawls = tradeSatoshi.GetWithdrawls("GRLC", 5).Result; Console.WriteLine(@"\GetWithdrawls"); foreach (Withdrawl withdrawl in withdrawls) { Console.WriteLine(String.Format("\t\tID:\t\t{0}", withdrawl.Id)); Console.WriteLine(String.Format("\t\tCurrency:\t{0}", withdrawl.Currency)); Console.WriteLine(String.Format("\t\tCurrencyLong:\t{0}", withdrawl.CurrencyLong)); Console.WriteLine(String.Format("\t\tAmount:\t\t{0}", withdrawl.Amount)); Console.WriteLine(String.Format("\t\tFee:\t\t{0}", withdrawl.Fee)); Console.WriteLine(String.Format("\t\tAddress:\t\t{0}", withdrawl.Address)); Console.WriteLine(String.Format("\t\tStatus:\t\t{0}", withdrawl.Status)); Console.WriteLine(String.Format("\t\tTxid:\t\t{0}", withdrawl.Txid)); Console.WriteLine(String.Format("\t\tConfirmations:\t{0}", withdrawl.Confirmations)); Console.WriteLine(String.Format("\t\tTimestamp:\t{0}", withdrawl.Timestamp)); Console.WriteLine(String.Format("\t\tIsApi:\t\t{0}", withdrawl.IsApi)); Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; case "18": // SubmitTransfer Transfer transfer = new Transfer(); try { transfer = tradeSatoshi.SubmitTransfer("GRLC", "username", 1).Result; Console.WriteLine(@"\SubmitTransfer"); Console.WriteLine(String.Format("\t\tData:\t\t{0}", transfer.Data)); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; // Internal API case "19": // GetTradePairChart // Needs a cloudflare bypass TradePairChart tradePairChart = new TradePairChart(); try { tradePairChart = tradeSatoshi.GetTradePairChart(2567).Result; foreach (double[] candle in tradePairChart.Candle) { Console.WriteLine(String.Format("Timestamp: {0}", candle[0])); Console.WriteLine(String.Format("Open: {0}", candle[1])); Console.WriteLine(String.Format("High: {0}", candle[2])); Console.WriteLine(String.Format("Low: {0}", candle[3])); Console.WriteLine(String.Format("Close: {0}", candle[4])); Console.WriteLine(); } foreach (double[] volume in tradePairChart.Volume) { Console.WriteLine(String.Format("Timestamp: {0}", volume[0])); Console.WriteLine(String.Format("Volume: {0}", volume[1])); Console.WriteLine(); } Console.WriteLine(String.Format("Low: {0}", tradePairChart.Low)); Console.WriteLine(String.Format("High: {0}", tradePairChart.High)); Console.WriteLine(String.Format("Last: {0}", tradePairChart.Last)); Console.WriteLine(); } catch (Exception e) { Console.WriteLine(e.Message); break; } Console.WriteLine(); break; } } }
public void TestCreateMarketHistoryWithVoidConstructor() { MarketHistory mh = new MarketHistory(new Dictionary <string, MarketData>()); }
public float AverageAsks() { return((float)MarketHistory.Sum(round => round.NumberOfAsks) / MarketHistory.Count()); }
public int SupplyThisRound() { return(MarketHistory[MarketHistory.Count() - 1].Supply); }
public int DemandThisRound() { return(MarketHistory[MarketHistory.Count() - 1].Demand); }
public int AsksThisRound() { return(MarketHistory[MarketHistory.Count() - 1].NumberOfAsks); }
public int BidsThisRound() { return(MarketHistory[MarketHistory.Count() - 1].NumberOfBids); }