public void Initialize() { depth = new MtGoxDepthInfo(); tradeListInFiveMin = new List<MtGoxTrade>(); tradeListInOneMin = new List<MtGoxTrade>(); ticker = new MtGoxTickerItem(); for (int i = 0; i < 100; i++) { MtGoxAsk a = new MtGoxAsk(); a.amount = i + 1; a.price = i + 1; depth.asks.Add(a); MtGoxBid b = new MtGoxBid(); b.amount = i + 1; b.price = i + 1; depth.bids.Add(b); MtGoxTrade t = new MtGoxTrade(); t.amount = i + 1; t.price = i + 1; tradeListInFiveMin.Add(t); tradeListInOneMin.Add(t); } ticker.last = 5; }
public static MtGoxDepthInfo getObjects(string jsonDataStr) { MtGoxDepthInfo depthInfo = new MtGoxDepthInfo(); string json = jsonDataStr; var serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new[] { new DynamicJsonConverter() }); dynamic obj = serializer.Deserialize(json, typeof(object)); double itemPrice = 0, itemAmount = 0, lastPrice = 0, amount = 0, btcCount = 0, fundCount = 0; int itemNO = 0; for (int i = 0; i < obj.asks.Count; i++) { MtGoxAsk aa = new MtGoxAsk(); aa.price = double.Parse(obj.asks[i][0].ToString()); aa.amount = double.Parse(obj.asks[i][1].ToString()); depthInfo.asks.Add(aa); itemPrice = aa.price; itemAmount = aa.amount; itemPrice = Math.Round(itemPrice, 2); if ( i == 0 || Math.Abs(lastPrice - itemPrice) < epsilon) { amount += itemAmount; itemNO++; btcCount += itemAmount; fundCount += itemPrice * itemAmount; } else { DepthInfoItem a = new DepthInfoItem(); a.Price = lastPrice; a.ItemNO = itemNO; a.FundCount = fundCount; a.BtcCount = btcCount; a.Amount = amount; depthInfo.askGroup.Add(a); itemNO = 0; amount = 0; } lastPrice = itemPrice; if (i > 1500) break; } itemPrice = 0; itemAmount = 0; lastPrice = 0; amount = 0; btcCount = 0; fundCount = 0; itemNO = 0; for (int i = obj.bids.Count - 1, j = 0; i >= 0; i--, j++) { MtGoxBid bb = new MtGoxBid(); bb.price = double.Parse(obj.bids[i][0].ToString()); bb.amount = double.Parse(obj.bids[i][1].ToString()); depthInfo.bids.Add(bb); itemPrice = bb.price; itemAmount = bb.amount; itemPrice = Math.Round(itemPrice, 2); if (i == obj.bids.Count - 1 || Math.Abs(lastPrice - itemPrice) < epsilon) { amount += itemAmount; itemNO++; btcCount += itemAmount; fundCount += itemPrice * itemAmount; } else { DepthInfoItem a = new DepthInfoItem(); a.Price = lastPrice; a.ItemNO = itemNO; a.FundCount = fundCount; a.BtcCount = btcCount; a.Amount = amount; depthInfo.bidGroup.Add(a); itemNO = 0; amount = 0; } lastPrice = itemPrice; if (j > 1500) break; } return depthInfo; }
public static MtGoxDepthInfo getObjects(string jsonDataStr) { MtGoxDepthInfo depthInfo = new MtGoxDepthInfo(); string json = jsonDataStr; var serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new[] { new DynamicJsonConverter() }); dynamic obj = serializer.Deserialize(json, typeof(object)); double itemPrice = 0, itemAmount = 0, lastPrice = 0, amount = 0, btcCount = 0, fundCount = 0; int itemNO = 0; for (int i = 0; i < obj.asks.Count; i++) { MtGoxAsk aa = new MtGoxAsk(); aa.price = double.Parse(obj.asks[i][0].ToString()); aa.amount = double.Parse(obj.asks[i][1].ToString()); depthInfo.asks.Add(aa); itemPrice = aa.price; itemAmount = aa.amount; itemPrice = Math.Round(itemPrice, 2); if (i == 0 || Math.Abs(lastPrice - itemPrice) < epsilon) { amount += itemAmount; itemNO++; btcCount += itemAmount; fundCount += itemPrice * itemAmount; } else { DepthInfoItem a = new DepthInfoItem(); a.Price = lastPrice; a.ItemNO = itemNO; a.FundCount = fundCount; a.BtcCount = btcCount; a.Amount = amount; depthInfo.askGroup.Add(a); itemNO = 0; amount = 0; } lastPrice = itemPrice; if (i > 1500) { break; } } itemPrice = 0; itemAmount = 0; lastPrice = 0; amount = 0; btcCount = 0; fundCount = 0; itemNO = 0; for (int i = obj.bids.Count - 1, j = 0; i >= 0; i--, j++) { MtGoxBid bb = new MtGoxBid(); bb.price = double.Parse(obj.bids[i][0].ToString()); bb.amount = double.Parse(obj.bids[i][1].ToString()); depthInfo.bids.Add(bb); itemPrice = bb.price; itemAmount = bb.amount; itemPrice = Math.Round(itemPrice, 2); if (i == obj.bids.Count - 1 || Math.Abs(lastPrice - itemPrice) < epsilon) { amount += itemAmount; itemNO++; btcCount += itemAmount; fundCount += itemPrice * itemAmount; } else { DepthInfoItem a = new DepthInfoItem(); a.Price = lastPrice; a.ItemNO = itemNO; a.FundCount = fundCount; a.BtcCount = btcCount; a.Amount = amount; depthInfo.bidGroup.Add(a); itemNO = 0; amount = 0; } lastPrice = itemPrice; if (j > 1500) { break; } } return(depthInfo); }