Ha ha. Now that is funny. Ticks are just ticks? as well as NT? NT chokes on a few months worth of tick data due memory limitation and takes comparatively forever. I thought you said earlier that OpenQuant could do millions of ticks per second? Ticks are very different because you can 100 X to 1000 X as much data. Does OpenQuant collect the DOM for every tick? Is there a trial download? If so, I gotta see this. I would be impressed. But doubtful now that you compared it to NT. Sincerely, Wayne
The thing that bugs me about OpenQuant (and other vendors) is when something is not supported or utterly broken there is not a thing you can do about it except bitching on the support forum and wait until it gets fixed, which might not happen at all. A good example are the current broken roundtrip performance stats or the lack of support for custom performance metrics (and being able to optimize for them). In an open source project i could just add/fix such things myself. And there are a lot of similar things with a lot of frustration potential. I understand they cant put in serious support hours to people on a $50 monthly lease or something (and i wonder how the OP is gonna handle that as a single person at all).
Well, Pippi. Of course being open source is better. But there's TONS of open source trade platforms out there. I tried some of them. Often that are what we programmers call "spaghetti code". So it's very hard to figure out how to do any thing to them. And when you do it breaks stuff. There's something more needed in a platform. For example, you mention customized performance stats. While TickZOOM has money popular ones, they are externalized from the main engine and technically part your formulas that TickZOOM calls out to. And the design (in my opinion, of course) of the stats is intuitive and easy to add more calculations. Why it's because if you go to the basic stats and add a new calculation there, it automatically applies to the trade by trade, combo trades, daily, weekly, monthly, and yearly stats. Personnaly, it's more interesting how my strategy performs daily or weekly than trade by trade. Now for optimizing. Those algorithms are also externalized from the engine. This means that when it's ready to do an optimization, it: 1. First gets the set of parameters you configured to optimize with the range of values and the step count. If you are optimizing multiple strategies simultaneously. You can specify for any of them. 2. The engine then takes the parameters and calls back out to whichever algorithm you chose to determine a value set to run for each iteration. 3. After the algo give the parameters, the engine sets those parameters on the respective strategies and runs a historical test. 4. It keeps doing that (for as many processors as you have simultaneously) and when each test completes, it returns to the algorithm with all the strategies available to query for any results. Usually you will get comma separate list of results to write to a file. 5. Got the genetic algorithm, it gets the "score" from the strategy. That's up to you how you calculate your "score" in your custom code. Then it uses the score, obviously, in the generation of chromosomes for the remaining tests. The point is that the engine just orchestrates things and does it's primary job of generating bar data from ticks very fast and trigger your strategies do their job. That's why people keep comparing it to the Linux kernel just to orchestrates the various processes in the system. But those processes could be anything. And can be expanded by anybody. Wayne
Rolling bars are good, I'm coding up such for Ninjatrader currently, it runs on ticks and outputs the prv but to see them in context I have to pull up another chart and scroll the two concurrently. The choice of how to put together range bars is something that I have wrestled with but just barely, so far the normal way of filling in the blanks works ok for my strat, further work may change that of course..
I suppose, but given a choice I'd rather see the gap in the chart as it conveys a sudden change in sentiment. Filling it in with bars where no trades occurred masks that. It's sort of the same way with the way TS does volume bars. A lot of people think it's broken because the bars are not even, but to me that's the correct way of doing it. Making the bars even means splitting a tick into two parts. Ticks should be handled atomically, IMHO...
Since there's differing opinions, it's easy to add another type of bar. This current one is called RangeSeries, there's VolumeSeries, and ChangeSeries (as opposed to TimeSeries). I can add ConstantRangeSeries and constant versions of each and force them to artificially complete a bar if necessary and fill in gap bars for the blank areas. [ I can't wait for a user to request something added or fixed so they can see how quickly (in days) we release a new version with fixes (rather than months with other platforms). ] Then a user can pick which they prefer. By the way, charts can handle either a "time view" or a "bar view". Bar view works better for range bars. But I know some traders who like to see range bars in time view. That way they see them spaced out more when market pace is slow and closer together when they're separate. Personally, I like to see them in bar view. For pace, I made an indicator which logarithmically charts the number of seconds duration of each bar as a histogram barometer of market "pace". What is very cool is you can chart the pace indicator even on time charts or other charts since the chart time interval is separate from any strategy, or indicator interval. Personally, I LOVE the total time interval freedom in TickZOOM. But I'm biased, of course. Sincerely, Wayne
This sounds like a very interesting product. I will look to your documentation on how to port some EasyLanguage code over into TickZOOM's environment. I am learning (slowly) the C# necessary to deal with NT, but this focuses a lot of my time on the intermediate process of how to use a platform, rather than the ideas and test output (which is really what I am interested in), substituting the mechanics of software usage for the real goal. IMO that is NT's biggest drawback. If TickZOOM does all you say, accepting data-feeds from the most popular sources, it could be a killer-app...
Most popular sources? Not yet. Only interfaces to MB trading at the moment. Part of the reason everyone says it needs to be open source GPLv3 is so others feel comfortable adding more data sources. But I for one am not holding my breath. How long do you want to wait on people who work only on what they need and at the own pace? Which data source do you need? I'll personally implement the ones that actual registered users wish to have "post haste". Wayne P.S. Setting up to shoot the video now!
Just to clarify. TickZOOM is open source GPLv3. And we even have worked out a reward system for programmers who contribute code. But the primary reason for open source is for users to be able to very easily run the system in a full feature IDO. That way they can step into their strategies when not working and go through line by line, look at variable, etc. to figure out what's wrong. For those who are not professional programmers and new to IDE's etc. I'll make some videos that show how to do it. This first video will show running TickZOOM from an IDE but maybe I'll step into the code. Hmm. No. I'll make a series of short videos on different topics. Even programmers will appreciate the video on how to set a break point on a "specific" bar on the chart. But they won't need the beginner videos. Sincerely, Wayne