Beispiel #1
0
        private void addStockToolStripMenuItem_Click(object sender, EventArgs e)
        {
            HoldingForm form = new HoldingForm(refreshTime);

            form.ShowDialog();
            if (form.save)
            {
                stocks.Add(form.stock);
            }
            UpdateGrids();
        }
Beispiel #2
0
        void AddStock()
        {
            HoldingForm form = new HoldingForm(refreshTime);

            form.ShowDialog();
            if (form.save)
            {
                if (!this.stocks.Any(s => s.Ticker == form.stock.Ticker))
                {
                    stocks.Add(form.stock);
                }
                else
                {
                    MessageBox.Show("Stock already in watchlist or holdings");
                }
            }
            UpdateGrids();
            //if (stocks.Count() > 0)
            //  WriteToXmlFile<BindingList<Stock>>(Robinhood.__stocksFile, stocks);
        }
Beispiel #3
0
 private void dataGridViewPositions_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         if (PositionsGrid.SelectedRows[0].Cells["ticker"].Value != null)
         {
             string      ticker        = PositionsGrid.SelectedRows[0].Cells["ticker"].Value.ToString();
             Stock       selectedStock = stocks.ToList().Find(s => s.Ticker == ticker);
             HoldingForm form          = new HoldingForm(refreshTime, selectedStock);
             form.ShowDialog();
             if (form.stock != null)
             {
                 stocks[stocks.ToList().FindIndex(s => s.Ticker == form.stock.Ticker)] = form.stock;
             }
             UpdateGrids();
         }
     }
     catch
     {
     }
 }
Beispiel #4
0
        void StockUpdater(object parm)
        {
            HoldingForm form = (HoldingForm)parm;

            while (true)
            {
                try
                {
                    if (stopThreads)
                    {
                        break;
                    }
                    stock = Robinhood.GetQuote(new List <Stock>()
                    {
                        stock
                    }).First();
                    string quote = stock.Quote;

                    form.labelQuote.Invoke((Action) delegate
                    {
                        form.labelQuote.Text      = quote;
                        form.labelQuote.ForeColor = form.stock.Color;
                    });

                    form.labelAskPrice.Invoke((Action) delegate
                    {
                        form.labelAskPrice.Text = "$" + stock.AskPrice.ToString();
                        form.labelBidPrice.Text = "$" + stock.BidPrice.ToString();
                    });

                    ///////////////////////////
                    if (stock.Entry.FollowPrice == PricePointControl.FollowPrice.AtAsk)
                    {
                        form.Entry.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Entry.numericUpDownValue.Value = stock.AskPrice;
                        });
                    }

                    if (stock.Entry.FollowPrice == PricePointControl.FollowPrice.AtLastTradedPrice)
                    {
                        form.Entry.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Entry.numericUpDownValue.Value = stock.LastTradePrice + 0.01m;
                        });
                    }

                    if (stock.Entry.FollowPrice == PricePointControl.FollowPrice.AtBid)
                    {
                        form.Entry.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Entry.numericUpDownValue.Value = stock.BidPrice;
                        });
                    }
                    /////////////////////////////////////////////
                    if (stock.StopLoss.FollowPrice == PricePointControl.FollowPrice.AtAsk)
                    {
                        form.Stop.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Stop.numericUpDownValue.Value = stock.AskPrice;
                        });
                    }

                    if (stock.StopLoss.FollowPrice == PricePointControl.FollowPrice.AtBid)
                    {
                        form.Stop.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Stop.numericUpDownValue.Value = stock.BidPrice;
                        });
                    }

                    if (stock.StopLoss.FollowPrice == PricePointControl.FollowPrice.AtLastTradedPrice)
                    {
                        form.Stop.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.Stop.numericUpDownValue.Value = stock.LastTradePrice;
                        });
                    }

                    ///////////////
                    if (stock.PriceTarget.FollowPrice == PricePointControl.FollowPrice.AtAsk)
                    {
                        form.PriceTarget.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.PriceTarget.numericUpDownValue.Value = stock.AskPrice;
                        });
                    }

                    if (stock.PriceTarget.FollowPrice == PricePointControl.FollowPrice.AtLastTradedPrice)
                    {
                        form.PriceTarget.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.PriceTarget.numericUpDownValue.Value = stock.LastTradePrice;
                        });
                    }

                    if (stock.PriceTarget.FollowPrice == PricePointControl.FollowPrice.AtBid)
                    {
                        form.PriceTarget.numericUpDownValue.Invoke((Action) delegate
                        {
                            form.PriceTarget.numericUpDownValue.Value = stock.BidPrice;
                        });
                    }

                    form.labelMarketValue.Invoke((Action) delegate
                    {
                        form.labelMarketValue.Text = "Market Value: $" + Math.Round(stock.LastTradePrice * form.NoOfShares.Value, 2).ToString();
                    });

                    form.bidAskRationLabel.Invoke((Action) delegate
                    {
                        bidAskRationLabel.Text = stock.BidAskSpread.ToString();
                    });

                    if (stock.NoOfShares > 0 && (stock.PendingOrders == null || !stock.PendingOrders.Any(o => o.Side == Side.Sell && o.Trigger == "stop")))
                    {
                        Stop.Invoke((Action) delegate
                        {
                            if (Stop.placeOrderButton.BackColor == SystemColors.ControlLightLight)
                            {
                                Stop.placeOrderButton.BackColor = Color.IndianRed;
                                Stop.placeOrderButton.ForeColor = Color.White;
                                Stop.placeOrderButton.Text      = "No Stop Order";
                            }
                            else
                            {
                                Stop.placeOrderButton.BackColor = SystemColors.ControlLightLight;
                                Stop.placeOrderButton.ForeColor = SystemColors.WindowText;
                                Stop.placeOrderButton.Text      = "Place Order";
                            }
                        });
                    }
                    else
                    {
                        Stop.Invoke((Action) delegate
                        {
                            Stop.placeOrderButton.BackColor = SystemColors.ButtonFace;
                            Stop.placeOrderButton.ForeColor = SystemColors.WindowText;
                            Stop.placeOrderButton.Text      = "Place Order";
                        });
                    }

                    this.BeginInvoke((Action) delegate
                    {
                        this.UpdatePendingOrder();
                    });
                }
                catch (Exception e)
                {
                    if (shown && form.IsHandleCreated)
                    {
                        form.labelQuote.Invoke((Action) delegate
                        {
                            form.labelQuote.Text      = e.Message;
                            form.labelQuote.ForeColor = Color.IndianRed;
                        });
                    }
                }
                Thread.Sleep(form.refreshTime);
            }
        }