Ejemplo n.º 1
0
        public void SelectionChangedExecuteChanged()
        {
            int MaxNum = 0;

            if (CFSMVMList.Count > 0)
            {
                MaxNum = _AllNum - CFSMVMList.Where(x => x.StoplossPrice > 0 || x.StopprofitPrice > 0).ToList().Sum(s => s.OrderVolume);
                if (SelectedItem != null)
                {
                    if (SelectedItem.StoplossPrice > 0 || SelectedItem.StopprofitPrice > 0)
                    {
                        SelectedItem.MaxNum = MaxNum + SelectedItem.OrderVolume;
                    }
                    else
                    {
                        SelectedItem.MaxNum = MaxNum;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void NumChangedExecuteChanged()
        {
            int countNum = 0;
            int count    = 0;//表示止损或止盈价已经设置了

            foreach (CheckFullStopModelViewModel item in CFSMVMList)
            {
                if (item.StoplossPrice > 0 || item.StopprofitPrice > 0)
                {
                    count++;
                }
                countNum += item.OrderVolume;
            }
            if (countNum < _AllNum && CFSMVMList.Count - count <= 1)
            {
                CheckFullStopModel cfsm = new CheckFullStopModel();
                cfsm.contract_code = _PositionModelViewModel.ContractCode;
                cfsm.contract_id   = _PositionModelViewModel.ContractId;
                cfsm.create_date   = DateTime.Now.ToString("yyyy-MM-dd");
                cfsm.create_time   = DateTime.Now.ToString("HH:mm:ss");
                cfsm.user_id       = UserInfoHelper.UserId;
                cfsm.order_volume  = _AllNum - countNum;
                cfsm.resource      = (int)OperatorTradeType.OPERATOR_TRADE_PC;
                CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);
                if (SelectedItem.OrderVolume == 0)
                {
                    CFSMVMList.Remove(SelectedItem);
                }
                cfsvm.Increment = Increment;
                cfsvm.Precision = length;
                CFSMVMList.Add(cfsvm);
            }
            else if (countNum < _AllNum && CFSMVMList.Count - count >= 2)
            {
                int tempcount = CFSMVMList.Sum(x => x.OrderVolume);
                foreach (CheckFullStopModelViewModel item in CFSMVMList)
                {
                    if (item.StoplossPrice == 0 && item.StopprofitPrice == 0 && (item.CreateDate + item.CreateTime) != (SelectedItem.CreateDate + SelectedItem.CreateTime))
                    {
                        item.OrderVolume = _AllNum - tempcount + item.OrderVolume;
                        if (item.OrderVolume == 0)
                        {
                            CFSMVMList.Remove(item);
                        }
                        break;
                    }
                }
                if (SelectedItem.OrderVolume == 0)
                {
                    CFSMVMList.Remove(SelectedItem);
                }
            }
            else if (countNum > _AllNum && count <= CFSMVMList.Count - 1)
            {
                List <CheckFullStopModelViewModel> CFSMVMListtemp = CFSMVMList.Where(x => x.StoplossPrice == 0 && x.StopprofitPrice == 0).ToList();
                int num = CFSMVMList.Where(x => x.StoplossPrice > 0 || x.StopprofitPrice > 0).Sum(o => o.OrderVolume);
                if (CFSMVMListtemp.Count > 1)
                {
                    if (CFSMVMListtemp[0] == SelectedItem)
                    {
                        CFSMVMListtemp[1].OrderVolume = _AllNum - SelectedItem.OrderVolume - num;
                        if (CFSMVMListtemp[1].OrderVolume == 0)
                        {
                            CFSMVMListtemp.Remove(CFSMVMListtemp[1]);
                        }
                    }
                    else if (CFSMVMListtemp[1] == SelectedItem)
                    {
                        CFSMVMListtemp[0].OrderVolume = _AllNum - SelectedItem.OrderVolume - num;
                        if (CFSMVMListtemp[0].OrderVolume == 0)
                        {
                            CFSMVMListtemp.Remove(CFSMVMListtemp[0]);
                        }
                    }
                }
                else if (CFSMVMListtemp.Count == 1)
                {
                    if (CFSMVMListtemp[0] == SelectedItem)
                    {
                        CFSMVMListtemp[1].OrderVolume = _AllNum - SelectedItem.OrderVolume - num;
                        if (CFSMVMListtemp[1].OrderVolume == 0)
                        {
                            CFSMVMListtemp.Remove(CFSMVMListtemp[1]);
                        }
                    }
                    else
                    {
                        CFSMVMListtemp[0].OrderVolume = _AllNum - num;
                        if (CFSMVMListtemp[0].OrderVolume == 0)

                        {
                            CFSMVMListtemp.Remove(CFSMVMListtemp[0]);
                        }
                    }
                }
                foreach (CheckFullStopModelViewModel item in CFSMVMList)
                {
                    if (item.OrderVolume == 0)
                    {
                        CFSMVMList.Remove(item);
                        break;
                    }
                }
            }
        }