Tuesday
Dec162008
Stock Trading System Simulations: Out of the Starting Block
Tuesday, December 16, 2008 at 12:05AM Using the Portfolio123 screen backtest
capability I have discovered some useful
formulae. Now it's time to get my feet wet
with some simulations.

At some point in time I
have to stop playing with the Portfolio123
screen backtest and move forward. The exercise has
been useful and I now have some weapons in my
arsenal. But it is time to leave the starting
block and get going on development of a trading
system.
General Trading System Parameters
My initial trading system will hold approximately 30 stocks. I may vary this number as time goes on to achieve the best performance and lowest drawdown. There is nothing cast in stone here. 30 stocks allows me to reduce down to 20 stocks without violating my objectives or up to 40 stocks without having broker's fees impact my results.
Based on the last post I will continue to use the ranking system "Fourth Generation with Unfollowed Small". This is a very powerful ranking system that seems well suited for industry strength systems. Now for stock buy rules.
Stock Buy Rules
After long consideration I
have decided that the best formula to base my system on
is the one listed below, mainly because it is the one
most suited for meeting my objectives (stated in one of
my first posts): long term, high profit percentage
per trade, etc. The formula is a test of "industry
strength". i.e. only buy stocks within industries
on the rise:
FMedian("C(0)",#Industry)/FMedian("C(220)",#Industry)
> (1+0.1*FMedian("ATRN(100,0)",#Industry))
> (1+0.1*FMedian("ATRN(100,0)",#Industry))
with the number of industry constituents greater than 25:
NoConst > 25
This second formula assures better reliability as the number of stocks within the industry under consideration has to have a reasonable number of stocks.
I set my liquidity filters slightly above what is in my stock universe definition. This will eliminate the majority of cases where liquidity drops shortly after a stock is bought causing the stock to be sold because it dropped out of the stock universe. i.e. there is some slack.
Close(0) > 3
AvgDailyTot(66) > 500000
MktCap > 125
AvgDailyTot(66) > 500000
MktCap > 125
As a reminder here is my stock universe definition:
Close(0) >
2.50
AvgDailyTot(66) > 350000
MktCap > 100
AvgDailyTot(66) > 350000
MktCap > 100
I added a price filter to weed out stocks that are underperforming over the longer term:
Close(0)/Close(250)
> 1
After doing some simulation test runs I decided on a stock ranking buy rule:
Rank > 98
Stock Sell Rules
I want to exit my stock
holding if the industry is exhibiting
weakness. To detect this condition I used a
variation on the buy rule:
(FMedian("C(0)",#Industry)/FMedian("C(220)",#Industry)
<
(1-0.05*FMedian("ATRN(100,0)",#Industry)))
I also want to exit if the
stock is underperforming long term:
Close(0)/Close(250)
< 1
The final sell rules have to do with stock ranking. If the stock ranking drops by 7 points in one week or drops below 80 then I wish to sell the stock.
Rank <
RankPrev(1) -7
Rank < 80
Rank < 80
Simulation Setup
The following screen shot
shows the setup immediately prior to running a
simulation backtest.

Simulation Results

Unfortunately, I'm having
some internet connection issues. So I can't access
any of the stats. I'll end here and pick this up
tomorrow (or soon thereafter).
Take care and happy trading.
Take care and happy trading.





Reader Comments