Algos and high-performance systems build the free market

In today's market, traders need every second to execute trades and lock in profits. With trillions of trade opportunities in the market every day, the most critical front-line tools for taking advantage of those opportunities are traders' proprietary algorithms. "Algos," as they're called, automatically execute trades based on pre-programmed criteria. They can process millions of trades in seconds, predict market movements, take advantage of arbitrage opportunities, speculate on trends and otherwise do whatever programmers design them for.

With high-frequency trading (HFT) platforms relying on these algorithms to drive an estimated 73 percent of the daily volume on U.S. equity markets, it's absolutely crucial the financial services industry has the proper systems in place to ensure transactions are completed in real-time - the alternate reality without optimized systems is that an entire stock exchange can crash and shut down entirely - and that is a disastrous scenario.  Sometimes, as we'll see, the Achilles heel of these systems can be a piece of software called the Java Virtual Machine (JVM).

Even the Perfect Algo is Nothing Without Great Performance and Low Latency

Algos are constantly being refined and tweaked in order to exploit market conditions in real-time. They can never be consistent, reliable or fast enough. Trading firms go to the extremes for speed by physically placing servers as close to the financial exchanges as they possibly can in order to shave nanoseconds off their response times. Even the smallest "micro" advantages can make or break profitability.

Because of the volume and speed at which they operate, algo platforms require a significant amount of computing power and extremely fast response times. Software developers need to develop code, make it robust, and release it into production use as quickly as possible. That means using a programmer-friendly language that is inherently reliable, secure, allows applications to be developed quickly, and contains minimal bugs.

That language has long been and still is Java. Programmers can deliver applications to market with confidence and in a rapid manner.  With Java and its wealth of commercial and open source libraries and frameworks, even relatively unskilled programmers can build high quality programs, saving financial firms' resources and enabling new algorithms and applications to be readily created.

Java's Achilles Heel

Financial services companies, hedge funds, private equity firms and others go to extremes just to get that hair-thin trading advantage. Anything that bottlenecks their platforms is a real issue. And in many cases, that issue is the Java runtime.

People often describe Java platforms as being very "fragile." It is common for off-the-shelf Java platforms to have scalability and response time problems. If minor things change such as the amount of trade volume being processed or even trivial changes to the application itself, then there can be a dramatic negative impact on the runtime performance or the response time of the application.

A Java-based application will often work fine during normal loads, but when there's some unusual event that causes a spike in trading volume, it has the potential to easily fail. 99.9% of trades may be able to be processed and meet the business requirement, but that 0.1%, where Java's response time is too slow, could cost billions of dollars in lost opportunities.

Downtime is Unaffordable

For financial firms, a broken system is one where the business objective is not being met, whether that's due to limited scalability, poor response time, unacceptable reliability, or a myriad of other issues. Developers are constantly tuning and tweaking their applications to get them to work with ever-changing market conditions and the never-ending new set of trading algorithms. If the system isn't meeting the requirements of the business, then it's considered broken but developers don't have the luxury of time to effectively tune their code base and start consistently making more money. The inconsistent response time and poor scalability of the Java runtime platform becomes a real Achilles' heel that is very difficult to work around.

The Java runtime should be able to absolutely guarantee consistent response times regardless of trading volume. I still see an awful lot of cases where customers have literally moved off of Java onto burdensome legacy languages, because they felt they had no other choice. When they pulled the plug on Java, they had to rewrite their entire application. Not because they wanted to, but because they felt they had no other choice. Now they're hamstrung by maintaining difficult-to-develop and difficult-to-maintain applications in the complicated and antiquated world of the C and C++ languages.

Instead of Running from Java, Improve the Java Runtime

These firms could have simplified their lives by sticking with Java the language but fixing how Java is run. The key is to equip their Java applications with a runtime or Java Virtual Machine (JVM) that makes the financial application more robust, elastic and scalable. If a Java system can't handle a heavy load, the first place to look is the JVM, which might be outdated or not capable of meeting the demands of the application.

With a JVM built for the needs and demands of the financial markets, Java-based applications can continue to perform all the time, even during trading spikes. Developers can continue to program in the language they love (Java) and quickly tweak their algos, traders can keep profiting, and the algos themselves can do what they do best, which is to find and seize profit opportunities in a matter of nanoseconds.

When All Systems Work, Markets are Happy

Today's software-driven financial markets rely on high-performing systems and smart algorithms in order to churn out the trading volume and liquidity that they do. Systems that fail not only hogtie trading firms, they can shock entire markets, as the 2010 flash crash demonstrated. Only when financial firms, combined with institutional checks and balances, keep their systems running smoothly, can financial markets stay efficient, liquid and ultimately profitable. 

Scott Sellers provides strategic leadership and visionary direction as the CEO and co-founder of Azul Systems, which delivers high-performance and elastic Java Virtual Machines (JVMs) so enterprises can effectively scale while meeting business objectives.

Copyright © 2012 IDG Communications, Inc.

Download: EMM vendor comparison chart 2019
Shop Tech Products at Amazon