Cliff, (not to get into the language debate again) just to clarify what the TickZOOM engine does. You maybe misunderstanding.
What you described below would all occur with your custom strategies as callouts from TickZOOM.
The only type of calculations the TickZOOM engine does are simple stuff like
However, the extreme complexity in the engine comes from squeezing out performance from the shear NUMBER of those calculates for every tick and reducing the number of method calls, dynamic memory allocation, and memory copy, etc. To manage all the ticks, bar intervals, instruments, tick filtering (very good), etc and calling out to custom strategies with extreme efficiency.
That's why I'm not intimated by porting it. TickZoom doesn't need AT ALL any outside code or libraries. It uses virtually none of the Windows services. On the contrary it is a very self contained "kernel" like Linux that just does one thing extremely well and reliably.
The rest will be addons, custom strategies, etc.
And I want to reiterate that right now, the C# is extremely fast and can call out to unmanaged C++ code easily even on Linux and Mono. I already have it working to call out to Java. I had forgotten the Business Rules engine included as an add-on strategies. I don't think it's very useful now but it does demonstrate how to call Java code for those who care.
Mono has issues right now only in lack of support to Windows specific stuff.
TickZOOM only uses the language itself to do it's job. It doesn't need the Windows stuff. Besides, who wants the Windows stuff on Linux anyway?
Sincerely,
Wayne
What you described below would all occur with your custom strategies as callouts from TickZOOM.
The only type of calculations the TickZOOM engine does are simple stuff like
Code:
if( tick.Ask > high) {
high = tick.Ask;
}
volume += tick.Size;
However, the extreme complexity in the engine comes from squeezing out performance from the shear NUMBER of those calculates for every tick and reducing the number of method calls, dynamic memory allocation, and memory copy, etc. To manage all the ticks, bar intervals, instruments, tick filtering (very good), etc and calling out to custom strategies with extreme efficiency.
That's why I'm not intimated by porting it. TickZoom doesn't need AT ALL any outside code or libraries. It uses virtually none of the Windows services. On the contrary it is a very self contained "kernel" like Linux that just does one thing extremely well and reliably.
The rest will be addons, custom strategies, etc.
And I want to reiterate that right now, the C# is extremely fast and can call out to unmanaged C++ code easily even on Linux and Mono. I already have it working to call out to Java. I had forgotten the Business Rules engine included as an add-on strategies. I don't think it's very useful now but it does demonstrate how to call Java code for those who care.
Mono has issues right now only in lack of support to Windows specific stuff.
TickZOOM only uses the language itself to do it's job. It doesn't need the Windows stuff. Besides, who wants the Windows stuff on Linux anyway?
Sincerely,
Wayne
Quote from cliff5200:
The system that Wayne has is modular and uses a high performance engine at the lowest level. At that low level there are many math functions and other stream processing functions that will be needed. These already exist in open source code and do not have to be rewritten. They are in C++.
I don't like programming in C++ either. But for performance and compatibility with huge open source libraries and code base C++ and the programmers who made them and support them we need C++ computability.
There is no huge open source C# code base of high performance computing code and math code along with many of the programmers who wrote the code.
The point is to use this code and not rewrite it. The point is to write as little code as possible.
I would rather write a small amount of C++ code than write a huge amount of C# code!