Early Days

When I first started playing with automated investment strategies in 2011, I nicknamed the project PerlStock, as my first implementation was in Perl. It was a fun project, with the following key features:

  • download of quotes from Yahoo! finance
  • event-driven backtesting engine, calculating various indicators on daily bars
  • portfolio-oriented algorithm, selecting 10 stocks from a universe of about 200 names, and weighting them to achieve performance and risk objectives
  • reporting engine, exporting backtesting result to Excel

A new venture

After promising simulations, it was time to prove the concepts in live trading in 2012. The project has undergone several rewrites since, leaving not a single line of code from the original project in place. However, the key concepts of this first venture into day-trading remain valid to this day, leading to the decision to start a new business with it’s own website in early 2018:
Say hello to Bertram Solutions!

Yet another backtesting engine

Later in 2018, and after being frustrated with the limitations commercial backtesting engines have, I decided once more to roll my own. This time, it is written in C#, and named TuringTrader in admiration of Alan Turing. A quick summary of TuringTrader’s key features:

  • Simple Windows Desktop UI for interactive sessions
  • Import data in various CSV formats and with configurable column-mapping
  • Automatic download/ update of data files from IQFeed, Yahoo, and Stooq
  • Query account summary and positions from Interactive Brokers
  • Calculate indicators, with a growing library of standard indicators
  • Simulate equity trades, and portfolios of equities. Currently market and stop orders are supported
  • Simulate option trades. Currently this is limited to cash-settled European-style options
  • Create fully customized Excel reports with just a few lines of VBA
  • Create fully customized R reports, either in straight R, or with RMarkdown
  • Strong focus on easy-to-use time-series APIs, to make coding a breeze
  • Multi-threaded optimizer engine, able to utilize all available CPU cores
  • Demo algorithms to shorten learning curve
  • API documentation, and quick start guide, as Windows help file
  • Production quality code, actively maintained, and tested

I am quite confident in this project, and as of November 2018, pretty much all of Bertram Solutions’ R&D runs on TuringTrader, most notably all of our Model Portfolios.