static void UpdateStockPrices() { stockPrices = wallstreetClient.GetOverallMarketInformation(); orders = wallstreetClient.GetOverallOrders(); for (int i = 0; i < stockPrices.Length; i++) { ShareInformation oldPrice = stockPrices[i]; long pendingBuyOrders = PendingOrders(oldPrice.FirmName, OrderType.BUY); long pendingSellOrders = PendingOrders(oldPrice.FirmName, OrderType.SELL); double x = ComputeNewPrice(oldPrice.PricePerShare, pendingBuyOrders, pendingSellOrders); ShareInformation newPrice = new ShareInformation() { ExchangeName = oldPrice.ExchangeName, FirmName = oldPrice.FirmName, NoOfShares = oldPrice.NoOfShares, IsFund = oldPrice.IsFund, PricePerShare = x }; Console.WriteLine("Update {0} from {1} to {2}.", newPrice.FirmName, oldPrice.PricePerShare, newPrice.PricePerShare); stockPrices[i] = newPrice; } RandomlyUpdateASingleStock(); for (int i = 0; i < stockPrices.Length; i++) { wallstreetClient.PutShareInformation(stockPrices[i], stockPrices[i].ExchangeName); } }