private bool UpdateToTodayBuyList(int index, bool IsInsert, StackTradeUnit buyUnit)
        {
            lock (_lock)
            {
                this.DailyInfo.DelegateBuyStoneSum += buyUnit.TradeStoneHandCount;

                if (IsInsert)
                {
                    BuyOrderPriceCountList.Insert(index, new StackTradeUnit()
                    {
                        Price = buyUnit.Price,
                        TradeStoneHandCount = buyUnit.TradeStoneHandCount
                    });
                }
                else
                {
                    if (BuyOrderPriceCountList[index] == null)
                    {
                        BuyOrderPriceCountList[index] = new StackTradeUnit()
                        {
                            Price = buyUnit.Price,
                            TradeStoneHandCount = buyUnit.TradeStoneHandCount
                        };
                    }
                    else
                    {
                        BuyOrderPriceCountList[index].TradeStoneHandCount += buyUnit.TradeStoneHandCount;
                    }
                }
            }
            return(true);
        }
        private bool UpdateToTodaySellList(int index, bool IsInsert, StackTradeUnit sellUnit)
        {
            lock (_lock)
            {
                this.DailyInfo.DelegateSellStoneSum += sellUnit.TradeStoneHandCount;

                if (IsInsert)
                {
                    SellOrderPriceCountList.Insert(index, new StackTradeUnit()
                    {
                        Price = sellUnit.Price,
                        TradeStoneHandCount = sellUnit.TradeStoneHandCount
                    });
                }
                else
                {
                    if (SellOrderPriceCountList[index] == null)
                    {
                        SellOrderPriceCountList[index] = new StackTradeUnit()
                        {
                            Price = sellUnit.Price,
                            TradeStoneHandCount = sellUnit.TradeStoneHandCount
                        };
                    }
                    else
                    {
                        SellOrderPriceCountList[index].TradeStoneHandCount += sellUnit.TradeStoneHandCount;
                    }
                }
            }
            return(true);
        }
        public OperResultObject DeleteBuyUnit(StackTradeUnit buyUnit)
        {
            OperResultObject result = new OperResultObject();

            lock (_lock)
            {
                for (int i = 0; i < this.BuyOrderPriceCountList.Count; i++)
                {
                    var priceUnit = this.BuyOrderPriceCountList[i];
                    if (priceUnit != null)
                    {
                        if (priceUnit.Price == buyUnit.Price)
                        {
                            if (priceUnit.TradeStoneHandCount < buyUnit.TradeStoneHandCount)
                            {
                                result.OperResultCode = OperResult.RESULTCODE_STACK_CANCELORDER_FAILED_TOTALHANDCOUNTERROR;
                            }
                            else
                            {
                                priceUnit.TradeStoneHandCount -= buyUnit.TradeStoneHandCount;
                                result.OperResultCode          = OperResult.RESULTCODE_TRUE;
                            }

                            if (priceUnit.TradeStoneHandCount == 0)
                            {
                                this.BuyOrderPriceCountList.RemoveAt(i);
                            }
                            break;
                        }
                    }
                }
            }

            return(result);
        }
        public int InsertBuyUnit(StackTradeUnit buyUnit)
        {
            bool isInsert = false;
            int  index    = CheckinBuyListIndex(buyUnit.Price, out isInsert);

            if (index >= 0)
            {
                UpdateToTodayBuyList(index, isInsert, buyUnit);
            }

            return(index);
        }
        public int InsertSellUnit(StackTradeUnit sellUnit)
        {
            bool isInsert = false;
            int  index    = CheckinSellListIndex(sellUnit.Price, out isInsert);

            if (index >= 0)
            {
                UpdateToTodaySellList(index, isInsert, sellUnit);
            }

            return(index);
        }