Trade Strategist

Trade Strategist is software for modelling the stock market. Written for the Mac with the Cocoa programming framework, Trade Strategist includes many of the functions and indicators found in the financial field of Technical Analysis. You can chart these functions, or combine them into trading strategies, which generate signals to buy or sell stock.

These strategies can be tested on historical price data downloaded freely from the web. Trade Strategist takes the strategies and performs virtual trading over a period of time in the past. You get to see how much you would have made or lost adopting the strategy. It’s a bit like paper trading at high speed!

A common problem faced by amateur and semi-professional traders is a lack of faith in their trading approach. Frequently this comes about as the result of a poorly-defined trading strategy. Relying too much on trader psychology frequently leads to grief in the markets. Trade Strategist allows you to define a mechanical trading strategy, which excludes trader psychology from the equation. It’s also a great way to learn Technical Analysis if you have no experience with this field of finance.


Narrative is the plotting framework used in Trade Strategist. It is written in Objective-C, using Apple’s Cocoa framework. You can use it to create 2D plots in Cocoa applications, such as line plots, scatter plots, and histograms.

Narrative has been released under the Lesser Gnu Public License (LGPL). This means you can use it in your own software, but should you make any changes to the Narrative source code, you have to make them publicly available. You are not required to release the source of any program using the Narrative library.


Amsterdam Density Functional (ADF) is software for performing Quantum Chemistry calculations with Density Functional Theory. The energy and molecular orbitals of a molecule or surface can be calculated, even for systems with hundreds of atoms.

ADF was initially developed by Prof. Evert Jan Baerends at the Vrije Universiteit in Amsterdam. These days it is maintained by a company attached to the Baerends group: Scientific Computing and Modelling (SCM). SCM ensures the software is available on the most relevant platforms, organises new development efforts, and integrates contributed code into the ADF package. They also take care of commercial activities like the sale of ADF.

My involvement with ADF is as a researcher in the Baerends group. A significant portion of my time is spent developing ADF. My recent development efforts have centered around Geometry Optimization, and smoothing of the gradients calculated by ADF.

ADF is a commerical package, but trial licenses are available here for most scientific platforms, including Intel-based systems, with Linux or Windows, and Mac OS X. Graphical tools are also available.


The best way to describe Dynasity is a multitrack 4D visualization application for Mac OS X. Based on the Visualization Toolkit (VTK), a free platform-independent visualization library written in C++, Dynasity allows you to visualize molecules, isosurfaces, and volumes. The data used could derive from any scientific field, but initial development has concentrated on chemistry.

The ‘4D’ referred to above includes 3 spatial dimensions, and a 4th dimension, which would usually be time. In other words, Dynasity makes movies, which can even be captured as Quicktime movies for presentations and web sites. Still captures are also possible.

The multitrack aspect of Dynasity refers to the fact that you can add as many differnt visualization tracks as you like. Each track is free to use its own data, or share data with other tracks. There is no restriction on what a track displays, so it is possible, for example, to superimpose one or more isosurfaces over a molecule. You can even control the color and transparency of each isosurface separately.

Dynasity has been written in Cocoa, and is based on a plugin architecture to simplify specialization and extension. Plugins can be written to read data of any format, and to filter data that has been read in.

Dynasity is not currently available to the public, but if you wish to express your interest in this software, you can write to me here.


Periphery is my latest development project. When completed, it will solve the quantum dynamics of molecular scattering at surfaces. Inelastic and reactive scattering will be included, and both time-independent (e.g. coupled-channel R-Matrix propagation) and time-dependent (e.g.wavepacket methods) will be adopted.

What makes Periphery unusual is not the methods it utilizes, though the plan is to support a particularly wide variety of them, but the software development processes used. Periphery will be written in C++, utilizing the latest object-oriented and generic programming techniques, and adopting modern software development approaches not typically seen in scientific programming. Unit testing, source control management (with Subversion), XML configuration files, and platform-independent hierarchical data files are just a few examples.


The Quantum Dynamics Tool Kit (QuaDTK) is a Fortran 90 program that I wrote to solve the gas-phase HOCO reaction. QuaDTK implements a quantum wavepacket method, with Discrete-Variable Representations (DVRs), Fast-Fourier Transforms (FFTs), and the Split-Operator Propagator. It is a structured program, utilizing Abstract Data Types (ADTs), and is parallelized for shared-memory architectures using OpenMP.


The Classical And Semiclassical Trajectory (C.A.S.T.) program performs classical trajectory calculations for diatomic molecules reacting on surfaces. It also includes an implementation of the Herman-Kluk semiclassical propagator, an Initial Value Representation (IVR) method.