public WeiTuoEventArgs(StockWeiTuo wt, DataChangeType dataChangeType) { // TODO: Complete member initialization this.wt = wt; this.done = false; this.dataChangeType = dataChangeType; }
public void Update(StockWeiTuo wt) { this.WTnbr = wt.WTnbr; this.Code = wt.Code; this.Name = wt.Name; this.Time = wt.Time; this.Price = wt.Price; this.Qty_deal = wt.Qty_deal; this.WeiTuo_Type = wt.WeiTuo_Type; this.Title1 = wt.Title1; this.Title2 = wt.Title2; this.Status = wt.Status; this.Qty_cancel = wt.Qty_cancel; this.Fee = wt.Fee; this.Price_deal = wt.Price_deal; }
public override void QueryWeiTuo(JObject jomsg) { JObject WeiTuoInfo = jomsg; JArray jorders = new JArray(); if (WeiTuoInfo.Property("data") != null) { jorders = (JArray)WeiTuoInfo["data"]; } List <StockWeiTuo> WeiTuoList = new List <StockWeiTuo>(); for (int i = 0; i < jorders.Count; i++) { JObject jorder = (JObject)jorders[i]; StockWeiTuo wt = new StockWeiTuo(); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); System.DateTime dt = startTime.AddMilliseconds((long)jorder["created_at"]); wt.Time = dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); wt.Code = jorder["symbol"].ToString(); wt.Name = wt.Code; wt.Price = System.Convert.ToDouble(jorders[i]["price"].ToString()); wt.Qty = System.Convert.ToDouble(jorders[i]["amount"].ToString()); wt.Qty_deal = System.Convert.ToDouble(jorders[i]["filled_amount"].ToString()); wt.Fee = -System.Convert.ToDouble(jorders[i]["fill_fees"].ToString()); if (wt.Qty_deal != 0) { wt.Price_deal = Math.Round(System.Convert.ToDouble(jorders[i]["executed_value"].ToString()) / wt.Qty_deal, 8, MidpointRounding.AwayFromZero); } else { wt.Price_deal = 0; } wt.CancelTime = ""; wt.WTnbr = jorders[i]["id"].ToString(); wt.WeiTuo_Type = string.Format("{0}-{1}", jorders[i]["side"].ToString(), jorders[i]["type"].ToString()); string status = jorder["state"].ToString(); switch (status) { case "submitted": wt.Status = TradeOrderStatus.Open; break; case "partial_filled": wt.Status = TradeOrderStatus.Part_Filled; break; case "filled": wt.Status = TradeOrderStatus.Filled; break; case "canceled": wt.Status = TradeOrderStatus.Cancelled; break; case "partial_canceled": wt.Status = TradeOrderStatus.Cancelled; break; case "pending_cancel": wt.Status = TradeOrderStatus.Canceling; break; default: wt.Status = TradeOrderStatus.UnKnow; break; } string[] sendtype = wt.WeiTuo_Type.Split(new char[] { '-' }); if (sendtype[0] == "buy") { wt.Fee = wt.Fee * wt.Price_deal; wt.Title1 = "0"; wt.Title2 = "买入"; } else { wt.Title1 = "1"; wt.Title2 = "卖出"; } if (wt.Status == TradeOrderStatus.Cancelled) { wt.Qty_cancel = wt.Qty - wt.Qty_deal; } else { wt.Qty_cancel = 0; } WeiTuoList.Add(wt); } RaiseWeiTuo(WeiTuoList); }
public override void QueryWeiTuo(JObject jomsg) { JObject WeiTuoInfo = jomsg; JObject jorder = null; if (WeiTuoInfo.Property("data") != null) { jorder = (JObject)WeiTuoInfo["data"]; } if (jorder != null) { List <StockWeiTuo> WeiTuoList = new List <StockWeiTuo>(); StockWeiTuo wt = new StockWeiTuo(); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); System.DateTime dt = startTime.AddMilliseconds((long)jorder["created-at"]); wt.Time = dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); wt.Code = jorder["symbol"].ToString(); wt.Name = wt.Code; wt.Price = System.Convert.ToDouble(jorder["order-price"].ToString()); wt.Qty = System.Convert.ToDouble(jorder["order-amount"].ToString()); wt.Qty_deal = System.Convert.ToDouble(jorder["filled-amount"].ToString()); wt.Fee = -System.Convert.ToDouble(jorder["filled-fees"].ToString()); wt.Price_deal = System.Convert.ToDouble(jorder["price"].ToString()); wt.CancelTime = ""; wt.WTnbr = jorder["order-id"].ToString(); wt.WeiTuo_Type = jorder["order-type"].ToString(); string status = jorder["order-state"].ToString(); switch (status) { case "submitted": wt.Status = TradeOrderStatus.Open; break; case "partial-filled": wt.Status = TradeOrderStatus.Part_Filled; break; case "filled": wt.Status = TradeOrderStatus.Filled; break; case "canceled": wt.Status = TradeOrderStatus.Cancelled; break; case "partial-canceled": wt.Status = TradeOrderStatus.Cancelled; break; default: wt.Status = TradeOrderStatus.UnKnow; break; } string[] sendtype = wt.WeiTuo_Type.Split(new char[] { '-' }); if (sendtype[0] == "buy") { wt.Fee = wt.Fee * wt.Price_deal; wt.Title1 = "0"; wt.Title2 = "买入"; } else { wt.Title1 = "1"; wt.Title2 = "卖出"; } if (wt.Status == TradeOrderStatus.Cancelled) { wt.Qty_cancel = wt.Qty - wt.Qty_deal; } else { wt.Qty_cancel = 0; } WeiTuoList.Add(wt); RaiseWeiTuo(WeiTuoList); } }