Instrumentarix I
Last Update: Saturday, Nov. 15th 2008
E-Trading User Interface
This user interface is my personal interpretation of what an Electronic Trading User Interface should look like.
It has been designed to be flexible, extensible and yet performant.
It supports the notion of plugins, grids and abstract data source.
(Web-Started, requires jre 6 or above)
Instrumentarix II
Slowly working on it, using my experience of version I to make it better.
Source code
Available on demand: thierry at janaudy dot com
Functionalities
- Notion of Grids & Plugins
- Very good memory and CPU usage under stress
- Cell flashing on data update (Flashes a cell on a cell value update)
- Row ownership (Each row of data is owned or not, allowing updates, or read-only cells)
- Layout using Mydoggy (Not great, but good enough for the demo)
- Layout + Grid config persistence (Each grid state is persisted: width, colors, etc...) - only in standalone mode
- Grids via XML config (That is the config, persisted XML, can also be update via the UI)
- Plugin dev via Java implementation of the IPugin interface (Allows you to write custom plugins, RFQs, Trade Blotters, etc.)
- Full-Screen mode
- Bank Panel (Bank on/off, autoneg on/off, ... - This is a custom plugin)
- Future Panel (Depth, Best, and Graph, ... - another custom plugin)
- RFQ plug-in demo (Only partial)
- Records chooser (Allows you to choose which records to display)
- Columns chooser + colors, flashing, ... (You can choose the colors, visible, etc... and it is persisted!)
- Column sort (It is done at the model level - most of the complex tasks are done at the model level)
- Frame location and size persisted - only in standalone mode
- You can merge data from multiple sources
- Config & Plugins dynamically loaded (URLClassLoader)
- Abstract data source with multiple possible implementations: rv,
mv, jms,
socket,
jdbc, ...
(The most important part - the UI is protocol-independent, and you can support more than one protocol at the same time)
To do
- Frozen Columns for grids
(This should be really part of the core Swing API) (demo)
- Records Chooser filtering (Ability to filter records based on a regexp pattern)
- Ladder editor (Traders love ladders editors!)
- Externalize renderers & editors (Make them like plugins)
- Sort order chooser (Define a sort order)
- RFQ Simul (A proper simulation env.)
- Implement a server-side component with JMS as a transport layer
- Any other idea, email me
Why the name?
When I was young, I was found (still am) of Asterix, a comic book series character.
So, Instrumentarix, is the name of the user interface, helping to buy and sell any
financial instrument, with an irreductible touch.
Snapshots
Contact
thierry at janaudy dot com