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

(Michael S) #1
immediate feedback. Steve McConnell in his book Rapid Development lists the following
construction fundamentals:

● Coding practices, such as variable and function naming, and documenting code.
● Data-related concepts, such as scope, persistence, and binding time.
● Guidelines for using specific types of data, such as integers, enums, and pointers.
● Control-related concepts, such as using conditionals and loops, and controlling
complexity.
● Assertions and other code-centered error-detection practices.
● Rules for packaging code into routines, modules, classes, and files.
● Unit-testing and debugging practices.
● Integration strategies.
● Code-tuning strategies and practices.
● The ins and outs of the programming language.
● Use of construction tools, such as development environments, source-code control,
and code libraries.^1

Good fundamentals mandate code documentation. Further, the development team
must produce a user manual. These are best produced along the way rather than at
the end. Together, these documents will allow a junior trader to operate the system
and a junior programmer to maintain it. (Of course, since trading/investment systems
are proprietary, complete user and code documentation should not include sensitive
information.)
The team also needs to update other documents started in previous stages. The data
maps continue to grow to clearly show the calculation of each data field and where it
came from and where it is used. As development progresses, the product team may
request additional user interfaces or reporting features. GUI documentation will grow to
include a screen shot of each form, the data item displayed in each field, and a data map
that maps the data back to a calculation, data table, or data feed. The development team
should also document error handling mechanisms, including a discussion of all known
issues that have been addressed.
In the end, following good construction and documentation fundamentals is good
operational risk management as well as a time-saving practice. Good coding and good
documentation improve predictability and control over implementing trading/investment
systems and increase the odds of delivering on time and under budget.^2

22.1. Programming Considerations


Generally, we recommend business logic objects and modules be broken down in an
instrument-centric fashion, that is, starting from the tradable instruments. A futures con-
tract is a tradable instrument, as is a stock or an option. All of these can be objects in a
program. (OOP enables the developer to organize large programs logically and perform
very large and complex tasks with fewer lines of code.)

206 CHAPTER ◆ 2 2 Build and Document the System

Free download pdf