Пример #1
0
        public void OneExecuteChanged()
        {
            IsAuto = false;
            IsOne  = true;
            int countNum = 0;//表示已经设置过了价格的数量
            List <CheckFullStopModelViewModel> temps = CFSMVMList.ToList();

            CFSMVMList.Clear();
            foreach (CheckFullStopModelViewModel item in temps)
            {
                if (item.StoplossPrice > 0 || item.StopprofitPrice > 0)
                {
                    countNum += item.OrderVolume;
                    CFSMVMList.Add(item);
                }
            }
            int shengcount = _AllNum - countNum;

            while (shengcount > 0)
            {
                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  = 1;
                cfsm.resource      = (int)OperatorTradeType.OPERATOR_TRADE_PC;
                CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);
                cfsvm.Increment = Increment;
                cfsvm.Precision = length;
                CFSMVMList.Add(cfsvm);
                shengcount--;
            }
        }
Пример #2
0
        public void DeleteExecuteChanged()
        {
            CFSMVMList.Clear();
            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;
            cfsm.resource      = (int)OperatorTradeType.OPERATOR_TRADE_PC;
            CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);

            CFSMVMList.Add(cfsvm);
        }
Пример #3
0
        internal void AddData()
        {
            if (CFSMVMList.Count == 0)
            {
                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  = _PositionModelViewModel.PositionVolume;
                cfsm.resource      = (int)OperatorTradeType.OPERATOR_TRADE_PC;
                CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);
                cfsvm.MaxNum = _AllNum;

                cfsvm.Increment = Increment;
                cfsvm.Precision = length;
                CFSMVMList.Add(cfsvm);
            }
            else
            {
                int num = _AllNum - CFSMVMList.Sum(s => s.OrderVolume);
                if (num > 0)
                {
                    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  = num;
                    cfsm.resource      = (int)OperatorTradeType.OPERATOR_TRADE_PC;
                    CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);
                    cfsvm.MaxNum    = _AllNum;
                    cfsvm.Precision = length;
                    cfsvm.Increment = Increment;

                    CFSMVMList.Add(cfsvm);
                }
            }
        }
Пример #4
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;
                    }
                }
            }
        }
Пример #5
0
        private CheckFullStopViewModel(PotionDetailModelViewModel pmvm)
        {
            _PositionModelViewModel = pmvm;
            ContractCode            = pmvm.ContractCode;
            _AllNum   = _PositionModelViewModel.PositionVolume;
            Direction = pmvm.Direction == "B" ? " (买入,投机) " : " (卖出,投机) ";


            VarietyModel vm = null;

            string[] values = pmvm.ContractCode.Split(' ');
            if (values.Length != 3)
            {
                return;
            }
            string varietie = values[1];

            if (ContractVariety.Varieties.ContainsKey(varietie))
            {
                vm = ContractVariety.Varieties[varietie];
            }
            if (vm == null)
            {
                return;
            }
            Increment = vm.tick_size;
            length    = vm.precision;
            ////发送命令
            //ReqPotion rp = new ReqPotion();
            //rp.cmdcode = RequestCmdCode.SelectStopLoss;
            //rp.content = new ReqLoginName() { user_id = UserInfoHelper.UserId };
            //ScoketManager.GetInstance().SendTradeWSInfo(JsonConvert.SerializeObject(rp));
            if (ContractVariety.CFSmvmList.ContainsKey(_PositionModelViewModel.ContractId + _PositionModelViewModel.Direction))
            {
                foreach (var item in ContractVariety.CFSmvmList[_PositionModelViewModel.ContractId + _PositionModelViewModel.Direction])
                {
                    item.Increment = Increment;
                    item.Precision = length;
                    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    = _PositionModelViewModel.PositionVolume;
                    cfsm.resource        = (int)OperatorTradeType.OPERATOR_TRADE_PC;
                    cfsm.direction       = item.Direction;
                    cfsm.float_loss      = item.FloatLoss;
                    cfsm.float_loss_flag = item.FloatLossFlag;
                    cfsm.open_offset     = item.OpenOffset;
                    cfsm.order_volume    = item.OrderVolume;

                    CheckFullStopModelViewModel cfsvm = new CheckFullStopModelViewModel(cfsm);
                    cfsvm.Increment        = item.Increment;
                    cfsvm.Precision        = item.Precision;
                    cfsvm.Direction        = item.Direction;
                    cfsvm.MaxNum           = item.MaxNum;
                    cfsvm.StopprofitPrice  = item.StopprofitPrice;
                    cfsvm.StoplossId       = item.StoplossId;
                    cfsvm.TrrigerCondition = item.TrrigerCondition;
                    cfsvm.TrrigerPrice     = item.TrrigerPrice;
                    cfsvm.FloatLoss        = item.FloatLoss;
                    cfsvm.StoplossPrice    = item.StoplossPrice;
                    cfsvm.CreateDate       = item.CreateDate;
                    cfsvm.OrderVolume      = item.OrderVolume;
                    CFSMVMList.Add(cfsvm);
                }
            }
            if (CFSMVMList.Count > 0)
            {
                IsHaveData = true;
            }
            AddData();
        }