Backtesting software ideas

Discussion in 'App Development' started by cjbuckley4, Sep 25, 2014.

  1. cjbuckley4

    cjbuckley4

    Yeah. TradeLink generally gets solid reviews, but it doesn't really serve a few of my specific needs. I need to take a class in software engineering, because I have really no idea how to manage a real project outside of our little assignments in school. Maybe I'll find one online. A quick Google of 'Agile' seems to hammer home some of your sentiments.
     
    #31     Dec 2, 2014
  2. fan27

    fan27

    What has helped me with backtesting software I have written is to have in my mind what I need to be able to do. For me, I wanted to be able to combine multiple time frames in a single backtest and I wanted to build strategies directly from the ticker's chart. My project is web based, so I started prototyping with php/mySQL and an open source trader library (http://pecl.php.net/package/trader/0.3.0) and built quick prototypes just to prove that a given technique would meet a requirement I had for the project. Once I proved that everything I wanted to do could be done with the technologies I chose, I began to build the product in earnest.

    Happy coding!
    fan27
     
    #32     Dec 3, 2014
    cjbuckley4 likes this.
  3. I'm back after a few iterations. I now have two systems. The time based strategy that processes every minute is now a huge SQL script. It takes all my tick data, builds bars, computes intermediate data, and spits out trades for a bunch of different parameters all in one CTE (not quite as big as the 5000 line beasts I inherited at work). The query did take 40 hours on the 2 core Azure, but probably because Azure's disks are slower than me reading a book by hand.

    The other system is purely ticks based. There's a Market object that does everything:
    • reads ticks
    • pipes ticks to everything that wants it
    • evaluates the entry strategies to see if they want to enter
    • evaluates the exit strategies to see if they want to exit
    • saves the results
    I've also split the strategies into multiple interfaces:
    • IEntryStrategy - knows how it wants to open a position with what kind of exit strategy
    • IExitStrategy - knows to close position or not
    • ITicker - wants to receive ticks
    • IIndicator - can compute values for others
    • IRequireIndicators - specifies the indicators that it needs
    I am most excited about the way Indicators work (probably because it's my latest development). I was having trouble with every strategy recomputing similar values since they have similar parameters. Now I can share those intermediate values. IRequireIndicators was needed so that I don't need to register all these indicators separately for each strategy. The market can query the strategy for its requirements.
     
    #33     Dec 27, 2014