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

(Michael S) #1

107


Suppose a trading system was thought to consist of about 1000 function points.
It would take about 125,000 lines of C code to implement the trading system, 50,000 lines
of C code, or 6000 lines of Excel code. When developing evolutionary prototypes of
trading systems, where time-to-market is paramount, this translates into a significant sav-
ing of time over each loop. Where an iteration using C might take two months, it might
take two days using Excel. For maximum development speed, trading firms generally
use the language with the highest level. Excel and MATLAB, however, usually lack ade-
quate performance for full-scale trading systems, constrain flexibility, and are limited by
quality-related problems. We recommend product teams use these RDLs as prototyping
platforms. 3,4,5

10.2. Prototyping Components


Prototyping is an exploratory, iterative process. System components should evolve toward
a complete prototype as the product team loops through Stage 1. In later stages, the full
trading system will be built and implemented in a traditional programming language,
using nonprototyping approaches. In this stage, though, developers should not give pro-
totypes a robustness they do not need, nor should they waste time working on prototypes
with no clear direction—the direction is a complete, consolidated trading system proto-
type. Prototypes should generally be designed to handle only the nominal cases, not all
cases or exceptional ones. Prototypes enable developers to explore design alternatives
allowing them to learn lessons the cheap way. Prototyping provides for:

1. Clear definitions of algorithms. Building a prototype forces the team to clearly
define and formulate calculations. If the team cannot explain the system well
enough to build a prototype, then there is little chance that they will be able to
build the working tools. Also, prototypes are needed before implementation for
verification.
2. Clear definition of data requirements. Prototypes will bring into focus what
data inputs are needed for implementation and what outputs a working system will
produce.
3. Requirements for graphical user interfaces. This forces discussion about how
humans will interact with the software components of the trading/investment
system. The purpose of UI prototyping is to ensure that the operator can change
dynamic inputs and states, shut down, turn on/off, and select instruments or
exchanges.
4. Development of a working application for regression testing against at least
one product. This is very important for programming teams since words can be
misunderstood.

As we have said, Excel, Resolver, and MATLAB are excellent tools for prototyping
component algorithms and trading systems. A component prototype is a unit or portion
of a complete system. Developers should keep in mind, though, that prototypes in Excel
and MATLAB should be programmed with an eye toward later conversion into object-
oriented, programming code, like C or C#. So, Excel and VBA functions and algorithms
should be fully documented and functions should be C-style and procedural in nature and
neither static nor instance methods as classes defined at this stage, which may conflict
with a more preferable architecture at a later development stage.

10.2. PROTOTYPING COMPONENTS
Free download pdf