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--; } }
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); }
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); } } }
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; } } } }
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(); }