The Interactive Brokers ScaleTrader Algorithm*

Thomas Peterffy

(Please read this explanation side by side with the Scale Trader template on your TWS.)

The Scale Trader is an automated trading algorithm designed to run indefinitely until stopped or changed, or until it encounters conditions where it stops. Scale Trader may be used for any product offered by Interactive Brokers, including stocks, options, ETFs, bonds, futures, forex, etc. other than mutual funds.

The Scale Trader originates from the notion of averaging down or buying into a weak, declining market at ever-lower prices, or, on the opposite side, selling into a toppy market or scaling out of a long position.

For example, if in your judgment a stock is trading near the bottom of its trading range, then you can program the Scale Trader to buy dips and sell at some minimum, specified profit repeatedly. The Scale Trader algorithm can be instructed to buy more and more of the stock as it is approaching the bottom of the trading range, sell it as it recovers, and then buy again in a subsequent decline. This is trading from the long side.

Similarly, in a somewhat more adventurous position, you can trade from the short side by selling into a rising price at ever-higher levels and buying back at lower levels as the stock comes down.

If you think the stock is fluctuating along a trend line, the Scale Trader algorithm provides for the ability to incorporate such a rising or falling trend line to manage your position accordingly.

We will discuss the algorithm from the point of view of a long stock trader, but anything said here works also in the reverse and for different products, like futures, options, forex, etc.

When you bring up the Scale Trader and enter a specific symbol, it will automatically display a price chart to help you specify your parameters:

TOTAL ORDER SIZE (maximum position) is the total number of shares you are willing to buy as the price falls;

INITIAL COMPONENT SIZE is the number of shares you want to buy at the first price level - your STARTING PRICE;

SUBSEQUENT COMPONENT (COMP.) SIZE is the additional number of shares you want to buy at each PRICE INCREMENT (which in case of a buy Scale of course is a decrement from the prior price).

After you have entered these five parameters (TOTAL ORDER SIZE, INITIAL COMPONENT SIZE, SUBSEQUENT COMPONENT SIZE, STARTING PRICE AND PRICE INCREMENT), the TOP PRICE and the BOTTOM PRICE will be calculated and displayed. For example if you tell Scale Trader to buy 2,000 CSCO at $19.03 and 500 more every 2 cents down, maximum position 70,000, a TOP PRICE of $19.09 and BOTTOM PRICE of $16.31 will be displayed.

If your INITIAL COMPONENT SIZE and SUBSEQUENT COMPONENT SIZE are the same, then the TOP PRICE will be the same as the STARTING PRICE. If the INITIAL COMPONENT SIZE is greater than the SUBSEQUENT COMPONENT SIZE, then your TOP PRICE will be higher. Namely, it will be the price at which you would have had to start buying the same amount as the subsequent component size at each price level in order to reach the same position at a lower price. This feature is only important if you use the same Scale to sell out of your position.

The BOTTOM PRICE is calculated and displayed. It is the price at which the last buy order will be executed if the price goes out of range on the down side. You can change this BOTTOM PRICE and if you do so, the PRICE INCREMENT will be changed to compensate for it. In fact you can grab the BOTTOM line on the chart and move it around. As you do so, the PRICE INCREMENT will change accordingly.

The best way to learn how to use the Scale Trader is to experiment by entering various parameters into the input screen (template). The algorithm will not be activated until you click the Transmit button.

Your orders can be Limit or Relative. Relative buy orders are offset against the bid price. If you choose to use Relative Orders with a zero offset, your Scale buy orders will always join the bid, even if your Scale would call for a higher bid price. The advantage of this is that if the stock becomes volatile you can occasionally buy it at better prices than your Limit price, provided that you get filled. If you were to input a Relative offset of +0.01 (one cent), then you will bid a penny higher than the best bid, provided that that price is equal to or lower than the next buy price on your Scale. This way you are much more certain to get filled and still have the advantage of buying at a price lower than your Scale price, should the stock fall suddenly out of bed. I personally would rather miss a trade than overpay, in most situations.

