private void addStockToolStripMenuItem_Click(object sender, EventArgs e) { HoldingForm form = new HoldingForm(refreshTime); form.ShowDialog(); if (form.save) { stocks.Add(form.stock); } UpdateGrids(); }
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); }
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 { } }
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); } }