Since starting to use trailing stops to cut big losses, the results have been mixed, to say the least.

On the one hand, the stops have worked exactly as they should have: gotten me out of a losing stock before the loss got too big (BTUI, BIVN, VPHM), and protected nice profits from being slowly nibbled away after a peak (GGR).

On the other hand, in quite a few cases I've been stopped out too quickly I think (LCRD, OIIM), making me think my stops were too tight.

On the third hand, using the trailing stops has also exposed a bad habit I have of jumping in before a pullback has completely run its course (PARL, NEOL).

There are two somewhat incompatible objectives in managing trades:

Cut losses. You buy a stock only to have it go south. Using the stop in this case is easy: just decided how much you're willing to lose and set the stop to get you out if that limit is reached.

Maximizing gains. It's easy to get nervous when a stock has gone up, and it's tempting to take profits. What if it goes down? I'd better sell while the price is up. If you do that too soon, you leave money on the table. To maximize gains, you want to let a rising stock run, knowing that even a rising stock has its short-term ups and downs. This is the part I've found difficult.


It occurred to me that one solution would be to widen the stops. I was using a stop defined in points and had arbitrarily chosen 10% of the price per share as the size of the stop. For example, if a stock cost $5, the stop would be set at 50¢ and the stop-loss order would be triggered if the stock traded at or below $4.50, the activation price. As the price of the stock goes up, this trailing stop becomes a smaller and smaller percentage of the current price. For example, at $5, a 50¢ stop is 10% of the price, but at $6, the 50¢ stop is only 8% of the price.

On reflection, I realized that using fixed-size stops was fine for protecting optimum gains, but it was lousy at riding out short-term pullbacks. So it occurred to me that one possibility would be to make the stop big enough to accommodate a stock's normal peak-to-base move. Fortunately, TD Ameritrade provides a tool, Advanced Analyzer, that actually calculates this, so I looked up three stocks I had recently been stopped out of.

StockAverage peak-to-base retracement
Champion Enterprises (CHB)33%
GeoGlobal Resources (GGR)43%
Harmonic (HLIT)21%

Clearly that wasn't going to work, at least for me. No way was I willing to tolerate a potential loss of that size, nor be willing to leave that much money on the table.

The next insight I had was that defining the trailing stop as a percentage of the highest price to date would have the effect of gradually widening the stop as the price got higher, giving more room for ups and downs. For example, if the trailing stop of that $5 stock is set at 10% right after buying it, the stop is still 50¢ and the activation price is still $4.50. But if that stock rises to $6, then a 10% stop is 60¢ (10% of $6) and the activation price then becomes $5.40.

I went back over three stocks to see if using percentage trailing stops would have made any difference compared to using fixed point trailing stops.

GeoGlobal Resources (GGR)

GGR $-stops GGR: Trailing stop in points

The buy of GGR was well-timed: I got in just before the upswing. It quickly went up to $7.50, bringing the activation price for the trailing stop (55¢) to $6.95. The very next day I got stopped out by 4¢ when GGR briefly traded at $6.91 before rising a bit for the close.

GGR %-stops GGR: Trailing stop in percent

If the trailing stop had been set at 10%, when the stock hit $7.50, the stop would have been 75¢ (10% of $7.50) and the activation price would have been $6.75. The stop-loss would not have been triggered that next day. Instead, I would not have been stopped out until after GGR hit a peak of $8.74, bringing the stop to 87¢ and the activation price to $7.87. The stop-loss would not have been triggered until Monday of the following week.

In the case of GGR, using a percentage-based trailing stop would have meant an extra $0.92 per share in profit.

Champion Enterprises (CHB)

CHB $-stops CHB: Trailing stop in points

Champion is an instance of buying after the upswing had already begun, and it took a breather after rising less than $1 per share. When it hit $8.50 on what is called a "deliberation day" (open and close close together, with long tails above and below), that brought the activation price up to $7.71. The decision was apparently "not so fast" because the next day was a down-day and the stop-loss was triggered for a tiny profit, just a few cents above my buy price. A week later, CHB jumped up another $2. Ouch!

CHB %-stops CHB: Trailing stop in percent

Ironically, using a percentage-based trailing stop would have just delayed being booted out by a few days and would have turned my tiny profit into a tiny loss. This illustrates the difficulty of finding a right-sized stop for a stock that fluctuates widely in price during the day.

Harmonic (HLIT)

HLIT $-stops HLIT: Trailing stop in points

Harmonic was bought on the way down from a new peak at $7.75. Unfortunately, the retracement was not to stop until a low of $6.92. But even that was above the activation price at the time ($6.61). A few days later, HLIT moved up again to a peak of $7.75 before taking a break before earnings. While The Market digested the report, the stock price fell to near $7 and the stop-loss was triggered at $7.03.

HLIT %-stops HLIT: Trailing stop in percent

Using a percentage-based trailing stop in this case, however, would have essentially made no difference except to delay getting stopped out by one day — the day before a big jump.

What to do

A trailing-stop sell order (or buy order for that matter), gets entered into the system, which means that as a practical matter you can't plan for different contingencies. TD Ameritrade offers another function they call Trade Triggers that enables you to prepare an order to be submitted only if certain conditions are met. That's an important distinction, because Trade Triggers remain on Ameritrade's servers, not submitted to the market, and you can set multiple ones. They are checked constantly against the market, and when the conditions set in the trigger are met, the order is then submitted to the market. I'm going to use this capability for a new implementation.

Immediately upon buying a stock, I will prepare three Trade Triggers:

If the stock trades at or below 8% less than the purchase price, sell at market.
This establishes an absolute floor below my purchase price, so the position would be closed if the price fell to that level. By selling at market there is no guarantee of the price I will get, but I can be guaranteed I will get out. If the stop-loss were a limit order, the order might not execute if no-one is willing to pay that price; this sometimes happens if there is sudden panic selling.
If the stock happens to fall right after buying it, my maximum loss is around 8%.
If the stock trades at or above 10% more than the purchase price, enter a stop-loss order using a trailing stop of 12%.
This begins to protect gains and limit potential losses. If the stock suddenly falls, the stop-loss order would be triggered just below my purchase price. If the stock continues to rise, then I will make some profit.
If the stock trades at or above 15% more than the purchase price, alert me so I can consider loosening or tightening the stop.
This lets me make a choice as to which I want to do. If the long-term trend appears solid, loosening the stop (increasing the percentage) will let me ride out a greater retracement before it swings up again. If the long-term trend appears iffy, tightening the stop (decreasing the percentage) will let me keep more of the gains before getting stopped out.
The size of the adjustment can be based somewhat on the volatility of the stock. For a stock with a long, strong, uptrend, I might increase the stop to 15% or even larger. For a stock that looks in danger of a short-term reversal with long-term prospects that are questionable, I might tighten the stop to 7%, 5%, or even tighter.

Stay tuned!