Пример #1
0
        private void closePositionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
            {
                return;
            }

            PositionDlg dlg = new PositionDlg();

            string name = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();

            StockPool.TacticalTableDataTable dt = (StockPool.TacticalTableDataTable)dataGridViewTactical.DataSource;
            if (dt.Select("Name=" + name).Length != 0)
            {
                MessageBox.Show("please underweight stock in tactical pool first");
                return;
            }

            dlg.textBoxName.Text   = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text   = "ClosePosition";
            dlg.textBoxCount.Text  = dataGridViewLongTerm.SelectedRows[0].Cells["Amount"].Value.ToString();
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update statistic data
                StockPool.LongTermTableDataTable longtermdt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row        = (StockPool.LongTermTableRow)longtermdt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                decimal sellprice = Convert.ToDecimal(dlg.textBoxPrice.Text);
                decimal profit    = (sellprice - row.CostPrice) * row.Amount;
                m_statData.LongTermProfit        += profit;
                m_statData.LongTermLeftCash      += sellprice * row.Amount;
                m_statData.LongTermAvailableCash += sellprice * row.Amount + row.AvailableCash;
                //insertDealRecord
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "LongTermPool";
                data.Profit = profit.ToString();
                InsertDealRecord(data);
                //delete longterm record
                DeleteFromStockPool(dataGridViewLongTerm, dataGridViewLongTerm.SelectedRows[0].Index);
            }
        }
Пример #2
0
        private void InsertLongTermPool(PositionDlg dlg)
        {
            StockPool.LongTermTableDataTable dt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;

            StockPool.LongTermTableRow row = dt.NewLongTermTableRow();
            row.Name      = dlg.textBoxName.Text;
            row.Code      = dlg.textBoxNumber.Text;
            row.CostPrice = Convert.ToDecimal(dlg.textBoxPrice.Text);
            row.Amount    = Convert.ToUInt32(dlg.textBoxCount.Text);
            row.ClassType = dlg.comboBoxClassType.SelectedText;
            if (dlg.comboBoxClassType.SelectedText == "High potential")
            {
                row.AvailableCash = row.CostPrice * row.Amount / 2; //for high potential stock, long term position is 50%
            }
            else
            {
                row.AvailableCash = row.CostPrice * row.Amount / 3; //for blue chip stock, long term position is 60%
            }
            dt.Rows.Add(row);
        }
Пример #3
0
        private void underwweightToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 2)
            {
                return;
            }

            DealDlg dlg = new DealDlg();

            dlg.textBoxName.Text   = dataGridViewTactical.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewTactical.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxCount.Text  = dataGridViewTactical.SelectedRows[0].Cells["DealCount"].Value.ToString();
            dlg.textBoxType.Text   = "UnderWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint    count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt  = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row = (StockPool.LongTermTableRow)dt.Select("Name=" + dlg.textBoxName.Text)[0];
                decimal profit = (price - row.CostPrice) * count;
                row.AvailableCash           += price * count;
                m_statData.TacticalProfit   += profit;
                m_statData.LongTermLeftCash += price * count; //real left cash

                //delete tactical record
                DeleteFromStockPool(dataGridViewTactical, dataGridViewTactical.SelectedRows[0].Index);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }
Пример #4
0
        private void overweightToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
            {
                return;
            }

            DealDlg dlg = new DealDlg();

            dlg.textBoxName.Text   = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text   = "OverWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update stock available cash in long term pool
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint    count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt  = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row = (StockPool.LongTermTableRow)dt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                row.AvailableCash           -= price * count;
                m_statData.LongTermLeftCash -= price * count;

                //insert tactical record
                InsertTacticalPool(dlg, -1);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }