Equities Trading System
The Problem
Develop an Equities Trading System front-end to replace an outdated green-screen technology, providing support for real-time transactions, notifications, and security. Move from leased lines to internet technology. Support multiple trading venues.
Our Responsibilities
- Project planning and cost estimations
- Management of a team of 20 developers
- Collection and management of requirements for the entire system
- User Interface Design for the trading workstation
- Technical Design of the client and web server tiers
- Development of the UI and middle tiers
- Overall system resiliency
The Solution
We delivered a full-featured solution with the following major features, components, and technologies:
Features
- Sign On/Off
- Password Change
- Quote a Stock with extensive UI that allowed real-time updates (4 or 5 updates per second per stock), filtering by trading venue, integrated level II market data and depth of ECN book. Also included "stale data" indicator.
- View Your Orders List with a powerful UI that allowed open, traded, and stopped (cancelled / rejected) orders to be easily browsed
- Enter an Order, specifying side, price, limits, pegging, routing to other venues, expiry, principal, custodian
- Cancel an Order, with real time order expiry / cancellation notification
- Revise an Order
- Act-for capability
- Trade Summary Reports
- Training Mode
- Trading Alerts / Admin Messages
- Trader Preferences
- Flexible Workstation Layout
- Full keyboard shortcut support for super-fast trading and navigation
Components
- Browser-based ActiveX UI for the trading workstation, featuring the following ActiveX components
- Quote Stock View
- Order List View
- Alerts View
- Status Bar
- Command Bar
- Client-side C++ communications layer
- Built on top of WinInet API
- Maintained persistent HTTPS connection
- XML parser runs in background thread
- Raises COM event when new message parsed
- Server-side communications daemon to handle asynchronous, real-time traffic
- Written in Java
- Protocol converter from Tibco to HTTPS
- Staged fan-out to thousands of users
- Managed distribution lists to allow non-redundant subscriptions
- Management interface to allow remote control of the daemon
- Resiliency handlers managed consistency of distribution lists
- Servlets handled request/response traffic
- Order entry
- Data subscriptions
Technologies
- HTML, ActiveX, VB6 front end
- Java
- C++ client-side communication tier
- HTTP/XML transport
- JRun3.0 (servlets)
- Java Server, Tibco rendezvous back end
- Oracle8i
Unique Challenges, Solved.
- Handled variable fan-out characteristics of request/response traffic and asynchronous traffic by splitting the web server into two processes with different scalability requirements and failover conditions, while only introducing a very small amount of interprocess communication overhead.
- Tunneled real time data through persistent HTTPS connections to fool firewalls and proxy servers.
- Used Extensible Markup Language (XML) to unify the Java, C++, Visual Basic, and Tibco layers.
- Created a data dictionary that notated the type, range, and description for each element in the Document Type Definitions (DTDs) that defined the XML messages.
- Handled the lack of thread support in Visual Basic by writing a thin C++ communication layer that managed all client/server communications.
- Using Servlets we created a reusable interface to a Tibco message bus. Clients subscribe to Tibco data feeds through the Servlet interface.
- Converted proprietary publish/subscribe system (Tibco) to distribute real time data over the web (HTTP)
- Developed a trading object model on the client tier that allowed flexible data manipulation and presentation.
- Created automated unit tests for each component of the system. These tests were run each evening to ensure that new code didn't break existing code.
- Questions? Ready to move your project forward? We'd be happy to discuss a solution for your needs. Contact Us to find out more.