If you want to set the Scale Trader to sell into periodic surges or to liquidate your positions if you have reached specified profit objectives, you may do so by checking the box CREATE PROFIT TAKING ORDER in the input screen (template) and specifying a PROFIT OFFSET. This is the amount of profit you require on a round turn trade. For example, if you specify a PROFIT OFFSET of $3.00, then your first sale will be $3 higher than the price at which your last buy took place. Please note that, especially if you are using Relative Orders, your buys and sells could be at better prices than you originally specified and the Scale Trader does not keep track of these improvements for purposes of calculating PROFIT OFFSET. It always calculates the next bid or offer as though only Limit Orders were used (and executed at the exact Limit), and then places the profit-taking orders relative to the prevailing bid or offer. In other words, if you managed to buy the stock three cents lower than your Scale price, then your sell order will be placed at a $3.03 profit. As the stock advances, your position will be sold out in the SUBSEQUENT COMPONENT SIZES and at the successive PRICE INCREMENTS that you used when you bought it. Your last sale will happen at the top price plus $3.00.

Scale Trader also allows you to RESTORE SIZE AFTER TAKING PROFIT. If you check this box the algorithm will attempt to repurchase the shares you just sold for a profit at the price you originally bought them at. This feature allows you to buy and sell repeatedly in a fluctuating market, just like a market maker would, especially if you set your PRICE INCREMENT and PROFIT OFFSET to low enough levels. The algorithm will remain active whenever the stock price is within the range of the (TOP PRICE + PROFIT OFFSET) and the BOTTOM PRICE. If you do not check the RESTORE SIZE AFTER TAKING PROFIT box you will buy and sell at each price level only once and the algorithm will be finished.

Basically, Scale trading can be a liquidity providing strategy, which is made more attractive by the liquidity rebates paid by exchanges. At Interactive Brokers we pass exchange fees and rebates through to our unbundled customers, and exchange liquidity rebates currently exceed all but our first tier of commissions.

You may adjust any of the parameters of the Scale Trader algorithm while it is active but the new parameters will not be put into effect until you click on the TRANSMIT button. You may move the active range of the algorithm up or down gradually with the AUTO PRICE ADJUSTMENT feature, which will increase or decrease your initial price automatically at stated time intervals. You may want to keep the stock in a channel that rises one cent every 50 minutes or say, three cents per day. Price adjustment will stop if the maximum position is reached.

In addition to Scale Trader, IB offers the Accumulate/Distribute algorithm, which is very powerful for buying or selling large positions. But just as Accumulate/Distribute can do Scale trading, the Scale Trader can also buy or sell large positions, albeit in a somewhat restricted manner. If you want to use the Scale Trader to accumulate a large position around the current price level, you can select INCREASE STARTING PRICE BY $0.01 per 47 seconds, for example.

If you were to do that the algorithm would buy:

SUBSEQUENT COMPONENT SIZE * (X * $0.01/PRICE INCREMENT) * (60/47) shares

in the course of the next X minutes as long as the price remains at the same level.

Sudden, large adjustments to the starting price should generally be avoided in order not to bid up or sell down a stock, which can prove to be expensive.

If the Scale Trader algorithm is stopped and it needs to be restarted, you must check the RESTART SCALE TRADER box. You must tell it what the position of the Scale Trader was when it stopped (the INITIAL POSITION) and how much of the INITIAL COMPONENT SIZE was filled, in order for the algorithm to be able to restart where it left off. You should be aware that if the price is much lower or higher than it was when the algo stopped, the Scale Trader may have quite a bit to buy or sell and may move the price in the market accordingly. You can correct for this by moving the INITIAL PRICE when you start up and moving it back gradually using the AUTO PRICE ADJUSTMENT.

Scale trading can be a very rewarding strategy as long as you are comfortable holding the specified maximum position should the price decline to that level, or further. In this respect it is similar to writing an option, which is a good strategy as long as you are comfortable sitting with the position you will get should the option be exercised. In a perfect Gaussian market the trading profit produced by the Scale Trader is the theoretical equivalent of the option premium that is collected by the writer but without the restraints of standardized expirations and strike prices.

* Patent Pending.