private static void AddPositionCountBySearch(bool isCheckPort, 券商 o, DataTable dt) { if (dt.Rows.Count == 0) { return; } string codeColumnName0 = GetCodeColumnName(dt); if (codeColumnName0 != string.Empty) { //查询当日委托,统计各股票下单情况,进行合计,并将合计信息作为仓位列信息,加入到当前 DataTable dt1 = DataAdapter.QueryTradeData(o, 2, isCheckPort); string codeColumnName1 = GetCodeColumnName(dt1); if (codeColumnName1 != string.Empty && dt1.Columns.Contains("买卖标志") && dt1.Columns.Contains("成交数量")) { Dictionary <string, decimal> dict = CalculateTotalBuyCount(dt1, codeColumnName1); dt.Columns.Add("仓位"); foreach (DataRow dr in dt.Rows) { var code = CommonUtils.GetCode(dr[codeColumnName0]); if (dict.ContainsKey(code)) { dr["仓位"] = dict[code]; } } } } }
/// <summary> /// 通达信接口-交易数据查询 /// </summary> /// <param name="o">券商</param> /// <param name="tradeDataType">表示查询信息的种类,0资金 1股份 2当日委托 3当日成交 4可撤单 5股东代码 6融资余额 7融券余额 8可融证券</param> /// <returns></returns> public static DataTable QueryTradeData(券商 o, int tradeDataType, bool isCheckPort) { DataTable dt = null; StringBuilder ErrInfo = new StringBuilder(256); StringBuilder result = new StringBuilder(1024 * 1024); if (isCheckPort && o.营业部代码 == 8888) { o.营业部代码 = 24; o.IP = "124.74.242.150"; o.Port = 443; } //var ClientID = TdxApi.LogonEx(o.IP, o.Port, o.版本号, o.营业部代码, o.登录帐号, o.交易帐号, o.TradePsw, o.CommunicatePsw, "39.104.93.151", "00-16-3E-00-1C-12", ErrInfo); var ClientID = TdxApi.Logon(o.IP, o.Port, o.版本号, o.营业部代码, o.登录帐号, o.交易帐号, o.TradePsw, o.CommunicatePsw, ErrInfo); if (ErrInfo.Length > 0) { CommonUtils.ShowMsg(ErrInfo.ToString()); } else { TdxApi.QueryData(ClientID, tradeDataType, result, ErrInfo); if (ErrInfo.Length == 0) { dt = CommonUtils.ChangeDataStringToTable(result.ToString()); } else { CommonUtils.ShowMsg(ErrInfo.ToString()); } TdxApi.Logoff(ClientID); } return(dt); }
private static void AddPosition(bool isCheckPort, 券商 o, DataTable dt) { //加一列“仓位” 仓位 =》 买入冻结-卖出冻结,或者 当前持仓-证券数量 bool canAddColumn = false; string col1 = string.Empty; string col2 = string.Empty; if (dt.Columns.Contains("卖出冻结") && dt.Columns.Contains("买入冻结")) { canAddColumn = true; col1 = "买入冻结"; col2 = "卖出冻结"; } else if (dt.Columns.Contains("当前持仓") && dt.Columns.Contains("证券数量")) { canAddColumn = true; col1 = "当前持仓"; col2 = "证券数量"; } if (canAddColumn) { AddColumnCalculate(dt, col1, col2); } else if (o.称 != "C03" && o.称 != "C02") { AddPositionCountBySearch(isCheckPort, o, dt); } }
public void Init(券商 group) { this.tbAccount.Text = group.称; GroupItem = group; }