Genius Trader Development

Licensing Terms

You can use the code under the terms of the General Public License (version 2 or, at your option, any later version).

Obtaining source code

The code is managed via Subversion. The subdirs GT/ and Scripts/ are all you need are all you need for an operational GeniusTrader installation on a *nix like OS. We recommend installing in a common parent directory:

For a wintel OS you might need to add the Windows_Installer/ subdir.

You can browse the entire subversion tree online.


Tarballs (*.tar.gz) can be generated on the fly directly from the svn server via websvn. Get both the GT and Scripts subdirs from whichever branch you prefer.

svn repo clones

NOTICE: if your svn client issues a message like:
Error validating server certificate for '':

We encourage you to validate that the server is the correct server by putting your svn URL into a trusted web browser

If your browser accepts the certificate you can trust the server much like you would any other HTTPS site. Once validated you can go back to your Subversion request and instruct the client to permanently (or just temporarily) store the SSL certificate locally so you won't be prompted again until the cert is updated.

The GeniusTrader subversion repository is available via anonymous access. To clone the entire GT repo

svn co geniustrader

But that isn't really necessary (is really a huge waste of disk-space). Instead you can clone from a particular branch just the two (or three) subdirs you need using commands like these:

svn checkout geniustrader/GT
svn checkout geniustrader/Scripts

We recommend you use either the current trunk HEAD as shown above or the exp branch HEAD using this base url:

OK I've Got the Source! Now What?

Once you have the code you still have to go through some steps to configure a working installation. Follow the instructions here. Use the geniustrader-devel mailing list for any additional help only after you have rtfm available in the form of perl pod in most of the GT files, the GT/Docs dir and on the GT website.

Development Status

GeniusTrader is already usable but it still evolves at a pace with regular changes possibly resulting in breakage in various parts of the code. So bug reports are especially welcome.

Please use the geniustrader-devel mailing list to report any bugs or problems you encounter. When reporting a bug please provide all the data that we will need in order to duplicate the problem. Consider the GT configuration and market prices data that you've got that we necessarily don't have. Whenever possible try to duplicate the problem using the sample text based prices data and code '13000'.

Contributions are always welcome because we always have more ideas than time to implement them. :-)

Mailing lists

The coordination of the development happens on a mailing list You're invited to join and to participate in the discussions. To subscribe use the form here. Use this message list for general discussions on anything GeniusTrader. That's where you submit patches and ideas for improving GeniusTrader. Also you can probably find some help there (in particular if you want to contribute later)...

If you're not interested in the development of GeniusTrader but you have a strong interest in systematic trading, then you're welcome to join where you can exchange your ideas and research with other people. To subscribe to that list use this form.

Both lists are archived on the GT sourceforge project page under the 'Mailing Lists' tab:

Mailing lists

GeniusTrader Internals

There is no single document giving an overview of GeniusTrader internals. However each object is documented in the source code (with POD) and you can browse the GT toolkit API documentation to learn more about it. In order to help you have a global view of GeniusTrader before digging into it, you should study this object/module schema diagram:

Gross overview of GeniusTrader architecture

You should also know that each customizable object has access to various informations including many indicators, signals and whatever can be computed with history of prices and volume (and possibly some external meta-data information). Keep in mind that this representation of GeniusTrader's architecture is incomplete and is not always 100% accurate (some simplifications have been made), but it gives you a good overview of how things are working together.

Here is another version of a functional object/data flow diagram depicting GT processing a trading system.

Gross overview of GeniusTrader architecture