PureBytes Links
Trading Reference Links
|
Thank you Mark,
I was curious if Mark’s OddBall system could be used as a
stock market timing tool. IOW, could it be used as a
filter for a stock trading system that had its own entry
and exit code but would only take that system’s long
entries when OddBall was long and vice versa for shorts.
I did not have intraday data for advancing issues. I only
had advance/decline EOD data. This was TC2000 data and the
A/D data they provide is the ratio only. They do not have
advancing issues by itself.
I realize that what I did is a considerable departure from
the actual Oddball system; however, I wanted to give Mark
credit for providing me with some inspiration to test some
ideas that I had. In addition, I wanted to share my
results with the list. Within 30 minutes I had a market
timing system that appears to have good historical
results. I am sure if I had spent more time (which I plan
to do) I could find some faults and then improve upon
them. My reason for posting this is to provide some
inspiration for others to produce a market-timing tool to
trade individual stocks.
There has been a lot of discussion regarding optimization
with OddBall. I always try to develop systems that require
no or minimal optimization and are self adjusting to the
changes in the market. With that in mind I first created a
chart with:
1. Data1 = S&P 500 index daily data
2. Data2 = A/D daily data
3. Data3 = A/D weekly data
I first wanted to create a system that only used daily ROC
A/D data as a comparison with weekly ROC A/D data. I
started with this very simple system. I did not optimize
for the length of ROC but merely picked 5 because there are
5 days in the week and I am using daily and weekly data.
No real logic here just a convenient number. Here is the
code:
{System with ROC of A/D}
If RateOfChange(Close Data2, 5) crosses above RateOfChange
(Close Data3, 5) then buy;
If RateOfChange(Close Data2, 5) crosses below RateOfChange
(Close Data3, 5) then sell;
Here are the results of this first system without any other
filters. My improvements to the system are below these
results. Since this is an index and I just bought one unit
and the fact that TradeStation statistics based upon $ are
unusable for historical testing (see Stridsman’s book),
please just look at the %wins and the profit factor. BTW,
I use my own portfolio testing software.
TradeStation Strategy Performance Report - Oddball Russ SP-
500-Daily
Performance Summary: All Trades
Total Net Profit $1,113.50 Open
position P/L ($38.69)
Gross Profit $2,932.64 Gross Loss
($1,819.14)
Total # of trades 236 Percent profitable
57.20%
Number winning trades 135 Number losing trades
101
Largest winning trade $138.81 Largest losing trade
($118.07)
Average winning trade $21.72 Average losing trade
($18.01)
Ratio avg win/avg loss 1.21 Avg trade (win &
loss) $4.72
Max consec. Winners 8 Max consec. losers
5
Avg # bars in winners 14 Avg # bars in losers
18
Max intraday drawdown ($284.45)
Profit Factor 1.61 Max # contracts held
1
Account size required $284.45 Return on account
391.46%
Performance Summary: Long Trades
Total Net Profit $959.50 Open position P/L
($38.69)
Gross Profit $1,890.81 Gross Loss
($931.31)
Total # of trades 118 Percent profitable
65.25%
Number winning trades 77 Number losing trades
41
Largest winning trade $138.81 Largest losing trade
($118.07)
Average winning trade $24.56 Average losing trade
($22.71)
Ratio avg win/avg loss 1.08 Avg trade (win &
loss) $8.13
Max consec. Winners 10 Max consec. losers
3
Avg # bars in winners 16 Avg # bars in losers
17
Max intraday drawdown ($307.05)
Profit Factor 2.03 Max # contracts held
1
Account size required $307.05 Return on account
312.49%
Performance Summary: Short Trades
Total Net Profit $154.00 Open position P/L
$0.00
Gross Profit $1,041.83 Gross Loss
($887.83)
Total # of trades 118 Percent profitable
49.15%
Number winning trades 58 Number losing trades
60
Largest winning trade $104.99 Largest losing trade
($101.23)
Average winning trade $17.96 Average losing trade
($14.80)
Ratio avg win/avg loss 1.21 Avg trade (win &
loss) $1.31
Max consec. Winners 5 Max consec. losers
5
Avg # bars in winners 10 Avg # bars in losers
19
Max intraday drawdown ($472.61)
Profit Factor 1.17 Max # contracts held
1
Account size required $472.61 Return on account
32.59%
The above results are not bad but they don’t get me
excited. After all, the system only took me 5 minutes to
put together, thanks to Mark. Therefore, I messed around
for the next 15-30 minutes adding additional filters. I
finally came up with the system below. Please notice the
additional filters require no optimization.
{ System with ROC of A/D and additional filters}
If RateOfChange(Close Data2, 5) crosses above RateOfChange
(Close Data3, 5)
and C of data4 > C of data5 and C of data6 > C of
data7 and C > C of data8 then buy;
If RateOfChange(Close Data2, 5) crosses below RateOfChange
(Close Data3, 5)
and C of data4 < C of data5 and C of data6 < C of
data7 and
Month(date) <> 10 and Month(date) <> 11 and Month
(date) <> 12 and C < C of data8 then sell;
I inserted the datas a little weird but here is how they go
1. Data1 = S&P 500 index daily data
2. Data2 = A/D daily data
3. Data3 = A/D weekly data
4. Data4 = Cumulative Volume daily data
5. Data5 = Cumulative Volume weekly data
6. Data6 = New Hi/New Lo daily data
7. Data7 = New Hi/New Lo weekly data
8. Data8 = S&P 500 index weekly data
By adding cumulative volume, new hi/new low, weekly S&P
data and seasonality (I don’t want to be short at the
normal year end rally) I got the following results:
TradeStation Strategy Performance Report - Oddball Russ SP-
500-Daily (9/17/1986-2/6/2002)
Performance Summary: All Trades
Total Net Profit $1,692.36 Open
position P/L $71.16
Gross Profit $2,208.90 Gross Loss
($516.54)
Total # of trades 67 Percent profitable
61.19%
Number winning trades 41 Number losing trades
26
Largest winning trade $266.17 Largest losing trade
($155.43)
Average winning trade $53.88 Average losing trade
($19.87)
Ratio avg win/avg loss 2.71 Avg trade (win &
loss) $25.26
Max consec. Winners 7 Max consec. losers
5
Avg # bars in winners 62 Avg # bars in losers
39
Max intraday drawdown ($255.53)
Profit Factor 4.28 Max # contracts held
1
Account size required $255.53 Return on account
662.29%
Performance Summary: Long Trades
Total Net Profit $1,306.06 Open
position P/L $0.00
Gross Profit $1,521.44 Gross Loss
($215.38)
Total # of trades 34 Percent profitable
79.41%
Number winning trades 27 Number losing trades
7
Largest winning trade $266.17 Largest losing trade
($155.43)
Average winning trade $56.35 Average losing trade
($30.77)
Ratio avg win/avg loss 1.83 Avg trade (win &
loss) $38.41
Max consec. Winners 11 Max consec. losers
2
Avg # bars in winners 77 Avg # bars in losers
44
Max intraday drawdown ($245.05)
Profit Factor 7.06 Max # contracts held
1
Account size required $245.05 Return on account
532.98%
Performance Summary: Short Trades
Total Net Profit $386.30 Open position P/L
$71.16
Gross Profit $687.46 Gross Loss
($301.16)
Total # of trades 33 Percent profitable
42.42%
Number winning trades 14 Number losing trades
19
Largest winning trade $245.13 Largest losing trade
($89.13)
Average winning trade $49.10 Average losing trade
($15.85)
Ratio avg win/avg loss 3.10 Avg trade (win &
loss) $11.71
Max consec. Winners 4 Max consec. losers
5
Avg # bars in winners 33 Avg # bars in losers
37
Max intraday drawdown ($227.26)
Profit Factor 2.28 Max # contracts held
1
Account size required $227.26 Return on account
169.98%
Wow! 61% wins with a profit factor of 4.28 for both long
and short. Not bad for a system that was not optimized and
self adjusts for changing markets.
This system has more variables than I would like but it
sure makes you wonder if the entire collective efforts of
those on this list that would like to develop a market
timing system could create a dependable system that
requires “no” optimization. Before I get 100 e-mails
telling me the merits of optimization and the best way to
do it, I want to say that I understand that properly
optimized systems can have great results. I just have a
hang-up in that I don’t like messing with them. I feel
more comfortable with the above types of systems.
I invite others to come up with better alternatives for a
market timing system. I look forward to seeing your code
on this list. I apologize to Mark for my bastardization of
his original concept of OddBall. However, if I remember
his comments correctly, he said for us to use our brains to
come up with something we could use. I don’t trade
futures; therefore, I did just that. I hope our collective
brains will produce a great market-timing tool.
Russ Furse
|