protected void getDataPoints() { IWatchListManager wlm = new WatchListManager(); var query = wlm.GetQuotes(symbolName); DateTime dstart = new DateTime(1970, 1, 1); query = query.OrderBy(x => x.timestamp).ToList(); data = "["; foreach (Quote q in query) { DateTime qdate = q.timestamp; TimeSpan ts = q.timestamp - dstart; //plot.Add(new PlotPoint(ts.TotalMilliseconds, q.price)); data += "[" + (ts.TotalMilliseconds - ts.Milliseconds-15000) + ", " + q.price + "],"; } data = data.TrimEnd(','); data += "]"; }
public void OnTick(object source, ElapsedEventArgs e) { PortfolioManager pm = new PortfolioManager(); List<PositionMessage> pos = pm.GetOpenPositions(); List<string> owned = pos.Select(x => x.SymbolName).ToList<string>(); _owner.WatchForSell = owned; SortedSet<string> watched = new SortedSet<string>(); IWatchListManager wlm = new WatchListManager(); List<WatchList> lists = wlm.GetAllWatchLists(); foreach (WatchList wl in lists) { foreach (WatchListItem i in wl.Items) { watched.Add(i.SymbolName); } } _owner.WatchForBuy = watched.ToList<string>(); }
/// <summary> /// Creates the position table. /// </summary> /// <param name="pm">PositionMessage</param> /// <returns>Table</returns> private Table createPositionTable(PositionMessage pm) { string fullName = string.Empty; double gain = 0; double gainPercent = 0; string classname = string.Empty; IWatchListManager wlm = new WatchListManager(); fullName = wlm.GetLongName(pm.SymbolName); TraderContext db = new TraderContext(); double latestQuote = db.Quotes.Where(x => x.SymbolName.Equals(pm.SymbolName)).OrderByDescending(x => x.timestamp).Select(x => x.price).FirstOrDefault(); gain = (latestQuote * pm.Quantity) - pm.Price; gainPercent = gain / (pm.Price); if (gain > 0) { classname = "green"; } if (gain < 0) { classname = "red"; } Table tbl = new Table(); TableRow row = new TableRow(); for (int i = 0; i < columns; i++) { TableCell cell = new TableCell(); cell.Width = new Unit(widths[i]); row.Cells.Add(cell); } row.Cells[1].Text += new HtmlString(String.Format("{0} <span class='subtext'>({1})</span>", pm.SymbolName, fullName)); row.Cells[2].Text = String.Format("{0:N0}", pm.Quantity); row.Cells[3].Text = new HtmlString(String.Format("{0:C} / <span class='{3}'>{1:C}</span> / <span class='{3}'>{2:P2}</span>", pm.Price, gain, gainPercent, classname)).ToString(); row.Cells[4].Text = String.Format("{0:C}", pm.Trades.Sum(x => x.PaidCommission)); row.Cells[5].Text = pm.Status.ToString(); row.Cells[5].CssClass = getCssClass(pm.Status.ToString()); // BUTTONS HtmlGenericControl btnToggle = new HtmlGenericControl("div"); btnToggle.Attributes.Add("class", "toggle icon-plus-sign"); row.Cells[0].Controls.Add(btnToggle); Button btnAction = new Button(); btnAction.CssClass = "symbol-button"; btnAction.ToolTip = "Buy/sell"; btnAction.Text = HttpUtility.HtmlDecode(""); btnAction.Attributes["SymbolName"] = pm.SymbolName; btnAction.Click += new EventHandler(btnClick); row.Cells[columns - 1].Controls.Add(btnAction); // css stuff tbl.CssClass = "main"; row.CssClass = "main"; row.Cells[(radioSortType.SelectedIndex / 2) + 1].CssClass = "bold"; tbl.Rows.Add(row); return tbl; }