13:05 ET Dow -154.48 at 10309.92, Nasdaq -37.61 at 2138.44, S&P -19.130 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 0 1 100001 0 1 0 1 1 0 1 0 00 0 1 1 1 0 1 100001 0 1 1 100001 13:05 ET Dow -154.48 at 10309.92, Nasdaq -37.61 at 2138.44, S&P -19.1313:05 ET Dow -154.48 at 10309.92, Nasdaq -37.61 at 2138.44, S&P -19.13

.

.

Friday, March 19, 2010

What is algorithmic or black-box trading?

Algorithmic trading is the process of automating the buying and selling of securities. The process is completely dependent on computers and programming languages. The advent of the Internet allowed for private individuals and financial institutions to trade directly on exchanges in ways and in volumes never before seen. This in and of itself gave rise to algorithmic trading.

Currently, almost all brokerages offer investors and firms computer programs from which to transmit market orders to exchanges, and these programs are usually either web-based platforms or free-standing programs. Through these applications or programs brokerages’ customers can trade securities directly with other market participants. As stated, these platforms can be web-based applications or interfaces (like Gmail, which is a web-based email service, for example), or they can be free-standing programs that run on your computer and don’t rely on a web browser to transmit orders to exchanges (like Microsoft Office’s Outlook application). Most web-based programs use port 80 to transmit HTTP. Many programs communicate over the Internet and don’t do so using HTTP or port 80, or web-based means and methods. Either way, these programs send communications or instructions from the client computer to the host computer, the computer receiving orders for the exchange. Exchanges act as hubs. They receive orders to buy and orders to sell from all over the world and they have a clearing house that pairs orders and that keeps track of the transactions. Clearing houses also inform brokerages that are exchange members how much capital or cash they have to have on reserves, which the brokerages provide clearing houses using customer funds.

Algorithmic trading is the process having a program interface (or interact) with the brokerage’s trading platform. These programs are almost always proprietary programs. This means that the programs are owned and/or created by the entity using them. Firms almost always employ programmers full time to write and modify the code that makes up their trading program or programs and their proprietary algorithms. There is a common misconception that these programs can, once “finished,” trade unattended and without any upkeep or maintenance. That is not true. These programs must almost always be monitored so that they don’t malfunction and do something terrible, such as rapid-fire selling when they should be buying. This could obviously result in catastrophic financial losses, lawsuits and other unforeseen events. Algo traders must monitor the trading and have to frequently interact with the platform to stop trading, close positions, and change parameters and variables.

The programs that algorithmic traders create are usually coded in a fast, object-oriented programming language, such as the C languages. Programming has changed a lot over the last 20 years. Programs are no longer one long sheet of code. Modern programs/applications consist of many different scripts or pages of code and much of it is only accessed and loaded into memory when needed. Also, programming is now done mainly through programming platforms from which one builds up a dialog box that the user interacts with by inputting data. The program performs tasks on that data, and usually produces some output. A classic example of such a program in action is a calculator. You provide input, and the calculator performs tasks on the input and returns some output once you press the ‘equals’ button.

Trading programs perform the same way, with one distinct difference: they take data provided by a real-time market data feeds and then they carry out instructions programmers specify the program should take based on certain conditions, parameters and variables. These rules are known as algorithms. Here is a simple example of a trading algorithm: an automated trading program should transmit a buy order to a brokerage’s trading platform if the market price of a security increases by 0.1% within a 30 second time span, the trading volume exceeds some specified number (maybe a number defined by a rolling average of the trading volume over the last week), and the time of day is between 9:00 a.m. and 3:00 p.m., in the exchange’s time zone.

Such rule-based actions are implemented well by a computer and they must be communicated to the computer in the form of a programming language. At its core, programming consists of nothing more than conditional logic: looping and branching form the basis of all programming. Looping is the act of doing something until a certain event takes place, and branching is the act of making one of two choices.

Trading programs monitor data feeds and they constantly “loop”: they comparing changing data with fixed data entered into the program in the form of parameters. For example, if the trading program has bought a security, and the trading rules specify that the program should sell the security if the profit captured exceeds 1%, the program will constantly calculate the profit captured until either the specified value has been reached (then the program will sell the security) or until some other rule specified that the program close the position.

Branching, is the process of making a decision based on two choices, a.k.a. bimodal. In formal logic this is manifest in the “if, then” construct. For example, if the time is between the hours of 9:00 a.m. and 3:00 p.m., then buying is permitted. Branching forms the basis of establishing constraints that must be satisfied prior to the program taking some form of action. For example, if the program is currently holding a number of securities that exposes the firm to excessive risk, the code may specify that the program not buy subsequent orders even though an algorithm in question would produce a buy order based on the market data feed and other conditions.

“Market makers” had traditionally been men and women standing at posts designated by the exchange as the location at which trading for specified stocks would take place. Market makers profit in a few ways, but one that is of interest here is how they capture the difference between securities’ bid and ask prices when trades take place. For example, if the bid/ask for a certain stock is 99/100, the market maker can buy the stock at 99 dollars and wait patiently until someone desperate wants to buy the stock – and they will cross the bid/ask spread in order to do so and buy the stock at the best available price, which is 100 dollars, in this example. Desperation trades take place when a buyer or seller will pay the best price offered by the counterparty. There is a distinction between active and passive buying. In active buying, one pays whatever happens to be the best offer on the opposing side, which is slightly more than the price he’d like to pay. The market maker would sell the stock to the first person that lifted his or her order. The market maker would have made 1 dollar for each unit of the security in question: s/he bought at 99 dollars, and sold at 100 dollars.

Automated market making is the process of using code and computers to make markets, rather than humans. Computers can accurately keep track of and process almost infinitely more data than humans can and they can do it at unimaginable speeds. The advent of the Internet and the attendant investor freedom to trade a broad range of securities anywhere in the world sowed the seed for the automation of trading. With automated trading a “market maker” can make markets in not only one security but dozens or hundreds of securities or more, if they have the resources and the ingenuity to create processes that make it work.

Algorithmic trading is made up of much more than just automated market making. There are oceans of relationships amongst securities and reams of data that traders analyze in an effort to deduce predictable sequences of events, inefficiencies or arbitrages that they can profitably trade upon - and with increasing frequency their trading is automated through the use of code, computers and algorithms.