Investment banks, insurance companies, and hedge fund firms are running HPC applications to keep their financial services running smoothly. More specifically Algorithmic trading require a huge amount of processing power as well as fast network capabilities ( speed is money ).
I recently came across this company : Marketcetera. I think we will soon see the emergence of PaaS , SaaS and IaaS company specifically dedicated for algo trading solution or financial computing.
The cost of creating testing and deploying such trading platform as well as testing new trading algorithm is rather prohibitive nowadays. With the advent of cloud computing, it becomes possible in the near future that companies will start offering at a reasonable price ( and even at dynamic price) resource specifically dedicated and collocated for financial market operations.
However financial trading applications have requirements that are very different from the classical web one that are run on the cloud. I will just expose some of the one affecting IaaS and PaaS:
- IaaS , Performance is key:
- Network:
- Speed and location: Financial trading services have high bandwidth and low latency requirements. To satisfy such stringent requirements IaaS provider will have to be as close as possible to the stock exchange. They will need to have cloud's location s to be physically close or better collocated with the exchange systems (a la ec2 zone). Except that in this case the actual location will matter less than the actual proximity physical proximity of a certain exchange (especially for
unfairhigh frequency trading) . - Virtual Networking:
- Hardware FPGA and GPGPU, ASIC : Hardware acceleration can easily boost the performance of operations by a degree of magnitude. It has been successfully used by financial institution to do such thing as XML processing, network routing, algorithmic trading , etc.. In the race to be the fastest, such piece of hardware can give an significant edge. However, future financial cloud providers will need to find a way to easily expose such piece of hardware. Creating a pool of hardware resource accessible through I/O virtualization seems a potential solution (by using Hypertransport , Quickpath interconnect or PCIe over ethernet ).
- Virtualization vs BareBone: Virtualization always comes at a price. You lose performance and I/O speed. But, contrary to the popular belief, cloud infrastructure does not preclude the use of non virtualized resources. Cloud Providers can easily provide both: virtual and dedicated hardware resource within a same cloud in order to satisfy the various demands of its customers.
- PaaS , how to balance performance , flexibility and accessibility:
- Langage: C and C++ still represent a huge portion fo the core of financial apps framework. You can even see bits ASM !. However current PaaS languages of predilection are .Net, Java, Phyton or Ruby on Rails. These are often slower but much more easier (and easy to secure ) to use to create a platform cloud computing engine. One way to go around this problem would be to design a custom language for trading algorithms. Or allow easy integration of external processing component. Which leads to the next aspect.
- Messaging and order routing : A similar problem arise for messaging today cloud messaging APIs are based on public REST, XML, and SOAP standards. While current trading platforms prefer the fast but proprietary (hence expensive ) ESBs or messaging platforms. It make it rather expensive to integrate cheaply with external component. Maybe ,if the PaaS vendor is also a IaaS (servers ) and a SaaS (the ESB), the integration can be done or provided in a cost effective way.
- Security : challenges are multiple:
- VM security
- network
- Data (secure storage)
- Tracability
- Audit
- Authentication
- Non-repudiation
- Integration with third parties and customer owned solution
- Etc..
- Reliability and high availability are and order of magnitude higher than typical cloud apps.
This list is not extensive and I definitely know I have missed some aspects. But i will try to dwelve deeper in this problem that constitute trading in the cloud. And, while providing cloud for customers wanting to run financial apps is relatively more difficult than "traditional cloud offer". The benefits of such offer can be worth the efforts:
- Sharing exchange access point cost.
- Lowering the cost of
cheatingentering in High frequency game. - Eliminating the cost of creating a trading platform.
- Lowering the TCO of trading platform.
- Lowering the cost of testing and validating trading algorithm.
- Etc...
No comments :
Post a Comment