Пример #1
0
        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);
        }
Пример #2
0
        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;
                        }
                    }
                }
            }
        }
Пример #3
0
        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.委托编号);
                }
            }
        }