private void Refresh业绩() { Task.Run(() => { AASClient.AASServiceReference.JyDataSet.业绩统计DataTable 业绩统计DataTable1 = this.Generate业绩统计(); Tool.RefreshDrcjDataTable(Program.jyDataSet.业绩统计, 业绩统计DataTable1, new string[] { "证券代码" }); }); }
private void RefreshOrder(ProgressChangedEventArgs e) { AASClient.AASServiceReference.JyDataSet.委托DataTable 委托DataTable1 = e.UserState as AASClient.AASServiceReference.JyDataSet.委托DataTable; if (委托DataTable1 == null) { Program.logger.LogRunning("委托更新错误,委托列表为空,不能执行更新!"); return; } //List<string> lstID = new List<string>(); Dictionary <string, List <string> > dictOrder = new Dictionary <string, List <string> >(); var newDt = 委托DataTable1.Copy(); newDt.Clear(); for (int i = 0; i < 委托DataTable1.Rows.Count; i++) { var row = 委托DataTable1.Rows[i]; var orderID = row["委托编号"] as string; var groupID = row["组合号"] as string; if (dictOrder.ContainsKey(groupID) && dictOrder[groupID].Contains(orderID)) { continue; } else { if (dictOrder.ContainsKey(groupID)) { dictOrder[groupID].Add(orderID); } else { dictOrder.Add(groupID, new List <string>() { orderID }); } } newDt.ImportRow(row); } Tool.RefreshDrcjDataTable(Program.jyDataSet.委托, newDt, new string[] { "组合号", "委托编号" }); AASClient.AASServiceReference.JyDataSet.业绩统计DataTable 业绩统计DataTable1 = this.Generate业绩统计(); Tool.RefreshDrcjDataTable(Program.jyDataSet.业绩统计, 业绩统计DataTable1, new string[] { "证券代码" }); }
public AASClient.AASServiceReference.JyDataSet.业绩统计DataTable Generate业绩统计() { AASClient.AASServiceReference.JyDataSet.业绩统计DataTable 业绩统计DataTable1 = new AASClient.AASServiceReference.JyDataSet.业绩统计DataTable(); EnumerableRowCollection wtTraded = Program.jyDataSet.委托.Where(r => r.成交数量 > 0); foreach (JyDataSet.委托Row 委托Row1 in wtTraded) { decimal 交易费用 = 委托Row1.Get交易费用(); if (!业绩统计DataTable1.Any(r => r.证券代码 == 委托Row1.证券代码)) { #region 生成业绩统计Row AASClient.AASServiceReference.JyDataSet.业绩统计Row 业绩统计RowNew = 业绩统计DataTable1.New业绩统计Row(); 业绩统计RowNew.交易员 = 委托Row1.交易员; 业绩统计RowNew.组合号 = 委托Row1.组合号; 业绩统计RowNew.证券代码 = 委托Row1.证券代码; 业绩统计RowNew.证券名称 = 委托Row1.证券名称; if (委托Row1.买卖方向 == 0) { #region 买单 业绩统计RowNew.买入数量 = 委托Row1.成交数量; 业绩统计RowNew.买入金额 = 委托Row1.成交价格 * 委托Row1.成交数量; 业绩统计RowNew.买入均价 = 委托Row1.成交价格; 业绩统计RowNew.卖出数量 = 0; 业绩统计RowNew.卖出金额 = 0; 业绩统计RowNew.卖出均价 = 0; #endregion } else { #region 卖单 业绩统计RowNew.买入数量 = 0; 业绩统计RowNew.买入金额 = 0; 业绩统计RowNew.买入均价 = 0; 业绩统计RowNew.卖出数量 = 委托Row1.成交数量; 业绩统计RowNew.卖出金额 = 委托Row1.成交价格 * 委托Row1.成交数量; 业绩统计RowNew.卖出均价 = 委托Row1.成交价格; #endregion } 业绩统计RowNew.毛利 = 0; 业绩统计RowNew.交易费用 = 交易费用; 业绩统计RowNew.净利润 = 业绩统计RowNew.毛利 - 业绩统计RowNew.交易费用; 业绩统计DataTable1.Add业绩统计Row(业绩统计RowNew); #endregion } else { #region 修改业绩统计Row AASClient.AASServiceReference.JyDataSet.业绩统计Row 业绩统计Row1 = 业绩统计DataTable1.First(r => r.证券代码 == 委托Row1.证券代码); if (委托Row1.买卖方向 == 0) { #region 买单 业绩统计Row1.买入数量 += 委托Row1.成交数量; 业绩统计Row1.买入金额 += 委托Row1.成交价格 * 委托Row1.成交数量; 业绩统计Row1.买入均价 = Math.Round(业绩统计Row1.买入金额 / 业绩统计Row1.买入数量, 3, MidpointRounding.AwayFromZero); #endregion } else { #region 卖单 业绩统计Row1.卖出数量 += 委托Row1.成交数量; 业绩统计Row1.卖出金额 += 委托Row1.成交价格 * 委托Row1.成交数量; 业绩统计Row1.卖出均价 = Math.Round(业绩统计Row1.卖出金额 / 业绩统计Row1.卖出数量, 3, MidpointRounding.AwayFromZero); #endregion } 业绩统计Row1.毛利 += 0; 业绩统计Row1.交易费用 += 交易费用; 业绩统计Row1.净利润 = 业绩统计Row1.毛利 - 业绩统计Row1.交易费用; #endregion } } foreach (AASClient.AASServiceReference.JyDataSet.业绩统计Row 业绩统计Row1 in 业绩统计DataTable1) { if (Program.serverDb.已平仓订单.Any(r => r.证券代码 == 业绩统计Row1.证券代码)) { 业绩统计Row1.毛利 = Program.serverDb.已平仓订单.Where(r => r.证券代码 == 业绩统计Row1.证券代码).Sum(r => r.毛利); 业绩统计Row1.净利润 = 业绩统计Row1.毛利 - 业绩统计Row1.交易费用; } } return(业绩统计DataTable1); }
private void backgroundWorker报价_ProgressChanged(object sender, ProgressChangedEventArgs e) { switch (e.ProgressPercentage) { case 0: this.toolStripStatusLabel时间.Text = DateTime.Now.ToString("HH:mm:ss"); break; case 1: AASClient.AASServiceReference.DbDataSet.平台用户DataTable 平台用户DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.平台用户DataTable; Tool.RefreshDrcjDataTable(Program.serverDb.平台用户, 平台用户DataTable1, new string[] { "用户名" }); Program.Current平台用户 = Program.serverDb.平台用户.First(r => r.用户名 == Program.Current平台用户.用户名); break; case 2: AASClient.AASServiceReference.DbDataSet.额度分配DataTable TradeLimitDataTable = e.UserState as AASClient.AASServiceReference.DbDataSet.额度分配DataTable; Tool.RefreshDrcjDataTable(Program.serverDb.额度分配, TradeLimitDataTable, new string[] { "证券代码" }); foreach (HqForm HqForm1 in this.hqForm) { HqForm1.comboBox代码.AutoCompleteCustomSource.Clear(); foreach (AASClient.AASServiceReference.DbDataSet.额度分配Row 交易额度Row1 in Program.serverDb.额度分配) { HqForm1.comboBox代码.AutoCompleteCustomSource.Add(string.Format("{0}", 交易额度Row1.证券代码)); } } break; case 3: break; case 4: AASClient.AASServiceReference.JyDataSet.成交DataTable 成交DataTable1 = e.UserState as AASClient.AASServiceReference.JyDataSet.成交DataTable; Tool.RefreshDrcjDataTable(Program.jyDataSet.成交, 成交DataTable1, new string[] { "组合号", "委托编号", "成交编号" }); break; case 5: RefreshOrder(e); break; case 6: AASClient.AASServiceReference.DbDataSet.订单DataTable 订单DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.订单DataTable; foreach (AASClient.AASServiceReference.DbDataSet.订单Row 订单Row1 in 订单DataTable1) { if (Program.HqDataTable.ContainsKey(订单Row1.证券代码)) { DataTable DataTable1 = Program.HqDataTable[订单Row1.证券代码]; DataRow DataRow1 = DataTable1.Rows[0]; decimal XJ = decimal.Parse((DataRow1["现价"] as string)); decimal ZS = decimal.Parse((DataRow1["昨收"] as string)); 订单Row1.当前价位 = Math.Round((XJ == 0 ? ZS : XJ), 8, MidpointRounding.AwayFromZero); //订单Row1.刷新浮动盈亏(Program.Current平台用户.手续费率); 订单Row1.刷新浮动盈亏(); } } Tool.RefreshDrcjDataTable(Program.serverDb.订单, 订单DataTable1, new string[] { "组合号", "证券代码" }); break; case 7: AASClient.AASServiceReference.DbDataSet.已平仓订单DataTable 已平仓订单DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.已平仓订单DataTable; Program.serverDb.已平仓订单.Clear(); Program.serverDb.已平仓订单.Merge(已平仓订单DataTable1); AASClient.AASServiceReference.JyDataSet.业绩统计DataTable 业绩统计DataTable2 = this.Generate业绩统计(); Tool.RefreshDrcjDataTable(Program.jyDataSet.业绩统计, 业绩统计DataTable2, new string[] { "证券代码" }); break; default: break; } }
private void backgroundWorker报价_ProgressChanged(object sender, ProgressChangedEventArgs e) { switch (e.ProgressPercentage) { case 0: this.toolStripStatusLabel时间.Text = DateTime.Now.ToString("HH:mm:ss"); break; case 1: AASClient.AASServiceReference.DbDataSet.平台用户DataTable 平台用户DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.平台用户DataTable; Tool.RefreshDrcjDataTable(Program.serverDb.平台用户, 平台用户DataTable1, new string[] { "用户名" }); Program.Current平台用户 = Program.serverDb.平台用户.First(r => r.用户名 == Program.Current平台用户.用户名); break; case 2: AASClient.AASServiceReference.DbDataSet.额度分配DataTable TradeLimitDataTable = e.UserState as AASClient.AASServiceReference.DbDataSet.额度分配DataTable; Tool.RefreshDrcjDataTable(Program.serverDb.额度分配, TradeLimitDataTable, new string[] { "证券代码" }); foreach (HqForm HqForm1 in this.hqForm) { //HqForm1.comboBox代码.AutoCompleteCustomSource.Clear(); //foreach (AASClient.AASServiceReference.DbDataSet.额度分配Row 交易额度Row1 in Program.serverDb.额度分配) //{ // HqForm1.comboBox代码.AutoCompleteCustomSource.Add(string.Format("{0} {1} {2}", 交易额度Row1.证券代码, 交易额度Row1.拼音缩写, 交易额度Row1.证券名称)); // HqForm1.comboBox代码.AutoCompleteCustomSource.Add(string.Format("{0} {1} {2}", 交易额度Row1.拼音缩写, 交易额度Row1.证券代码, 交易额度Row1.证券名称)); //} } break; case 3: break; case 4: AASClient.AASServiceReference.JyDataSet.成交DataTable 成交DataTable1 = e.UserState as AASClient.AASServiceReference.JyDataSet.成交DataTable; Tool.RefreshDrcjDataTable(Program.jyDataSet.成交, 成交DataTable1, new string[] { "组合号", "委托编号", "成交编号" }); break; case 5: RefreshOrder(e); break; case 6: AASClient.AASServiceReference.DbDataSet.订单DataTable 订单DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.订单DataTable; Tool.RefreshDrcjDataTable(Program.serverDb.订单, 订单DataTable1, new string[] { "组合号", "证券代码" }); break; case 7: AASClient.AASServiceReference.DbDataSet.已平仓订单DataTable 已平仓订单DataTable1 = e.UserState as AASClient.AASServiceReference.DbDataSet.已平仓订单DataTable; Program.serverDb.已平仓订单.Clear(); Program.serverDb.已平仓订单.Merge(已平仓订单DataTable1); AASClient.AASServiceReference.JyDataSet.业绩统计DataTable 业绩统计DataTable2 = this.Generate业绩统计(); Tool.RefreshDrcjDataTable(Program.jyDataSet.业绩统计, 业绩统计DataTable2, new string[] { "证券代码" }); break; default: break; } }