Quality Money Management : Process Engineering and Best Practices for Systematic Trading and Investment

(Michael S) #1

194 CHAPTER ◆ 2 1 Design System Architecture


Traditional, sequential development methods force all design decisions to be made as
early as possible, which causes the cost of changes to rise exponentially as development
moves forward. The iterative development process we support allows the development
team to delay crucial, constraint fixing decisions to as late as possible in the process, that
is, an iterative process and benchmarked designs reduce project and operational risks.

21.1. Software Tiers


Most fully functioning trading/investment systems make use of a multitier architecture.
Multitier designs promote modular software development with well-defined interfaces.
The main advantage to multitier design is that it allows developers to replace or refactor
any individual tier as needed without affecting the other tiers. A fully automated trading/
investment system incorporates several separate tiers, or layers, in its architecture. We gen-
eralize these into three tiers.

● Presentation tier. This tier covers the user interfaces that contain presentations of
real-time data, positions, performance metrics and controls for any dynamic inputs,
and trading system on/off/shutdown states on a client computer. This tier also includes
reporting mechanisms.
A user interface enables traders to manage the working system intraday. For
example, sector deltas may be on the user screen continuously so a trader can hedge
manually in real time. Charts containing price data, time series of earnings, or divi-
dends, may also be fed through the user interface. Some firms update the user inter-
face with one minute VaR calculations.
In the presentation tier, we also include mechanisms for printed or Web-based
reports, including, for example, intraday and end-of-day batch reports. In these
reports, junior-level analysts may scan data for errors, while traders or portfolio man-
agers may review performance metrics or new information after hours or on the train
the next morning when things are quiet and they can think more clearly.
● Business tier. This middle tier covers the business logic, that is, the trading/invest-
ment strategy, housed on an application server.
● Data access tier(s). This tier includes database interactions on a database server for
historical data as well as connections to accounting and risk databases. This tier also
includes real-time data feeds and trade execution processes on a gateway server(s).

Tiers provide a way of grouping different parts of the software architecture. For maintain-
ability, it is generally advisable to store the business logic of the trading/investment system
in separate objects and modules in the middle tier. Business logic that is unencumbered by
type conversions, API connections, and database rules keeps the tier divisions clean. For
reusability, it is important to segregate data access modules into distinct components.
A good design is easily adaptable to changes in the business logic or technology.
Since no design can be infinitely flexible, a good design groups things that are likely to
change together and hides them from the rest of the system. Changes then will only have
a local impact. A good development process helps the team get the basics right, and then
lets the details and new discoveries evolve. Successful teams nevertheless plan on regular
refactoring to keep the architecture up to date.
Multitier architectures facilitate software design since each tier is built, tested, and run
on its own separate platform. This allows the development team to program different tiers
Free download pdf