0
votes

We need a "dashboard" view for a trading application on a C# .Net WinForms application.

Currently the application pops up additional forms with price charts for each symbol (MSFT, GOOG, EUR/USD) for which the user has defined automated trading rules. But some users want to trade dozens or hundreds of symbols simultaneously. The application handles this performance-wise but this creates far too many separate charts on the desktop.

So the need is for a form with a list of information and controls for each of the symbols.

Please offer advice on selecting which controls to use for this.

Okay so here's some requirements:

  1. The list needs to be scrollable.
  2. On Each Row: a) a button to maximize/minimize the chart for that symbol. b) a button to pause or resume trading on a symbol as well as show current status. c) A few columns of information like symbol, equity, position.
  3. Future version: Rows sortable by the information columns.
  4. Future version: Make each row "explandable" maybe with a plus/minus sign to show additional detail like list of active orders or perhaps a mini "inline" chart rather than separate popup.
  5. One or more rows will be "portfolio" rows with similar columns to display combined equity for its nested symbols and portfolios.
  6. We need to implement this as quickly as possible so this rules out designing custom controls (at least in this version)--So we want to use only the .Net standard controls.
  7. We want to avoid 3rd party solutions unless it's open source.

Trickiest design question:

How to represent the relationships between the strategies and portfolios. These relationships can be sophisticated with nested portfolios and a single portfolios instance can be assigned to multiple parent portfolios. Note. The user can't alter these relationship at run time...but it will be nice to represent this visually. Can that be integrated into this control--like a tree view? The problem is that a single portfolio or symbol can be nested inside multiple other portfolios. So that doesn't seem to make sense for a tree view.

Another idea will be to pop up separate list views for each portfolio--yuck.

The best will be some clever idea to represent the relationships visually on the same dashboard. Maybe not in this first version but perhaps a custom drawing control that actually shows a column per portfolio with a vertical line showing symbols or portfolio contained with tick marks? We'd like a simple yet elegant solution.

The plan is to get something up and working with the minimum needs but also some forethought into how to get the portfolio relationship and other features in a next version w/o rewriting the whole thing.

1
Just a thought - WPF/silverlight is very good for what you want to do... Can you host a webbrowser control in your winforms app to show a silverlight app on a webpage or use an elementhost to host a wpf control?Jay
My struggle is that while very skilled with all things web and back end on the server, I'm all thumbs at working with desktop GUI. So what you describe above sounds "hard" to me with a lot of learning curve. Right now, I've gotten relatively comfortable with WinForms but so far only read a book about WPF and not quite ready due to go that route due to business deadlines.Wayne
Hmmm... What you want to do is doable but pretty advanced as far as Winforms UI devlopment goes. It is all so much easier using WPF. If deadlines are your constraint - How about investing in pre-built RAD controls such as those provided by devexpress or telarik?Jay
@Jay Well it seems the hard part will be converting the existing app over from WinForms or else trying to integrate the old code with the new WPF code. IT seems easier to put something together with Forms for now. We do have future plans for upgrading the whole GUI to WPF at a later date.Wayne
@ Wayne - I think you may have misunderstood - third party controls are available from Devexpress or Telarik for Winform applications as well as WPF or Silverlight; These will will allow you do do fancy charts and graphs in a winforms application without a huge learning curve and should work right out of the box. Best of luck anyway!Jay

1 Answers

0
votes

if you know winform better then I think you can try to use some tab control ,nested tab control,resizable panel,etc for your dashboard with backgrounds workers thread control .