Home > EMS Internals, strategy development, technology > StratParts: a strategy component model

StratParts: a strategy component model

April 12th, 2008

StratParts we've implemented

Our algorithmic trading platform, StratBox, features a unique strategy component model that supports the modular development and re-use of “pieces” - we call them StratParts – of a quantitative trading strategy. StratParts expose metadata which can be manipulated by a human or software agent (e.g., a trader, an optimizer, a regime-switching protocol). A StratPart might be an entire strategy, a risk management component, a graphical or reporting component or really whatever a trader might envision. StratParts can be composed within the StratBox GUI to create a strategy which can be tested, analyzed and executed. Naturally, users can create their own StratParts which integrate seamlessly with the environment.

For a software developer it’s a clear enough idea, but for traders it can be a bit hard to understand. Recently I put together a list of some of the StratParts we deliver with our system for a prospective client and thought others might find it interesting. Click on the above image to get a 2-page pdf briefly describing them. The list is not an exhaustive one, but contains the StratParts we might show a prospective client or trading partner in a demo of the system. Thus, it’s meant to convey the breadth of strategy which can be developed within our system – from high-frequency market making algorithms to portfolio rotation models.

It also illustrates the different frequencies on which strategies can be tested and executed – from daily or intraday candlesticks/bars down to tick data with market depth. The system will adapt to the desired data frequency and the exchange simulator will adjust its execution policies to provide the best possible simulation given a data frequency.

The re-use quotient is also very significant. Scheduling, allocation, risk management, reporting and other functions common to many strategies can be implemented as StratParts and then applied in different combinations for different behaviors.

Probably the greatest (and quite possibly only!) academic influence I experienced at UC Berkeley was from philosophy Prof John Searle who argued that consciousness was essentially an emergent property of sufficiently complex systems. (Apologies for over-simplifying a complex argument/topic.) This idea that such a rich characteristic might emerge coherently from relatively humble origins has long inspired my software aspirations – just like the game of life or Wolfram’s Automata illustrate.

While there’s certainly not even a faint whiff of consciousness in StratParts, their recombinant composability does yield some powerful emergent properties beyond their reuse. They can be injected into running strategies and they can be manipulated by other StratParts dynamically. An example of the former behavior is our implementation of a “Don’t Panic” button through which each running strategy is euthanized by an injected StratPart which disables all of the constituent StratParts within the Strategy and then provides an orderly exit from the markets. The latter behavior might provide the basis for a dynamic regime-switching model. StratParts can also be encrypted and distributed such that secure ASP-type trading models can be supported ala Amazon Elastic Compute Cloud (EC2).

Truth is, we’re constantly discovering new ideas for StratParts and one of the great pleasures of showing our system to people is that they’ll almost uniformly have some creative suggestions on StratParts we might try or how we might apply them in novel ways.

EMS Internals, strategy development, technology