Back in 2010, Wired columnist Clive Thompson argued that it’s time for all of us—not just software engineers—to learn how to program software1. It’s been nearly two years since that article was written, but I believe it’s still as relevant today as it was then.
As the product manager responsible for TT’s ADL™ visual programming platform, people often ask me if I think traders can learn to code. I tell them, not only can any trader learn to code, but most traders are already engaged in the mental process of writing a program, whether they know it or not.
As an example, consider a successful point-and-click trader who has a rock-star track record. This trader must know his strategy inside-out and execute it with precision. To be specific, he must have the “pathways” of his strategy mapped out, and, if needed, he should be able to articulate them in an organized and systematic manner.
What makes this trader exceptional, however, is not only the fact that his strategy map depicts the main pathways of logic, but that it also covers the inconspicuous “alleys” or contingencies that can arise in the market. The most successful traders consider the “what ifs” and are prepared with maneuvers to deal with such contingencies.
Building the strategy map in this manner is a form of modeling, which is a step that precedes the actual writing of a computer program. In fact, if the model is progressively refined, distilled and articulated with increasingly granular details, it can essentially be described as a high-level pseudocode.
So, if traders are already writing pseudocode to some degree, what is the barrier that prevents them from taking it all the way to full-fledged programming?There is a general notion that syntax (the programming language itself) is the primary barrier. I agree that it’s a barrier, but I don’t believe that it’s the primary barrier. In fact, I believe that learning the basic syntax is actually a very manageable task.
In my opinion, the primary barrier is the lack of knowledge regarding the technical “what ifs,” or the technical nuances that usually come with experience, especially when you’re building a trading algorithm.
For example, a trading algorithm typically needs to have some design to manage in-flight orders, or orders that the exchange has not yet confirmed. It also needs to know how to discern acceptable order rejects from critical ones and take appropriate actions. Furthermore, it needs to recognize and handle disconnects, such as an outage at an exchange.
For a trader without any developer background, such technical nuances may not be intuitive, and, frankly, the technicalities may not matter to the trader as much as the details of the trading strategy. The ultimate goal for a trader, after all, is to deliver the strategy to the market in a timely manner and execute it profitably. The program itself is just a means to this end.
Enter ADL, which we introduced in our first blog post. The concept of ADL was born out of a recognition of these barriers. To be specific, ADL was designed to remove the need for syntax by visualizing it completely. By dragging, dropping and connecting various “Lego®-like blocks of logic,” a trader can easily create an automated algorithm. I like to tell our users that if you can draw your trading strategy on a piece of paper, you should be able to automate it in ADL without writing a single line of code.
More importantly, ADL internalizes and handles the technical nuances that may not be pertinent to a trader. For example, a block called the Order Block in ADL submits and manages an order, handling technical aspects such as queuing of in-flight order actions. The trader simply instructs the Order Block to work an order at a certain price and quantity, and the rest is taken care of automatically.
In addition, ADL algorithms are equipped with a host of sophisticated risk and contingency controls that, from a technical perspective, would be tricky to implement manually.
At the same time, careful attention was paid to the design of ADL to ensure that it does not over-internalize and end up as a canned strategy with few customizable parts. I like to say that the “resolution” of the blocks in ADL is just right—they neatly carve out and handle the technical intricacies, but also leave plenty of room for the trader to articulate his or her strategy with great flexibility.
If I’ve sparked your interest in ADL, I encourage you to view the ADL materials and instructional videos on our website, and keep an eye out for an invitation to participate in an upcoming webinar on the topic. We’ll be publishing our webinar schedule here on Trade Talk.
Thanks for reading!
1 Clive Thompson, “We’re All Coders Now,” Wired, December 2010.
Posted by: John Yoo, Product Manager