You are on page 1of 4

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 satisfiedprior 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
oftrading. 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.

You might also like