Discussion in 'Options' started by Jahajee, Aug 14, 2008.

  1. For backtesting OPTIONS: I am designing a program, written in C++, mySQL, with a bit of PERL for scripts, if necessary.

    Well, I know, this is not a trivial matter but I have designed and written a system to test trading systems, on a Red Hat Linux platform, for Stocks and Futures. Very fast, with a graphical interface to view trades on daily and intra charts. So far, there are about 40 systems in individual C++ files (gcc language), an Analytics library, and an Engine library.

    Having looked at existing Options backtesting software (there isn't any genuine software out there except for a few 'what if' packages), I am considering designing and writing a system to backtest options, similar to the one I have written for Stocks and Futures.

    The basic process is take a options data file or files; write the spread code in C++; get the optimizable parameters from user; run the system on the data for each set of parameters; do the trade analysis, write trades to csv file to be viewed in a spreadsheet etc, draw charts on demand etc

    I want to start with spreads - let's say vertical spreads. What would be the optimizable parameters to do this? Your comments?
  2. i am not sure what you mean by optimized parameter. But before you start, you may want to think about how to design a realistic order fullfilment module for options, otherwise you will just be wasting time.

    I was able to create a very accurate backtesting system for es mini with about 10 years of historical tick data quite easily in java. But tried for quite a few weeks to do the same for es mini options and couldnt due to 1) the quality of the historical options data 2) most important - difficulty to create an accurate order fullfilment module. For example if you put in a vertical spread, each of the leg has a 0.75 bid/ask gap according to your backtest data, so the combo now has a 1.5 gap. How do you design the order module to fill this order? 1.5 gap on a 10 pt combo is very significant. Also does your data already has the greeks, or do you plan to calculate them yourself on the fly.