Home > Tools of the Trade > Trading Software > Tickzoom release - pathetic

Tickzoom release - pathetic

  1. what the hell is going on with this release? every single day it was posponed and now apparently it has been released yet the download page has disappeared on the site.. just pathetic

    scarey if you're going to rely on it..

    I'm moving on..
  2. it worked with me without problems (you need to register first).

    go to the destination where you want to have the files, then:

    svn checkout https://wush.net/svn/tickzoom/trunk/TickZoom tickzoom

    (tickzoom is the name of the folder where the files will be located, so you could also give it a different name)
  3. aha.. will do

    how did you find it? any good?

  4. btw, you need to install the svn stuff first, as described on the homepage. but you don't need the gui, you can manage it from the console window too, e.g. as the command above.
  5. I'm not familiar with SVN what is it? what's the point of using it or distributing through it?
  6. flip

    if you're familiar with tickzoom let me ask you a question. can you describe it's database architecture? i.e. where exactly are the tick data stored and recalled from? data file?

    can all the sources be loaded up and run in visual studio ?

  7. svn is a version control system, different users can contribute their changes, new code etc., while all historical files and changes are maintained and are replicable.

    for a brief introduction:


    i haven't looked at tickzoom in detail yet, but the first impression is quite positive!
  8. batman, sorry i don't know, i even don't use windows, so i have to look whether i can run it using mono or otherwise have to organise a pc first.
  9. I'm the author. Just please be gracious as it is clearly on the site that this is "alpha" testing.

    The database architecture is very simple and must be improved. Let me be specific.

    What is awesome is that it is EXTREMELY fast to load and write tick data. That means 10s of millions of ticks on mere seconds.

    It reads ticks directly from the file in binary intro memory with a little compression on disk.

    None of the object or relational databases tested or researched could even touch that performance because they add both CPU and data overhead which severely increases the processing time and storage space required.

    The downside at the moment is that it only looks at one file at a time and the GUI is simplistic so you can't change files in the GUI. I just rename the file I want to use in the file system.

    Plus, it does a "sequential scan" to find the time range you want

    I personally converted the 5 years of tick data for USD/JPY that I had into TickZOOM format and use that for historical testing.

    Also, you can collect much better quality tick data from MB Trading (if you use them) with the TickZoom server if you wish. TickZOOM binary format includes bid/ask, last trade, size, 5 levels of DOM, etc.

    Yes. But I don't know if anyone has tried. I use SharpDevelop 3.1 which runs off .NET 3.5 but we target .NET 2.0 for compatibility with Mono.

    Everyone says they're compatible.

    Let us know.

  10. Sorry about that. It's fixed now.

    The site admins goofed it up for a while when they were fixing a separate issue that forced everyone to log in twice.

    It was something related to redirecting to tickzoom.org instead of www.tickzoom.org

    Anyway, I had the same issue you mention and it seems to be find now.

    Alpha testing does require some patience so it is understandable if people lack the time and prefer to wait till after beta.

    It will be much better at that point.


  11. You're a brave man to use Subversion in console. I always respect people who do that.

    I can't ever remember the correct command and too lazy to type.

    So I use Tortoise SVN as the site shows.

    Matter of taste, I guess.

  12. Okay, SharpeDevelop does not run on mono.

    However, Subversion works on Linux and I suppose you can use the Mono C# compiler.

    I haven't taken time to try running it on Linux yet, but if you want to coordinate a time for you to try it and rapid resolve any issues, I'm game.

    The engine, by the way, was targeted to for .NET 2.0 which is binary compatible with Mono (or so they say). Please try it and let me know any errors.

  13. SVN is primarily for progammers.

    Using SVN you get the source code and can build the code and run it.

    MOST valuable is that you can just click "update" with TortoiseSVN and instantly get any fixes or enhancements.

    I committted almost a dozen fixes last night alone. More on the way this evening.

    We will be practicing "early and often" for releases with TickZOOM.

    That means, you can have code as soon as it's available.

    That of course can cause some turbulence once a number of us are adding fixes.

    So right now everyone (during alpha) is pulling from the "trunk".

    Trunk means the latest "bleeding edge" changes.

    After Alpha testing is finished, I'll create an "alpha" version which will be fixed and stable.

    Then there will be a "stable" which is the latest stable build which has been tested.

    And of course, there will always be a "trunk" of the up-to-the minute fixes and enhancements.

    So you will have a choice at all times of getting the absolute latest, the latest stable, and any previous major versions.

    Make sense?

    The goal is to be the opposite of closed vendors who release new versions and fixes every several months.

    Instead we'll do new version on daily, hourly or weekly basis.

  14. One more note, a high priority item this week is to create a "Setup" type installer for non-programmers.

    That will greatly decrease the complexity and eliminate the need for SVN, etc.

    So by the time alpha testing is over we'll have 2 install paths. One for non-programmers and one for programmers.

    In BOTH cases, you'll have access to the latest build, stable build, or previous versions.

  15. why is the other main thread closed now?
  16. It was closed because it got way off topic from automated trading into the discussion of legalities of source code licenses.

  17. Yes it compiles in VisualStudio without problem - although not in the free VisualStudio Express because that doesn't support project sub-folders.

    I just started to dig through the code. Ill have to start figuring out the basics, for example such a simple thing how to select the model for a simulation.

    A bit more documentation about the basics would be very welcome.
  18. and now? so the project is abandoned or how is it going to continue?
  19. Wayne

    who's behind the database design for tickzoom? it sounds similar to the way HDF5 works.. will we get clear documentation on it's design on the site someday?

    can real-time data be stored? i.e. tick by tick or minute prices can be recorded?

    also does each ticker have it's own bar array? i.e. can more than 1 data series be used simultanously? for example ticker1.bar.open vs. ticker2.bar.open? for pairs/basket backtesting/trading.. another example: for ticker.bar.close do... etc checking a matrix of stock tickers and bars.

    many thanks
  20. Pippi, you're right. First to answer your question.

    Virtually everything you want to do is possible to do programmatically. And due to the elementary GUI, is most likely not possible in the GUI.

    Okay you probably figured that much out.

    For your specific question, you can look at the Form1.cs in the TickZoomGui.

    Look at the StartRun() method.

    That shows how it starts the engine for a simple historical run.

    One step is this:

    starter.ModelLoader = new ModelLoaderCustom();

    So look at ModelLoaderCustom.
    In there, you instantiate your model and set properties or variables (for optimizing) there.

    The purpose of ModelLoaderCustom is to provide how to load your model for any Starter whether Historical, RealTime, Optimize, Genetic, etc.

    Now Generally About Documentation

    First order of business with Alpha version is just to ensure that people can actually install and run the software. That kept me busy so far with rapid fixes for issues.

    That seems to be resolved for programmers. Next I'm going to whip up a "setup" program for non-programmers to try.

    Documentation is next on the priority. I'll try to get at least a start on it this weekend. In the meantime you're reduce to asking questions and reading code.

    What do you think? I feel a few short videos demonstrating the basics like what you asked would be good. The words could also be transcribed to text so they can be searched and speed read, etc. Also, any example code would be listed to copy.

    What do you think or suggest?

  21. That questions was only about the original ET thread and not about TZ itself.

    TZ is alive and well.

  22. Umm. Apparently, I'm the guilty party. *smile*

    Technically, TZ only stores and reads tick data. However, some people don't have tick data going back far enough so they plan to settle for 10 second or 1 minute data. In that case, you can convert bar data to tick data by just splitting each bar into 4 ticks.

    That's very important because when you run the strategy live it will only have tick input from the data feed.

    TZ is based on the philosophy that it should run exactly the same in historical testing as when you flip the switch to live trading hands free.

    That is designed into most of TZ but never tried. Looking around last week, I see a few more things that need adjusting to support multiple instruments (or tickers as you call them).

    In contrast, TZ support up to 32 bar intervals per ticker all simultaneously.

    Again, the architecture of TZ is built you handle portfolio trading of any number of instruments (tickers) and ALSO any number or models on the same instruments, etc.

    However, we have to make a few adjustments to get it fully working. That will probably after documentation.

    Hey, that's a cool suggestion. Would you mind submitting a ticket to add these crucial stock trading features?

    Wow. It would be very cool to allow an unlimited number of tickers for that sort of thing.

    I had only been thinking on the order of a few tickers until this moment.

    That would be a cool feature.


    Do you desire to use "tick" data for all those tickers?

    Also, give me an idea of how many you want use?

    My thought it to make TZ unlimited for ticker number and test it for say 30 or 40 tickers.

    But I assume if you wanted to watch 1,000 or more than additional testing and performance issues would need to be handled.

    Just some thoughts. Again, if you submit a ticket, it can then be prioritized and other people can chime in with ideas or "vote" that they want it to to bump the priority.

    Hey, since TZ doesn't have this and it's relatively easy to add, we should discuss your DREAM system for this.

    Think of everything other systems do that you like and what you DREAM they could do. And post that to the ticket.

    I only like to build DREAM software myself. *smile*

  23. Wayne

    ok this is what I want for a DREAM software:

    lets use "ticker" when referring to stock security code so sticking to the convention I should be able to do this:

    if GOOG.bar[t].close > AAPL.bar[t-1].close then.. etc. GOOG being ticker for GOOGLE and AAPL for AAPL i.e. using official tickers. so we can name each instrument on the go!

    getting more advance with ticker groups:

    Example: tickers math:

    ZOOM = new ticker = GOOG.Bar[t].close + AAPL.bar[t].close

    Vector/matrix operation: assume TICKERS as array of tickers A to Z

    for TICKER[i...n] do
    if ticker.Bar[t].close > GOOG.bar[t].close
    then tradingsignal.buy 100 of ticker
    else exit and continue..

    this should be able to handle unlimted number of tickers..

    time dynamics: I should be able to do analyse any time frame I choose from tick, 1min, 5min, 10min, 15min, 30min, 1hour, and daily. this will let me investigate a strategy across time frames. for example:

    assume timeframes array of 8 time types above.

    I like to do something like:

    using timeframe[tick];
    if GOOG.Bar[t].close > AAPL.Bar[t].close do..


    for timeframe[i...n] do
    if GOOG.bar[t].close > GOOG.bar[t-1].close
    etc. etc.

    this allows finding the optimal time frame for a given strategy. i.e. finding the time-frame that maximises profit.

    there are many features I like to see. I will star creating tickets on your site.

    many thanks
  24. This is an excellent summary.

    Sorry, I belatedly saw you say you will create a ticket.

    I will respond and discuss it with you there because tickets work just like threads.

    That way the notes will be organized in one place when that item comes up next to work on.

    Specifically, we have a design for how to "code" the multiple tickers in a model that was discussed somewhere else here on ET (see it gets lost without a ticket).

    Anyway, when you create a ticket, I'll reply with the current design ideas adapted to meet your ideas and we can go from there.

  25. so, where do the discussions are supposed to continue? in this "pathetic" thread?!
  26. You could start a new one. I'm okay with answering TZ questions either on elitetrader or in the TZ forums themselves.

    There's different advantages to each.

  27. Were you going to post a ticket? I was interested in discussing this.

    Your idea of "ticker math" was very interesting. I have some thoughts.

    Any way. I'm looking forward to your ticket.