public Dictionary <string, TraderBuySaleEntity> GetShareGroupBuySaleList(string StockID) { var dict = new Dictionary <string, TraderBuySaleEntity>(); var users = GroupTraderList.Select(_ => _.TraderAccount).ToList(); var wtList = Program.db.已发委托.Where(r => r.日期 == DateTime.Today && users.Contains(r.交易员) && r.证券代码 == StockID); JyDataSet.委托DataTable interFaceData = null; if (Program.帐户委托DataTable.ContainsKey(this.GroupName)) { interFaceData = Program.帐户委托DataTable[GroupName]; } foreach (var 已发委托Row1 in wtList) { JyDataSet.委托Row interfaceItem = null; if (interFaceData != null) { interFaceData.FirstOrDefault(_ => _.委托编号 == 已发委托Row1.委托编号); } if (!dict.ContainsKey(已发委托Row1.交易员)) { dict.Add(已发委托Row1.交易员, new TraderBuySaleEntity() { TraderID = 已发委托Row1.交易员, StockID = StockID }); } decimal cancelCount = interfaceItem == null ? 已发委托Row1.撤单数量 : interfaceItem.撤单数量; if (已发委托Row1.买卖方向 % 2 == 0) { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { dict[已发委托Row1.交易员].BuyCount += 已发委托Row1.成交数量; } else { dict[已发委托Row1.交易员].BuyCount += 已发委托Row1.委托数量 - cancelCount; } } else { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { dict[已发委托Row1.交易员].SoldCount += 已发委托Row1.成交数量; } else { dict[已发委托Row1.交易员].SoldCount += 已发委托Row1.委托数量 - cancelCount; } } } return(dict); }
public void GetShareGroupHasBuyCount(string 证券代码, out decimal 已买股数, out decimal 已卖股数) { 已买股数 = 0; 已卖股数 = 0; if (GroupTraderList != null && GroupTraderList.Count > 0) { var users = GroupTraderList.Select(_ => _.TraderAccount).ToList(); var wtList = Program.db.已发委托.Where(r => r.日期 == DateTime.Today && users.Contains(r.交易员) && r.证券代码 == 证券代码); JyDataSet.委托DataTable interFaceData = null; if (Program.帐户委托DataTable.ContainsKey(this.GroupName)) { interFaceData = Program.帐户委托DataTable[GroupName]; } foreach (var 已发委托Row1 in wtList) { JyDataSet.委托Row interfaceItem = null; if (interFaceData != null) { interfaceItem = interFaceData.FirstOrDefault(_ => _.委托编号 == 已发委托Row1.委托编号); } decimal cancelCount = interfaceItem == null ? 已发委托Row1.撤单数量 : interfaceItem.撤单数量; if (已发委托Row1.买卖方向 % 2 == 0) { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { 已买股数 += 已发委托Row1.成交数量; } else { 已买股数 += 已发委托Row1.委托数量 - cancelCount; } } else { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { 已卖股数 += 已发委托Row1.成交数量; } else { 已卖股数 += 已发委托Row1.委托数量 - cancelCount; } } } } }
public void GetShareGroupHasBuyCount(string 证券代码, string trader, List <string> lstSendedOrderID, out decimal 已买股数, out decimal 已卖股数, out decimal traderBuy, out decimal traderSale) { 已买股数 = 0; 已卖股数 = 0; traderBuy = 0; traderSale = 0; if (GroupTraderList != null && GroupTraderList.Count > 0) { var stockItem = GroupStockList.Where(_ => _.StockID == 证券代码).First(); var users = GroupTraderList.Select(_ => _.TraderAccount).ToList(); JyDataSet.委托DataTable interFaceData = null; if (Program.帐户委托DataTable.ContainsKey(stockItem.GroupAccount)) { interFaceData = Program.帐户委托DataTable[stockItem.GroupAccount]; } var wtList = Program.db.已发委托.Where(r => r.日期 == DateTime.Today && users.Contains(r.交易员) && r.证券代码 == 证券代码); foreach (var 已发委托Row1 in wtList) { JyDataSet.委托Row interfaceItem = null; if (interFaceData != null) { interfaceItem = interFaceData.FirstOrDefault(_ => _.委托编号 == 已发委托Row1.委托编号); } decimal cancelCount = interfaceItem == null ? 已发委托Row1.撤单数量 : interfaceItem.撤单数量; if (已发委托Row1.买卖方向 % 2 == 0) { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { 已买股数 += 已发委托Row1.成交数量; if (已发委托Row1.交易员 == trader) { traderBuy += 已发委托Row1.成交数量; } } else { 已买股数 += 已发委托Row1.委托数量 - cancelCount; if (已发委托Row1.交易员 == trader) { traderBuy += 已发委托Row1.委托数量 - cancelCount; } } } else { if (已发委托Row1.成交数量 > 0 && 已发委托Row1.成交数量 < 已发委托Row1.委托数量 && 已发委托Row1.撤单数量 == 已发委托Row1.成交数量) { 已卖股数 += 已发委托Row1.成交数量; if (已发委托Row1.交易员 == trader) { traderSale += 已发委托Row1.成交数量; } } else { 已卖股数 += 已发委托Row1.委托数量 - cancelCount; if (已发委托Row1.交易员 == trader) { traderSale += 已发委托Row1.委托数量 - cancelCount; } } } lstSendedOrderID.Add(已发委托Row1.委托编号); } } }