Beispiel #1
0
 private void TranDataMain()
 {
     while (true)
     {
         if (Codes.Count > 0)
         {
             try
             {
                 var tranData = Program.AASServiceClient.GetHkTran(Codes.ToArray());
                 if (!string.IsNullOrEmpty(tranData))
                 {
                     var dict = tranData.FromJSON <Dictionary <string, string> >();
                     foreach (var item in dict)
                     {
                         var data = Tool.ChangeDataStringToTable(item.Value);
                         DictTran[item.Key] = data;
                     }
                 }
             }
             catch (Exception ex)
             {
                 Program.logger.LogRunning("HK 逐笔获取线程异常:{0}", ex.Message);
             }
             Thread.Sleep(100);
         }
         else
         {
             Thread.Sleep(1000);
         }
     }
 }
Beispiel #2
0
        private void PubStocks_Load(object sender, EventArgs e)
        {
            try
            {
                var result = Program.AASServiceClient.QueryPubStock("");
                if (result.StartsWith("0|"))
                {
                    var resultDataStr = result.Substring(2);
                    if (!string.IsNullOrEmpty(resultDataStr))
                    {
                        var dt = Tool.ChangeDataStringToTable(resultDataStr);
                        DeleteTableData(dt);

                        PublicStockList = new List <PublicStock>();
                        foreach (DataRow row in dt.Rows)
                        {
                            PublicStockList.Add(new PublicStock()
                            {
                                StockCode    = row["证券代码"].ToString(),
                                StockName    = row["证券名称"].ToString(),
                                CanSaleCount = int.Parse(row["可卖数量"].ToString()),
                                Market       = (byte)((row["交易所名称"].ToString()).IndexOf("上海") > 0 ? 1 : 0),
                            });
                        }

                        //var code = row.Cells["证券代码"].Value + "";
                        //var name = row.Cells["证券名称"].Value + "";
                        //var market = (row.Cells["交易所名称"].Value + "").IndexOf("上海") > 0 ? (byte)1 : (byte)0;

                        this.bindingSource公共券池.DataSource = PublicStockList;
                        dataGridView公共券池.DataSource       = this.bindingSource公共券池;
                        foreach (DataGridViewColumn column in this.dataGridView公共券池.Columns)
                        {
                            column.Visible = DisplayColumn.Contains(column.HeaderText);
                        }
                        dataGridView公共券池.Columns["帐号类别"].Visible = false;
                    }
                }
                else
                {
                    MessageBox.Show(result.Substring(2));
                }
            }
            catch (Exception ex)
            {
                Program.logger.LogRunning("公共券池查询异常!\r\n  Message:{0}\r\n  StackTrace:{1}", ex.Message, ex.StackTrace);
            }
        }
