If you are an institution, click below to learn more about our offerings for RIAs, Hedge Funds, Compliance Officers and more.

TWS ScaleTrader Algo

The Scale Trader is an automated trading algorithm designed to run indefinitely until stopped or changed or until it encounters conditions where it stops. It may be used for any product we offer.

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

If, in your judgment a stock is trading near the bottom of its trading range than you can program the scale trader to buy dips and sell at some minimum, specified profit repeatedly. Namely, buy more and more of the stock as it is approaching the bottom of the trading range and sell it as it recovers and buy it 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 buy it back at lower levels as it comes down. If you think the stock is fluctuating along a trend line, the algorithm provides for the ability to incorporate such a rising or falling trend line to manage your position accordingly.

I will demonstrate 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 or forex.


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.

For example you can say buy 2,000 CSCO and 500 more every 2 cents down, maximum position 70,000.

After you entered these five parameters, the TOP PRICE and the BOTTOM PRICE will be calculated and displayed.

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.

Please, do experiment with the template by inputting various values to see what would happen. The algorithm is not going to be activated until you click the transmit button.

Order Types

Your orders can be limit or relative. Relative orders are offset against the bid price.

"I personally will rather miss a trade than overpay in most situations." Thomas Peterffy

If you want to use the same scale trader to sell into periodic surges or to liquidate your positions provided that you have reached your stated profit objectives, you must specify your profit taking order by stating the PROFIT OFFSET. This is the amount of profit you want on a round turn trade.

Please note, if you are using relative orders your buys and sales could be at better prices and the scale trader does not keep track of these improvements.

It always calculates the next bid or offer as though only limit orders were used, and then places that order relative to the prevailing bid or offer. In other words, if you managed to buy the stock 3 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.

The next question is if you want to "Restore Size after Taking Profit".

Basically, scale trading is a liquidity providing strategy and exchanges pay liquidity rebates

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.

You may adjust any of the parameters of the algorithm while it is active but the new parameters will not be put into effect until you click on the APPLY button.

You may move the active range of the algorithm up or down gradually with the "Auto Price Adjustment" 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 1 cent every 50 minutes or say, 3 cents per hour.

We have the Accumulate/Distribute algorithm for buying or selling large positions, but just as that can do scale trading, the scale trader can also buy or sell large positions 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 input "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 adjustment 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 however 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. It is similar to writing an option, as long as you are comfortable sitting with the position you 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.