We need to change the technology.
I am now using Visual Basic on Excel.
The real-time system will use a distributed Java processing technology that executes incremental calculations from different computers located on the net. Basically what we call "cloud computing" technology.
The algo themselves stay the same.
Pascal
Thanks, that explains it. Cloud processing is one approach to speed up calculations of a distributable algorithm. Another approach is to use a GPU card (NVidia or ATI) that contains hundreds of processors. Programming is done under a somewhat "different" development paradigm but becoming popular nevertheless (e.g. http://www.nvidia.com/object/cuda_home_new.html). GPUs are also now available on the cloud tho they're rather cheap to own.
Trader D
TraderD,
We have looked into CUDA early on, but it is comparatively difficult to develop for, just C++ is production-grade. For real-time options trading, it's probably a must. For our case, we are good enough with a Java distributed cache-based solution.
Actually the heaviest parts of the algorithms, when tuned, have shown orders of magnitude enhancement and have been used by Pascal for "peeking" into the likely trend of the day towards the close. But the aim is to get to an end-to-end integrated system that can boot, set itself up, follow the data feeds incrementally, and be able to recover from failures in a reliable pattern. This is a lot of infrastructure, and one of the reasons the system is not here yet. Thankfully modern trends are closing the gap quickly - and making things more manageable for us.
Thanassis
Thanassis,
To you and everyone responsible for developing, maintaining and enhancing the architecture of the site, a big shout out. Thanks.