Quote from Pippi436:
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