TickZOOM Decision. Open Source and FREE!

Discussion in 'Trading Software' started by greaterreturn, Dec 15, 2008.

Thread Status:
Not open for further replies.
  1. The people have spoken!

    Thanks for all the comments and advice on the prior thread.

    Now, after getting legal advice this morning, the final decision is to release
    TickZOOM under the GPLv3 open source license.

    Later, the project has the goal to become a world class open source
    system with full time support staff and developers--much like
    the direction of the MySQL open source project.

    What is TickZOOM? A website at http://www.tickzoom.org is being
    constructed, as we speak, for documentation, example code, road map,
    wiki, issue tracking, forums, and access to the code.
    Another post in this thread will notify when it's ready. E.T.A.: 2 weeks.

    Please comment on the second draft of the project road map.

    That will be posted next.

  2. TickZOOM Project Descripton

    TickZoom is an open source, black box testing and trading engine.

    It is written in C# with a native Java version under development.

    The major features of TickZoom:

    (These features already exist. See the road map below to review or suggest additional features.)

    1. Built from the ground up to "zoom" through millions or billions of ticks.
    2. Comes with a reference GUI and charting but you can make your own.
    3. Use any combination bar intervals simultaneously.
    4. Run a portfolio of custom strategies against the same instrument.
    5. Easily incorporate built-in or customized money management and exit strategies.
    6. TickZoom runs in multiple modes:
    a. Historical test.
    b. Market replay.
    c. Optimization.
    d. Demo account
    e. Live or demo trading with real time chart.
    f. Live or demo trading on execution server.
    7. It reports all major industry statistics on system performance.
    8. Use dual or quad core during optimization for 2 X or 4 X speed.
    9. Genetic Algorithm optimization included.
    10. Custom strategies benefit from EasyLanguage-like features built-in:
    A. This makes it relatively simple to convert existing EasyLanguage code.
    B. And makes it much easier to create new custom strategies.
    11. It's a clean modular interface and design so you can extend, add-on,
    and make plug-ins.
    12. Uses automated regression testing for greater reliability and fewer bugs.
    12. Best of all, it's open source and FREE.

    The different components:

    1. The TickZOOM engine.
    2. The TickZOOM quote server.
    (The following are built on top of the TickZOOM engine.)
    3. Simple Graphical User Applicationi with charting.
    4. The TickZOOM execution server for live or demo black box trading.


    Q: Does it support non-programmers?
    A: TickZoom has features to make it much easier to create custom strategies
    and indicators in C# (or Java soon) and makes it relatively easy to convert
    EasyLanguage code. Still knowledge of programming is extremely helpful.
    Q: How well does it perform?
    A: As an example. On a single CPU running one test on 5 years of GAIN financial tick
    data with 10 million ticks. TickZOOM loads data and completes the test with
    charting in 40 seconds.
    A: Are there ways to make it even faster?
    Many things are in the works to accelerate the speed. Most significant will be a design that multiple CPUs even on a single test. (Currently TickZOOM only uses multi CPUs during optimization.)

    TickZOOM Project Road Map

    Future Direction (Ideas Welcome!)

    1. Currently adding access to unlimited symbols in custom strategies.
    2. Will port to the Java language for cheaper Linux server infrastructure options.
    3. Will add support for redundant, clustered servers with fail over ability.

    Pricing and License Open Source and FREE under GPLv3.
  3. Now on update on progress for releasing.

    Over the weekend I updated all the automated regression testing.

    Also, I added in streaming technology for loading tick data. That way, memory will never be a limitation and strategies start running instantly.

    So imagine you want to run a test on 10 symbols with 100 million ticks each. Without streaming, it could take several minutes just to read all those gigabytes from disk into memory.

    With streaming, the test runs instantly.

    The main reason I added this right now before release was to speed up the automated regressions tests. That way, if you want to make changes to the code, you can run the tests to make sure you don't break anything.

    The tests got out-of-date because they took so long to run each time. That was because they actually loaded enough tick data to test all the bar intervals, the statistics, strategies, some of the indicators, etc.

    Now the whole thing takes mere seconds to run due to the streaming technology. That makes is easier to run the test after every change to the software.

  4. jprad


    Congrats and best of luck.
  5. Thank you.

    And thanks to you especially for pointing out other issues. You were right about getting legal advice. It implifies everything.

    Now I can focus on coding!

  6. Hey, just tried going to the site www.tickzoom.org, and it ask for a username and password. Is it supposed to do this?
  7. Well, yes because it's empty except my daughter made a logo for it.

    Next, she is going to copy the posts about TickZOOM on elitetrader and organize them into topics with FAQ format.

    By the way, the site is based on Trac and Subversion with WebDAV. In laymen terms, it will have a Wiki with documentation with charts and examples, Issue tracking, Web Browsing of source code, and source code repository.

    We hope to have it open this weekend.

  8. Wayne - Here is an interesting product that ports Matlab over to process the code on the GPU to speed it up considerably.

    While the technical challanges are way beyond my capabilities, their approach is interesting in how simple & powerful it is for the user.


    Any thoughts on doing something technically similar to this for TickZoom to allow the code to be run on the GPU?

  9. Interesting. Can you explain why you feel this will be useful?

    Allow me to make an argument why that looks like a very low priority. And I welcome your further explanation or showing if I missed something.


    Let's say you compare 2 systems for test with tick data.

    1. First system has GDI support so it only takes 10 millis to display the chart but requires 10 minutes to test 6 months of tick data on a single instrument

    On the other hand,

    2. The other system takes 1 second to to display the chart (100 X slower) but only takes 45 seconds to process tick data going back 5 full years.

    In these scenario, don't you agree we need to focus technology efforts on reducing the tick processing time as a priority over graphics?

    The goal of TickZOOM is to process 5 years of tick data in under 1 second.

    That's because if you test say 15 instruments, it means 15 seconds per test.

    And, say you want to optimize your money management and run 100 iterations of that perhaps using the Genetic Algorithm, it will take 1,500 seconds or 25 minutes instead of many hours or days otherwise.

    Right now TickZOOM takes 40 seconds for 1 instrument for 5 years. That's VERY fast. But that means a month or more to run the same test example of many instruments and 100 iterations.

    To get to that point, TickZOOM will add multi processing support so that you can use 2 PCs to double the speed.

    TickZOOM will have that ability in the near future to get as many PC's as you want to run optimizations in a split second. We plan to port to Java which will make it cheaper to do all this.

    I'm even considering setting up a server farm for users that people can subscribe to. That way you could have access to say 100 CPUs to process tests against. That could work since nobody tests constantly and with so many CPUs everybodies tests would be finished in mere seconds.

    How's that for a cool idea?

    Hey, it's cool when software is free, it forces me to think of more creative and useful ideas for services to pay for good quality support staff.

  10. Just an update. Due to a few PMs and reviewing the original thread on TickZOOM, I decided to focus efforts on getting TickZOOM ready to release rather than focus on research my own trading strategies. Why?

    It's clear TickZOOM benefits me too by all the ideas input and other community participation.

    For example, Pippi asked about the memory limit in NeoTicker, whether TickZOOM had the same problem.

    And that got me thinking and of course, I eliminated the memory problem but it had a bigger advantage than I realized. It also eliminated the load time for each test. That not only makes it quickly using it, but also runs my regression tests several times faster. SPEED is cool isn't it?

    My current trading system will continue to run live in the execution server. After all, it makes money, just not as fast as I would like with my small account size. *smile*

    We're making good progress to still get TickZOOM ready around the time for the holidays.

    #10     Dec 16, 2008
Thread Status:
Not open for further replies.