19th Ave New York, NY 95822, USA

Can you make money in penny stocks? Simple breakout trading system & code

LOREM IPSUM DOLOR SIT AMET

I must admit that I have never really dabbled in penny stocks. Like most, I’m all too aware of the blatant risks trading in smaller cap shares. While there are plenty of legitimate companies, many stocks that trade under one or two dollars are just shells for more dubious operations.

Can you make money in penny stocks?

The world of boiler rooms and penny stock promoting has never previously interested me and for the most part (99% of the time) I feel penny stocks should be avoided. However, I am always open to ideas and I’ve been thinking that if it is possible to stay away from worthless, pumped up companies, could it be possible to make a good return in penny stocks?

After all, academic studies show that investments in smaller cap shares outperform larger cap companies over time.

Why? Because investors should be compensated for taking on the additional risk and volatility.

Sure, liquidity and transaction costs may remove this outperformance, but studies show that this is only partially true.

Since large volume traders and institutions have difficulty in trading small cap shares (due to liquidity concerns) there must surely be some value for smaller, more nimble traders. If we are able to find a strategy to trade up and coming penny stocks we might be able to pick some big winners.

With this in mind, I fired up Amibroker, loaded some historical data and started to test a simple breakout system.

Penny stock breakout system

When designing a trading system it is first important to think carefully about what you are looking for and what you expect to find.

In this case I want to restrict my trades to stocks under a certain price level and I want to use some kind of ranking in order to process more than one signal. I want to be able to capture small cap companies that explode upwards and keep going and I want to cut short those trades that don’t go anywhere.

A trend following system therefore seems like the perfect choice and a simple daily breakout will be tested here.

For now, I am uninterested in shorting since this brings many difficulties for an automated system like this and I do not want to trade too short timeframes as this will impact on trading costs.

Rules

The rules are therefore simple. The system buys a stock when it opens at it’s highest for 75 days. It sells when it opens at it’s lowest for 55 days.

Only stocks between $0.25 and $2 are considered and signals are ranked based on daily volume. The system can cary a portfolio of up to 20 stocks at any one time and risk is split equally between each stock (with no margin).

Liquidity & slippage

Of course, the biggest concern when trading penny stocks should be liquidity and slippage. Penny stocks carry very large bid/ask spreads that can seriously impact on trading performance. It is not uncommon to see a penny stock trading with a bid/ask spread of 20%, which means if you buy on the ask price you will need to make another 20% just to break even.

To overcome this, I instructed the system to buy on the HIGH and sell on the LOW. This way we guarantee that are trades will get filled at the worse possible price, eliminating the effects of slippage. This may sound harsh but some penny stocks are so thinly traded that I feel this is the only way forward.

Results

The system was back-test on the Russell Micro Cap Index and commissions were set to a maximum trade value of 0.5% in line with Interactive Brokers.

Results of the penny stock trading system between 1/1/2000 and 1/1/2014 show a compounded annual return of 29.91% with a maximum drawdown of -59%.

can you make money in penny stocks? performance

penny stocks report of performance

Out-of-sample performance

However, before this, I first ran a walk-forward optimisation, where the look-back parameter for the breakout was altered by a factor of 5.

Each in-sample period lasted three years and the best performing parameters were then test on the following year out-of-sample.

Thus, the walk-forward optimiser on Amibroker ran the system between 2000-2003 then tested 2003-2004. Next, it ran between 2001-2004 and tested 2004-2005 and so on.

The results were an annual return of 29.21% with a maximum drawdown of –69%.

penny stock system out of sample performance

penny stocks out of sample table

penny stocks out of sample distribution

As you can see, the out-of-sample performance for the penny stock system was extremely good in the early years but has been poor in recent years.

So, can you make money in penny stocks?

On this evidence, it could well be possible to come up with a strategy to make money in penny stocks and there are surely some that do. But I don’t think we can rely on this particular trading system without some modifications. It looks like the strategy worked well in the past but no longer works in today’s markets.

With some modifications, maybe a successful breakout strategy could be devised. The results here do provide some encouragement in my opinion. Using a website like Stock Promoters could then assist us in avoiding any penny stocks that are being pumped up by promoters. Finding a unique way to buy cheap stocks should be the overall goal and give the best chance of success.

Code:

SetOption( "InitialEquity", 10000);
SetOption( "MinShares", 0.01 );
SetOption( "MarginRequirement", 100);
SetOption( "UsePrevBarEquityForPosSizing", True );
SetTradeDelays( 0, 0, 0, 0 );
SetOption( "MaxOpenpositions", 20);
MOL = 20;
SetOption ("Maxopenlong",MOL);
SetOption( "AllowSameBarExit", True );
Numberpositions = 20;
SetOption("Maxopenpositions",numberpositions);
SetPositionSize( 1, spsShares );
PositionSize= -100/20;

//////////////////////////////////////////

PositionScore = V;

H1 = Optimize(“H1”,75,45,75,5);

//////////////////////////////////////////

Filter123 = O> 0.25 AND O<2;

Buy = O > Ref(HHV(O,H1),-1) AND Filter123;
Sell = O < Ref(LLV(O,H1),-1);

//////////////////////////////////////////

BuyPrice = H;
SellPrice = L;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );

/////////////////////////////////////////////////////////
///////////////////////// end ///////////////////////////


Leave a comment