Beispiel #1
0
        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];
                        }
                    }
                }
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
 public void Init(券商 group)
 {
     this.tbAccount.Text = group.称;
     GroupItem           = group;
 }