Shogun - Java Back Testing Utility

Discussion in 'Automated Trading' started by shon, Oct 14, 2004.

  1. shon


    I have a very nice java back testing utility that I have developed. It is based on an engine where you can define Indicators and TradingMethods, and then apply the TradingMethod to some set of historical data. It then trades as a proxy and accumulates results that let you see how your method would have done. Also, it has a "best" mode where you can run through a series of parameters (such as different values for MAs or Stop Losses, etc.) and find which combinations work the best.

    At the present time, it is not suited to non-programmers. However, if you happen to be a programmer and a Java developer, then this might be for you. Maybe with some good help we can get it to a public domain linux-type-of-license thing.

    So here's the deal. If you're a programmer and are willing to do a little work every now and then on it (like add an indicator, a GUI, etc. etc.) I will send you a copy of it. Take a look at it, play around with it, and contact me to arrange to work on a "specific thing". Then send it back in, I'll consolidate all the pieces and then for the next revision, you'll get a package with x-improvements (where x is the number of people working on it). So, as you can see, it could be quite worthwhile.

    Just send me an email if interested, or leave a reply here.
    Good luck trading.
  2. Have you thought about moving the indicators into scripted versions, or at least having capability of adding new indicators with scripts ? That would save you a lot of re-working, if you have an easy API for doing the indicators from scripts.

    I use the Groovy script language now, but used BeanShell earlier.
    I do not have much of the normal indicators added, just EMA and MA. I do plan to have them all into scripts though.

    I use "painters"/"decorators" metafor which can be added ad nauseum with a "block-map" for seeing which areas are already "decorated" on charts and priceladder.

    I'm usually too busy trading to do any susbstantial programming, although I do some spurts now and then on my own shabby shack of a program. :)

    What kind of brokers are you interfaced to, or do you use datafiles only ?

    Tip: take a look on the latest QT/QuoteTracker threads, also matlab threads, for some interesting ideas. Linking to QT would give you a whole host of supported sources - even for backfills.
  3. Cimballi


    Excellent suggestion, Shon. I am doing my programming in Java as well, so maybe we could marry our efforts and team up. On another note, you maybe know actiTrader? The guys behind have recently released their backtesting engine, also in Java, into the Open Source. You find it here

    I am curious to know overlaps and differences between your engine and theirs. Maybe you could check out actiTrader and let us know.

  4. robbob


    Hi Shon,
    I'd be interested as well. Maybe you could get a project going on

    I've also worked on a backtesting engine in Java that used genetic algorithms for optimization. I had quite a few indicators, but I haven't worked on it in almost a year. Would be interesting to see what could be ported over.

  5. Another tip for anyone interested:
    When I first started designing my charting etc. I wanted transparent indicators so that at least some (2-3) of them could be overlapping or stacked on top of each other. The problem I found was that I were using BeanShell scripts which were quite slow (many times slower than the byte-compiled classes), and I was eager to optimize a lot.

    I tried going for VolatileImage (which has accelerated video memory blitting, handling), but the transparent-support was not included on the 1.4.2 JDK - and only scheduled in 1.5 Tiger. Well, now I'm running Tiger, but haven't bothered changing to transparent indicators yet. I also played with JOGL (direct OpenGL interface) but it was getting way to complex for what I wanted to achieve.

    Anyhow, the VolatileImages are now almost always applied when possible in Swing etc. and you can get fast transparency if wanted ... so give JSE 5.0 a shot if you haven't - it executes a lot faster too. :)
  6. what up guys?

    I can do some work on this if it's still poppin.
  7. Are you referring to VolatileImage on Windows or X11 ? I found alpha transparency to be woefully slow on X11, but I havn't revisited with J2SE 5.0 on X11. I think there's some more work being done on this with Mustang (6.0) and OpenGL, so things nay improve further.
  8. hi everybody, sound great. I am just a newbie in fx and automated trading, however, me is a experienced java programmer, and would like to contribuite my effort, do anyone can give me some guildline at first and team up together?