Saturday, January 25, 2014

Backtesting System V1

Most of my focus during the last year, was spent on the backtesting engine for multi-legged options strategies.  Backtesting of six legged options strategies with start dates at approximately 60 DTE will run in less than two minutes for nine years worth of trades.  This application:
  • Is written in Java (1.7), using the following libraries:
    • commons-collections-3.2.1.jar
    • commons-configuration-1.9.jar
    • commons-dbutils-1.5.jar
    • commons-io-2.4.jar
    • commons-lang-2.6.jar
    • commons-logging-1.1.1.jar
    • guava-14.0-rc1.jar
    • joda-time-2.1.jar
    • log4j-1.2.17.jar
    • mysql-connector-java-5.1.22-bin.jar
  • Runs in Eclipse Juno (4.2) and Keppler (4.3) 
  • Uses property files for strategy and database settings
  • Uses data stored in MySQL (5.5.29):
    • Because of the amount of historical options data, there is a table for each symbol:
    • Contains two utility tables:
      • market_holidays
        • List of market holidays: Jan-1-2000 to Dec-31-2014
      • optionsexpirations
        • List of monthly expirations: Jan-1-2000 to Dec-31-2014
    • The historical data from iVolatility is the most current, with options data spanning from Jan-4-2006 to Dec-20-2013.