Backtesting platforms

Discussion in 'Trading Software' started by fan27, Jul 1, 2014.

  1. fan27

    fan27

    I am looking for a back testing platform primarily for EOD data. I have some very specific requirements. I write software so I am not adverse to writing my own, but I do not want to reinvent the wheel. My .NET skills are strong and I have not written C/C++ in quite awhile, so I would prefer something .NET related. Performance is not a huge factor as this is mainly going to be for EOD data.

    Any suggestions would be appreciated.

    1. Need to be able to back test multiple strategies at once.
    2. When back testing Daily data for example, I want to be able to know about the monthly data (i.e. On this daily bar, the previous month was a 12 month high).
    3. Support for holidays with the ability to add my own (i.e. buy 5 days before July 4th and sell the next trading day after the holiday)
    4. Ability code my own rules.
    5. Ability to code inter-market strategies (i.e. if Gold and the S&P are up big over the past x number of days, then buy the S&P.
    6. Ability to build a Relative strength system (i.e. based on a custom function, the top N tickers are selected)

    Requirements 2-6 do not need to be available out of box, the platform just needs to be flexible enough to allow me to implement them myself.

    thanks!
    fan27
     
  2. ehsmama

    ehsmama

    Look at TradingBlox
     
  3. Nonsense!
     
  4. fan27

    fan27

    Thanks for the responses thus far.

    Another thing I would like to be able to do is test different combinations of conditions programmatically. For example, say I have condition 1,2,3,4. I don't want to have to go in and manually run a test for each different combination. I would rather run each combination (I can determine the combinations in code I write), have access to key statistics (at run time) of each iteration to be written as output.

    fan27
     
  5. a5519

    a5519

    For EOD at the moment may be the best is Amibroker. You can do everything what you listed. If not directly in AB then using plugin.

    o) Very active development and user community
    o) Has open API
    o) Very fast in backtesting and optimization
     
  6. fan27

    fan27

    TradingBlox looks interesting. The others mentioned have some cool features, but like most software packages you are going to hit a wall where you want to do something but can't.

    I have been using a web based app I wrote myself that utilizes TA-LIB wrapped in PHP. I have been considering to switching to an off the shelg solution but I have grown to use to being able to build what I want. I think the approach I am going to take is look for libraries I can access from PHP (I can put a wrapper on them if I have to) and continue down my current path of building out my web tool.

    thanks for the replies.

    fan27
     
  7. ST.M

    ST.M

    Just curious but what walls do you hit?
     
  8. fan27

    fan27

    The following are problems I have already solved with my tool that other tools I have looked at can't do (if you know of a tool that can do these things, please let me know).

    1. Conditional statement with multiple time frames:
    i.e. DailyClose < LowerBollingerBand and MonthlyClose one month ago is 12-month high

    2. Click on a point on a chart and have all of the conditions true for that point load in a separate window. From there I can select the conditions and back test.

    Here are some things I would like to do but am yet to see other tools that can do it or allow me to easily to do it with my own code. The following would not be difficult to add to my tool.

    3. Build a condition with multiple tickers:
    DailyClose-Ticker1 Is Down Big and DailyClose-Ticker2 is Up Big

    4. The typical approach for developing strategies goes like this:
    a. develop theory (i.e. buying SPY on a pull back while in an uptrend is profitable)
    b. manually construct technical conditions that reflects that pattern
    c. back test pattern with tool
    d. repeat b and c with new conditions until the conditions/exit criteria selected is profitable.

    What I would rather do is:
    a. develop theory (i.e. buying SPY on a pull back while in an uptrend is profitable)
    b. add all conditions to system that could possibly reflect that pattern (i.e. Close > someMovingAvg, 12month high one month ago, close < lower bollinger band, etc).
    c. Have the tool iterate over the different combinations of those conditions with different parameters and let me know which combinations yield a positive result.

    So essentially the machine is doing the b-c loop for me.

    The reason I started researching other tools is because I just don't have much free time to build out my tool. Having a baby will do that for you. My next move is to find someone that can help out with the front end web development who would be interested in being co-owner of the web app.

    thanks
    fan27
     
  9. sounds like you'll need some sort of ML algo, that iterates over b-c optimizing through something like gradient descent, or genetics or forests?
     
    #10     Jul 4, 2014