Beispiel #3
0
        private void button测试帐号_Click(object sender, EventArgs e)
        {
            string[] JyServerInfo = this.comboBox交易服务器.Text.Split(new char[] { ':' });

            string Ret = Program.AASServiceClient.Test(JyServerInfo[1], short.Parse(JyServerInfo[2]), this.textBox版本号.Text, (short)this.numericUpDown营业部代码.Value, this.textBox登录帐号.Text, this.textBox交易帐号.Text, this.textBox交易密码.Text, this.textBox通讯密码.Text);

            string[] Data = Ret.Split('|');
            if (Data[1] != string.Empty)
            {
                MessageBox.Show(Data[1], "测试失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            this.dataGridView股东列表.DataSource = Tool.ChangeDataStringToTable(Data[0]);
        }
Beispiel #4
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (Program.AASServiceClient.State == System.ServiceModel.CommunicationState.Opened)
                {
                    var result = Program.AASServiceClient.QueryPubStock("");
                    if (result.StartsWith("0|"))
                    {
                        var resultDataStr = result.Substring(2);
                        if (!string.IsNullOrEmpty(resultDataStr))
                        {
                            var dt = Tool.ChangeDataStringToTable(resultDataStr);
                            //DeleteTableData(dt);
                            List <string> codes = new List <string>();
                            foreach (DataRow row in dt.Rows)
                            {
                                var code = row["证券代码"] + "";
                                codes.Add(code);

                                var entity = PublicStockList.FirstOrDefault(_ => _.StockCode == code);
                                if (entity == null)
                                {
                                    //帐号类别,交易所名称,证券代码,证券名称,融券保证金比例,可卖数量,备注,保留信息
                                    PublicStockList.Add(new PublicStock()
                                    {
                                        StockCode    = code,
                                        StockName    = row["证券代码"].ToString(),
                                        CanSaleCount = int.Parse(row["可卖数量"].ToString()),
                                        Market       = (byte)(row["可卖数量"].ToString().IndexOf("") > 0 ? 1 : 0)
                                    });
                                }
                                else
                                {
                                    entity.CanSaleCount = int.Parse(row["可卖数量"].ToString());
                                }
                            }
                            if (codes.Count < PublicStockList.Count)
                            {
                                foreach (var item in PublicStockList)
                                {
                                    if (!codes.Contains(item.StockCode))
                                    {
                                        item.CanSaleCount = 0;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        this.timer1.Stop();
                        //Program.logger.LogRunning("公共券池查询错误,{0}", result.Substring(2));
                    }
                }
            }
            catch (Exception ex)
            {
                Program.logger.LogRunning("公共券池查询异常,{0}", ex.Message);
            }
        }
Beispiel #5
0
        private void button测试帐号_Click(object sender, EventArgs e)
        {
            this.textBox上海股东代码.Text = string.Empty;
            this.textBox深圳股东代码.Text = string.Empty;



            string[] JyServerInfo = this.comboBox交易服务器.Text.Split(new char[] { ':' });



            string Ret = GetTestResult(JyServerInfo);

            string[] Data = Ret.Split('|');
            if (Data[1] != string.Empty)
            {
                MessageBox.Show(Data[1], "测试失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            DataTable GddmDataTable = Tool.ChangeDataStringToTable(Data[0]);

            List <string> GddmList = new List <string>();

            foreach (DataRow GddmDataRow in GddmDataTable.Rows)
            {
                GddmList.Add(GddmDataRow["股东代码"] as string);
            }

            if (this.comboBox券商.Text == "模拟测试")
            {
                this.textBox上海股东代码.Text = GddmList[0];
                this.textBox深圳股东代码.Text = GddmList[1];
            }
            else
            {
                if (this.comboBox类型.Text == "普通")
                {
                    if (GddmList.Any(r => r.StartsWith("A")))
                    {
                        this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("A"));
                    }
                    else if (GddmList.Any(r => r.StartsWith("B")))
                    {
                        this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("B"));
                    }
                    else
                    {
                        MessageBox.Show("未获取到上海股东代码");
                    }

                    this.textBox深圳股东代码.Text = GddmList.FirstOrDefault(r => Regex.IsMatch(r, "^0[0128]")) ?? string.Empty;
                    if (string.IsNullOrEmpty(this.textBox深圳股东代码.Text))
                    {
                        MessageBox.Show("未获取到深圳股东代码");
                    }
                }
                else
                {
                    if (GddmList.Any(r => r.StartsWith("E")))
                    {
                        this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("E"));
                    }
                    else
                    {
                        MessageBox.Show("未获取到上海股东代码");
                    }


                    if (GddmList.Any(r => r.StartsWith("06")))
                    {
                        this.textBox深圳股东代码.Text = GddmList.First(r => r.StartsWith("06"));
                    }
                    else
                    {
                        MessageBox.Show("未获取到深圳股东代码");
                    }
                }
            }



            this.dataGridView股东列表.DataSource = GddmDataTable;


            if (GddmDataTable.Columns.Contains("资金帐号"))
            {
                string 资金帐号 = GddmDataTable.Rows[0]["资金帐号"] as string;
                if (资金帐号 != this.textBox交易帐号.Text)
                {
                    MessageBox.Show(string.Format("所填交易帐号 {0} 与表中资金帐号 {1} 不一致", this.textBox交易帐号.Text, 资金帐号));
                    return;
                }
            }
        }