Register for free to join our community of investors and share your ideas. You will also get access to streaming quotes, interactive charts, trades, portfolio, live options flow and more tools.
Tested System
Suppose that today the system is out of the market. You check the AroonOsc. If it is not below -50, things are simple - you Buy if CCI has crossed above -100 and you don't if it hasn't. But what if today AroonOsc is below -50? OK, you check the CCI. If it has not crossed below -200 yet, everything is fine for today - you do nothing.
Correct
But what do you do tomorrow? Do you perform exactly the same checks from the start? Or do you, since the AroonOsc has already fallen below -50, only check the CCI from now on and monitor it until it falls below -200 and then rises above -100?
I think "from now on" is the point of confusion. The answer to your second question is "no". Once the state changes from Aroon below -50 to Aroon above -50, the buy rule changes. The CCI -200 requirement is no longer necessary.
What happens if, while you are waiting for that to happen, AroonOsc moves back above -50? Do you ignore it - or do you then stop monitoring the CCI for falling below -200 first and start again to monitor it for just rising above -100?
You ignore the -200 requirement after the Aroon rises above -50.
I am sorry if I am not expressing myself clearly enough.
No need to apologize :) You are HELPING ME to think through and define the rules. I truly a appreciate it.
In general, it is a good idea to initially develop a system without stops and make sure that it enters trades at the right moment and exits them at reasonable place, too. Only then you could try to improve the performance by placing stop-losses (provided that the system isn't likely to re-enter the trade almost immediately) and trailing stops (to take profits).
Thanks for the advice.
The performance is better than before - but the percentage of winning trades is much lower, too, and the system trades more often. Exact transcript of the trades.
Thanks for the transcript. This is a big help. I'm going to work on improving the concept and will also give WealthBuilder a try. This kind of testing is invaluable.Thanks again for all your help Vess!
Testing the clarified system
I believe your second interpretation is what I had in mind.
I suspect that there is still a bit of misunderstanding, because your next words seemingly contradict the above.
If the Aroon is below -50, the CCI must cross above -200 AND -100 to generate a buy signal. The rule dictates that the CCI must be below -200 (at some point) when the Aroon is in the -50 state. If a signal isn't triggered, and the Aroon moves above -50, the CCI only needs to cross above -100.
See, that's the problem. What does "wait until" mean exactly?
Suppose that today the system is out of the market. You check the AroonOsc. If it is not below -50, things are simple - you Buy if CCI has crossed above -100 and you don't if it hasn't. But what if today AroonOsc is below -50? OK, you check the CCI. If it has not crossed below -200 yet, everything is fine for today - you do nothing.
But what do you do tomorrow? Do you perform exactly the same checks from the start? Or do you, since the AroonOsc has already fallen below -50, only check the CCI from now on and monitor it until it falls below -200 and then rises above -100?
What happens if, while you are waiting for that to happen, AroonOsc moves back above -50? Do you ignore it - or do you then stop monitoring the CCI for falling below -200 first and start again to monitor it for just rising above -100?
I am sorry if I am not expressing myself clearly enough and/or if I am not understanding what you are saying - but please keep in mind that I am not a native English speaker (English is not only not my first language - it's not even my second language) and one needs to understand the rules very precisely, in order to program them correctly in a computer. Computers can't guess what you could have possibly meant - you have to tell them very explicitly what exactly you want done and how.
Since you said that you meant my second interpretation, that's why I have implemented (once the AroonOsc drops below -50, start waiting for the CCI to cross below -200 and then above -100, no matter what the AroonOsc does meanwhile) - but I am still not sure (because of your words above) that this is really what you meant originally.
Cover shorts on any subsequent buy rule.
Very well; I have implemented Short trading rules, too. Also switched to 5% stop-loss.
The system would have been whipsawed using 10% stops. Do more agressive stops (5%) make sense?
The size of the stops doesn't matter, if the problem is that the system keeps trying to buy into downtrends. If you put a large stop, you'll simply lose one big sum of money in one chunk. If you put a small stop, the system will get stopped out much earlier, but it will try to buy almost immediately again - so, you'll lose essentially the same amount of money in multiple consecutive losing trades. The problem has to be fixed by making the system not buy into severe downtrends before they have clearly bottomed - not by adjusting the stop-loss.
The stop-loss has to be adjusted when the system whipsaws. That is, when it enters a trade at the wrong moment, the market goes against it for some time, but after a while reverses and the trade ends up a winner. A too tight stop here is likely to take the system out of the trade too early and at a loss - instead of letting the trade eventually win.
In general, it is a good idea to initially develop a system without stops and make sure that it enters trades at the right moment and exits them at reasonable place, too. Only then you could try to improve the performance by placing stop-losses (provided that the system isn't likely to re-enter the trade almost immediately) and trailing stops (to take profits).
Humor me Vess, can you run the test one more time using the rules I described above?
Certainly, I'm glad to help. Here is what the latest implementation does when trading the COMPX. The performance is better than before - but the percentage of winning trades is much lower, too, and the system trades more often. Exact transcript of the trades follows (thanks to oeo2oo for teaching me how to use pre-formatted text here); the system assumes trading $5,000 positions (i.e., no compounding):
Pos. Shares Entry Date Entry At Exit Date Exit At % Change Net Profit Held Profit/Bar Buy Sig Sell Signal Cum Profit
Long 17 16-Oct-1985 285.70 31-Mar-1987 427.80 49.33 2,395.72 367 6.53 Buy Sell Higher 2,395.72
Long 15 27-Nov-1987 317.20 03-Dec-1987 301.34 -5.42 -257.88 4 -64.47 Buy Stop Loss 2,137.84
Short 16 04-Dec-1987 295.80 09-Dec-1987 299.40 -1.64 -77.58 3 -25.86 Short Cover & Buy 2,060.26
Long 16 09-Dec-1987 299.40 28-Mar-1988 369.00 22.83 1,093.62 75 14.58 Sell Higher 3,153.88
Long 13 02-Dec-1988 373.10 27-Feb-1989 398.40 6.37 308.92 58 5.33 Buy Sell Higher 3,462.80
Long 11 09-Nov-1989 454.70 19-Dec-1989 431.97 -5.40 -270.06 27 -10.00 Buy Stop Loss 3,192.73
Long 11 28-Dec-1989 448.60 24-Jan-1990 419.90 -6.80 -335.68 18 -18.65 Buy Stop Loss 2,857.05
Long 11 16-Feb-1990 430.00 26-Jun-1990 457.60 6.00 283.62 89 3.19 Buy Sell Higher 3,140.67
Short 11 06-Aug-1990 403.70 23-Oct-1990 340.40 15.23 676.32 55 12.30 Short Cover&Buy Lower 3,816.99
Long 14 23-Oct-1990 340.40 20-Mar-1991 462.21 35.37 1,685.36 102 16.52 Sell Higher 5,502.35
Long 8 10-Apr-1992 590.59 28-Apr-1992 561.06 -5.42 -256.22 11 -23.29 Buy Stop Loss 5,246.14
Long 8 06-May-1992 589.86 17-Jun-1992 560.37 -5.42 -255.92 29 -8.82 Buy Stop Loss 4,990.21
Long 8 01-Jul-1992 563.73 24-Sep-1992 584.47 3.24 145.94 59 2.47 Buy Sell Higher 5,136.15
Long 7 23-Apr-1993 661.47 09-Jun-1993 687.00 3.43 158.73 32 4.96 Buy Sell Higher 5,294.88
Long 6 04-May-1994 739.38 23-Jun-1994 702.41 -5.45 -241.79 35 -6.91 Buy Stop Loss 5,053.09
Short 7 24-Jun-1994 699.78 13-Jul-1994 710.88 -1.99 -97.68 12 -8.14 Short Cover & Buy 4,955.41
Long 7 13-Jul-1994 710.88 23-Sep-1994 759.88 6.49 323.02 51 6.33 Sell Higher 5,278.43
Short 6 25-Nov-1994 737.22 28-Nov-1994 743.08 -1.25 -55.14 1 -55.14 Short Cover & Buy 5,223.29
Long 6 28-Nov-1994 743.08 10-Apr-1995 814.44 9.16 408.18 92 4.44 Sell Higher 5,631.47
Long 4 20-Dec-1995 1,032.51 16-Jan-1996 980.88 -5.48 -226.48 17 -13.32 Buy Stop Loss 5,404.99
Long 4 22-Jan-1996 1,019.72 05-Mar-1996 1,084.24 5.84 238.10 30 7.94 Buy Sell Higher 5,643.09
Long 4 05-Aug-1996 1,127.91 24-Sep-1996 1,210.96 6.92 312.22 35 8.92 Buy Sell Higher 5,955.31
Long 4 10-Apr-1997 1,248.31 23-May-1997 1,377.73 9.97 497.70 31 16.05 Buy Sell Higher 6,453.01
Long 3 17-Nov-1997 1,601.95 15-Dec-1997 1,521.85 -5.42 -260.27 19 -13.70 Buy Stop Loss 6,192.74
Long 3 31-Dec-1997 1,565.87 12-Jan-1998 1,482.01 -5.78 -271.56 7 -38.79 Buy Stop Loss 5,921.18
Long 3 14-Jan-1998 1,549.80 08-Apr-1998 1,801.11 15.79 733.95 58 12.65 Buy Sell Higher 6,655.13
Long 2 18-Jun-1998 1,776.35 28-Jul-1998 1,931.83 8.19 290.98 27 10.78 Buy Sell Higher 6,946.11
Long 2 17-Sep-1998 1,646.19 05-Oct-1998 1,563.88 -5.61 -184.60 12 -15.38 Buy Stop Loss 6,761.51
Long 3 16-Oct-1998 1,625.24 10-Feb-1999 2,304.25 41.37 2,017.05 79 25.53 Buy Sell Higher 8,778.56
Long 1 01-May-2000 3,930.18 03-May-2000 3,733.67 -5.51 -216.49 2 -108.24 Buy Stop Loss 8,562.07
Long 1 08-May-2000 3,758.46 09-May-2000 3,570.54 -5.53 -207.90 1 -207.90 Buy Stop Loss 8,354.16
Long 1 17-May-2000 3,649.54 19-May-2000 3,467.06 -5.55 -202.46 2 -101.23 Buy Stop Loss 8,151.71
Long 1 01-Jun-2000 3,471.95 07-Sep-2000 4,047.02 15.99 555.09 68 8.16 Buy Sell Higher 8,706.80
Short 1 25-Sep-2000 3,852.53 26-Sep-2000 3,762.65 1.81 69.90 1 69.90 Short Cover & Buy 8,776.70
Long 1 26-Sep-2000 3,762.65 02-Oct-2000 3,574.52 -5.53 -208.11 4 -52.03 Stop Loss 8,568.58
Short 1 09-Nov-2000 3,174.90 11-Oct-2001 1,649.55 47.41 1,505.37 227 6.63 Short Cover&Buy Lower 10,073.96
Long 3 11-Oct-2001 1,649.55 14-Dec-2001 1,945.18 17.52 866.91 45 19.26 Sell Higher 10,940.87
Short 2 20-Feb-2002 1,762.43 04-Mar-2002 1,850.55 -5.57 -196.22 8 -24.53 Short Stop Loss 10,744.64
Long 2 05-Mar-2002 1,854.71 08-Apr-2002 1,741.10 -6.66 -247.20 23 -10.75 Buy Stop Loss 10,497.44
Long 2 17-Apr-2002 1,829.58 23-Apr-2002 1,738.10 -5.55 -202.94 4 -50.73 Buy Stop Loss 10,294.50
Short 2 24-Apr-2002 1,739.13 15-May-2002 1,705.45 1.36 47.38 15 3.16 Short Cover & Buy 10,341.88
Long 2 15-May-2002 1,705.45 30-May-2002 1,613.42 -5.98 -204.04 10 -20.40 Stop Loss 10,137.84
const AroonPeriod = 200;
const AroonHigh = 50;
const AroonLow = -50;
const Neutral = 0;
const CCIPeriod = 80;
const CCILow = -100;
const CCILower = -200;
const CCIHigh = 100;
const CCIHigher = 200;
const StopLoss = 5;
var AroonPane, CCIPane, AroonOsc, MyCCI : integer;
var Bar, StartBar, EndBar, BuyState, SellState : integer;
HideVolume;
CCIPane := CreatePane(60, False, True);
SetPaneMinMax(CCIPane, CCILower - 10, CCIHigher + 10);
MyCCI := CCISeries(CCIPeriod);
PlotSeries(MyCCI, CCIPane, #Black, #Thick);
DrawHorzLine(CCILow, CCIPane, #Red, #Thin);
DrawHorzLine(CCILower, CCIPane, #Red, #Thick);
DrawHorzLine(Neutral, CCIPane, #Red, #Dotted);
DrawHorzLine(CCIHigh, CCIPane, #Red, #Thin);
DrawHorzLine(CCIHigher, CCIPane, #Red, #Thick);
DrawLabel(GetDescription(MyCCI), CCIPane);
AroonPane := CreatePane(60, False, True);
SetPaneMinMax(AroonPane, AroonLow - 10, AroonHigh + 10);
AroonOsc := SubtractSeries(AroonUpSeries (#Close, AroonPeriod),
AroonDownSeries(#Close, AroonPeriod));
PlotSeries(AroonOsc, AroonPane, #Black, #Thick);
DrawHorzLine(AroonHigh, AroonPane, #Blue, #Thick);
DrawHorzLine(AroonLow, AroonPane, #Blue, #Thick);
DrawHorzLine(Neutral, AroonPane, #Black, #Dotted);
DrawLabel('Aroon Osc (' + IntToStr(AroonPeriod) + ')', AroonPane);
InstallStopLoss(StopLoss);
BuyState := 0;
SellState := 0;
StartBar := AroonPeriod;
EndBar := BarCount - 1;
for Bar := StartBar to EndBar do
begin
ApplyAutoStops(Bar);
if LastPositionActive then
begin
if PositionLong(LastPosition) then
begin
{ Long Position Exit Rules }
case SellState of
0 :
if GetSeriesValue(Bar, AroonOsc) < AroonHigh then
begin
if CrossUnderValue(Bar, MyCCI, CCIHigh) then
SellAtMarket(Bar + 1, LastPosition, 'Sell');
end
else
SellState := 1; { Wait for a crossing above CCIHigher }
1 :
if CrossOverValue(Bar, MyCCI, CCIHigher) then
SellState := 2; { Wait for a crossing below CCIHigh }
2 :
if CrossUnderValue(Bar, MyCCI, CCIHigh) then
SellAtMarket(Bar + 1, LastPosition, 'Sell Higher');
end;
end
else { We have a Short position }
begin
{ Short Position Exit Rules }
case BuyState of
0 :
if GetSeriesValue(Bar, AroonOsc) > AroonLow then
begin
if CrossOverValue(Bar, MyCCI, CCILow) then
begin
CoverAtMarket(Bar + 1, LastPosition, 'Cover & Buy');
BuyAtMarket(Bar + 1, '');
end;
end
else
BuyState := 1; { Wait for a crossing below CCILower }
1 :
if CrossUnderValue(Bar, MyCCI, CCILower) then
BuyState := 2; { Wait for a crossing above CCILow }
2 :
if CrossOverValue(Bar, MyCCI, CCILow) then
begin
CoverAtMarket(Bar + 1, LastPosition, 'Cover&Buy Lower');
BuyAtMarket(Bar + 1, '');
BuyState := 0;
end;
end;
end;
end
else
begin
{ Long Position Entry Rules }
case BuyState of
0 :
if GetSeriesValue(Bar, AroonOsc) > AroonLow then
begin
if CrossOverValue(Bar, MyCCI, CCILow) then
BuyAtMarket(Bar + 1, 'Buy');
end
else
BuyState := 1; { Wait for a crossing below CCILower }
1 :
if CrossUnderValue(Bar, MyCCI, CCILower) then
BuyState := 2; { Wait for a crossing above CCILow }
2 :
if CrossOverValue(Bar, MyCCI, CCILow) then
begin
BuyAtMarket(Bar + 1, 'Buy Lower');
BuyState := 0;
end;
end;
{ Short Position Entry Rules }
if (GetSeriesValue(Bar, AroonOsc) < Neutral) and
(CrossUnderValue(Bar, MyCCI, CCILow)) then
ShortAtMarket(Bar + 1, 'Short');
end;
end;
Clarified Rules
The word "wait until" confuses me a bit. Suppose that today the system is out of the market and AroonOsc is below -50. Which of the following is the proper way to proceed:
1) Since AroonOsc is less than -50, check whether CCI has crossed above -200. If it has, Buy. Otherwise, do nothing. Perform this check (for both the AroonOsc and CCI) every day.
2) Since Aroon Osc has dropped below -50, start waiting for the CCI to cross above -200. That is, once we enter this state, every day, no matter what the value of the AroonOsc is from now on, check the CCI and Buy as soon as it crosses above -200.
I believe your second interpretation is what I had in mind. If the Aroon is below -50, the CCI must cross above -200 AND -100 to generate a buy signal. The rule dictates that the CCI must be below -200 (at some point) when the Aroon is in the -50 state. If a signal isn't triggered, and the Aroon moves above -50, the CCI only needs to cross above -100.
BUY RULES
If the Aroon is below -50, BUY when the CCI crosses above -200 AND -100
If the Aroon is above -50, BUY when the CCI crosses above -100
SELL RULES
If the Aroon is above +50, SELL when the CCI crosses below +200 AND +100
If the Aroon is below +50, SELL when the CCI crosses below +100
Sell long positions on any Sell short rule.
Place stops 5% below any buy.
SHORT RULES (green arrows)
Short if the CCI crosses from above to below +100 as
long as the Aroon Oscillator is below "0".
That's good - but what are the Cover rules? Does the system cover when a Buy signal occurs?
Yes.
If the Aroon is below 0, SHORT when the CCI crosses below -100
Cover shorts on any subsequent buy rule.
Place stops 5% above Short Sales.
This doesn't seem to be the case, according to your chart - the system has stayed Short from September 2000 to September 2001, yet there have been several Buy signals in-between.
Here's my takeaway from the chart: The CCI fell below -200 at the start of October and rose above -200 BEFORE the Aroon Oscillator went south of -50 in late October. (This is damn hard to tell from a 1000 pixel chart, I'm probably wrong). So to my thinking, the CCI would need to dip again below -200 before any cross above -100 would qualify as a buy signal. When the Aroon is at or below -50, it's telling me this is a bad-ass down trend - DON'T BUY unless the CCI tells you the sell-off is out of gas.
Note from late October '00 through early September '01, the Aroon was below -50 but the CCI never fell below -200 (or so it appears). There was a short period between early September '01 and late September'01 when the Aroon peeked up above -50. From late September '01 to early December '01, the Aroon was again below -50, BUT this time, the CCI was clearly below -200. This set up a ballsy buy signal in early October followed by a sell short signal in late December.
The real damage was done from March through May of 2002. I counted 3 disasterous buy signals during that period. Had the Aroon moved below -50 during that period, it would have eliminated two. I shall begin looking for a bear market filter.
Backtesting shows that the system performs quite well in bull markets (backtested since the 80s) - but is disastrous in bear markets. It had series of losing trades since May 2000 and another one in September 1998 - another bad time for the bulls.
I agree. The system would have been whipsawed using 10% stops. Do more agressive stops (5%) make sense? The subsequent buy signals in Oct '98 and May '00 look good.
Humor me Vess, can you run the test one more time using the rules I described above? I'm not practiced in writing scripts.
Thanks for your patience!
Very interesting!
There's four components to the IW. Each looks at a different aspect of the U.S. market. Here' a web page where you can read more about it:
http://www.aim-users.com/iw.htm
That's some very interesting info you have there! Thanks for sharing; I have bookmarked the page. It's a very interesting approach - technical by nature, but combining elements of fundamental analysis plus an AIM-style money-management system.
Where do you get your historical data from? I mean this kind of stuff (number of issues traded, weekly new highs and lows, index P/Es, Value Line Best/Worst performers, etc.) is not something that you can normally download from Yahoo! Finance.
Regards,
Vesselin
Implementing the updated system
Aroon filter system: RULES UPDATE...
And here is my WealthScript implementation of the updated system. Again no Shorting, because of the lack of Cover rules. I've put a 10% stop-loss but it doesn't help much. In fact, with the new rules the system performs slightly worse than the previous one.
Regards,
Vesselin
const AroonPeriod = 200;
const AroonHigh = 50;
const AroonLow = -50;
const Neutral = 0;
const CCIPeriod = 80;
const CCILow = -100;
const CCILower = -200;
const CCIHigh = 100;
const CCIHigher = 200;
const StopLoss = 10;
var AroonPane, CCIPane, AroonOsc, MyCCI : integer;
var Bar, StartBar, EndBar, BuyState, SellState : integer;
HideVolume;
CCIPane := CreatePane(60, False, True);
SetPaneMinMax(CCIPane, CCILower - 10, CCIHigher + 10);
MyCCI := CCISeries(CCIPeriod);
PlotSeries(MyCCI, CCIPane, #Black, #Thick);
DrawHorzLine(CCILow, CCIPane, #Red, #Thin);
DrawHorzLine(CCILower, CCIPane, #Red, #Thick);
DrawHorzLine(Neutral, CCIPane, #Red, #Dotted);
DrawHorzLine(CCIHigh, CCIPane, #Red, #Thin);
DrawHorzLine(CCIHigher, CCIPane, #Red, #Thick);
DrawLabel(GetDescription(MyCCI), CCIPane);
AroonPane := CreatePane(60, False, True);
SetPaneMinMax(AroonPane, AroonLow - 10, AroonHigh + 10);
AroonOsc := SubtractSeries(AroonUpSeries (#Close, AroonPeriod),
AroonDownSeries(#Close, AroonPeriod));
PlotSeries(AroonOsc, AroonPane, #Black, #Thick);
DrawHorzLine(AroonHigh, AroonPane, #Blue, #Thick);
DrawHorzLine(AroonLow, AroonPane, #Blue, #Thick);
DrawHorzLine(Neutral, AroonPane, #Black, #Dotted);
DrawLabel('Aroon Osc (' + IntToStr(AroonPeriod) + ')', AroonPane);
InstallStopLoss(StopLoss);
BuyState := 0;
SellState := 0;
StartBar := AroonPeriod;
EndBar := BarCount - 1;
for Bar := StartBar to EndBar do
begin
ApplyAutoStops(Bar);
if LastPositionActive then
begin
if PositionLong(LastPosition) then
begin
{ Long Position Exit Rules }
case SellState of
0 :
if GetSeriesValue(Bar, AroonOsc) < AroonHigh then
begin
if CrossUnderValue(Bar, MyCCI, CCIHigh) then
SellAtMarket(Bar + 1, LastPosition, '');
end
else
SellState := 1; { Wait for a crossing above CCIHigher }
1 :
if CrossOverValue(Bar, MyCCI, CCIHigher) then
SellState := 2; { Wait for a crossing below CCIHigh }
2 :
if CrossUnderValue(Bar, MyCCI, CCIHigh) then
SellAtMarket(Bar + 1, LastPosition, '');
end;
end
else
begin
{ Short Position Exit Rules }
if False then
CoverAtMarket(Bar + 1, LastPosition, '');
end;
end
else
begin
{ Long Position Entry Rules }
case BuyState of
0 :
if GetSeriesValue(Bar, AroonOsc) > AroonLow then
begin
if CrossOverValue(Bar, MyCCI, CCILow) then
BuyAtMarket(Bar + 1, '');
end
else
BuyState := 1; { Wait for a crossing below CCILower }
1 :
if CrossUnderValue(Bar, MyCCI, CCILower) then
BuyState := 2; { Wait for a crossing above CCILow }
2 :
if CrossOverValue(Bar, MyCCI, CCILow) then
begin
BuyAtMarket(Bar + 1, '');
BuyState := 0;
end;
end;
{ Short Position Entry Rules }
if False then
ShortAtMarket(Bar + 1, '');
end;
end;
Clarification coming soon...
I'll be away for a couple hours but I'll clarify
your questions tonight. I agree, my wording is
a bit confusing. I believe this system is much better
than the Stochastic system you tested previously.
BTW, thanks for testing it.
Please note the rules modifications in my last post.
Yes, I am familiar with Paul Desmond's paper.
I mention it myself in this message of mine here:
http://www.investorshub.com/boards/read_msg.asp?message_id=475125
Wow, we just had a 90% Down Volume day! Too bad that I can't easily check the point gain/loss ratio.
BTW, there are some unclear things there. What about issues like BRK/A? It moves in a day so many points as most of all the other stocks combined. I think it should be excluded from the computation, because it will distort it improportionally - but Desmond doesn't mention it himself and he isn't answering my inquiries (other than the standard "we've been overloaded with requests, so we are forced to spend our time answering only those of them that come from paying customers").
Regards,
Vesselin
Aroon filter system: RULES UPDATE...
in bold
BUY RULES
If the CCI crosses from below to above -100 as
long as the Aroon Oscillator isn't at -50 or below.
If the Aroon Oscillator is at or below -50, you must
wait until the CCI crosses below -200 and rises
above -100.
SELL RULES
If the CCI crosses from above to below +100 as
long as the Aroon Oscillator isn't at +50 or above.
If the Aroon Oscillator is at or above +50, you must
wait until the CCI crosses above +200 and falls
below +100.
SHORT RULES (green arrows)
Short if the CCI crosses above +100 and falls below
+100 as long as the Aroon Oscillator is below "0".
Updated chart shows improved sell signals:
Backtesting the second system
If the Aroon Oscillator is at or below -50, you must
wait until the CCI crosses from below to above -200.
The word "wait until" confuses me a bit. Suppose that today the system is out of the market and AroonOsc is below -50. Which of the following is the proper way to proceed:
1) Since AroonOsc is less than -50, check whether CCI has crossed above -200. If it has, Buy. Otherwise, do nothing. Perform this check (for both the AroonOsc and CCI) every day.
2) Since Aroon Osc has dropped below -50, start waiting for the CCI to cross above -200. That is, once we enter this state, every day, no matter what the value of the AroonOsc is from now on, check the CCI and Buy as soon as it crosses above -200.
I know that they sound similar but they aren't exactly the same. The first rule is "more natural" while the second is more correctly described by the phrase "wait for...". Which of the two did you mean? For now, I am assuming the first; if I am wrong, I'll correct the program.
SHORT RULES (green arrows)
Short if the CCI crosses from above to below +100 as
long as the Aroon Oscillator is below "0".
That's good - but what are the Cover rules? Does the system cover when a Buy signal occurs? This doesn't seem to be the case, according to your chart - the system has stayed Short from September 2000 to September 2001, yet there have been several Buy signals in-between.
Because of the incompleteness of the Short trade rules, I have omitted them from my WealthScript implementation (appended at the end of this message).
Backtesting shows that the system performs quite well in bull markets (backtested since the 80s) - but is disastrous in bear markets. It had series of losing trades since May 2000 and another one in September 1998 - another bad time for the bulls. The simple addition of a stop-loss doesn't help the matters much, because the system keeps trying to go Long as the market keeps getting oversold. Hopefully, adding proper Short trading rules would improve the results.
1) Sell signals in strong up trends tend to be
early, but not all together bad.
Yep; they are quite good, actually.
2) This system failed to generate a buy signal in
'99, missing the entire rally that lead to the Q1
2000 peak.
This was "unnatural time". Even a human technician was likely to stay out of the market during that time. There was no reason for the markets to go up, yet they continued to go up, killing any attempt to short them.
3) Check out the last buy signal. The system went
totally haywire. Obviously, stops would have kept
loses from going out of control.
Yes, the system needs adjustment for bear markets. And, no, a simple stop-loss doesn't help.
4) The CCI is a bit erratic. It's difficult to see exactly
when it crosses above and below overbought and oversold
levels.
Oh, a computer has no problems with that.
Regards,
Vesselin
Anyway, here is the WealthScript implementation. I have tried to make it easily modifiable - the parameters are grouped at the top, there are do-nothing paceholders where the code controlling the Short trades should be, and so on. A pity that this site does not seem to have the equivalent of the <tt> HTML tag (suppressing the text formatting and using a non-proportional font), or the program wouldn't look so awful (no identation, all lines flushed to the left, etc.).
const AroonPeriod = 200;
const AroonHigh = 50;
const AroonLow = -50;
const AroonNeutral = 0;
const CCIPeriod = 80;
const CCILow = -100;
const CCILower = -200;
const CCIHigh = 100;
const CCIHigher = 200;
const StopLoss = 10;
var AroonPane, CCIPane, AroonOsc, MyCCI, Bar, StartBar, EndBar: integer;
HideVolume;
CCIPane := CreatePane(60, False, True);
SetPaneMinMax(CCIPane, CCILower - 10, CCIHigher + 10);
MyCCI := CCISeries(CCIPeriod);
PlotSeries(MyCCI, CCIPane, #Black, #Thick);
DrawHorzLine(CCILow, CCIPane, #Red, #Thin);
DrawHorzLine(CCILower, CCIPane, #Red, #Thick);
DrawHorzLine(0, CCIPane, #Red, #Dotted);
DrawHorzLine(CCIHigh, CCIPane, #Red, #Thin);
DrawHorzLine(CCIHigher, CCIPane, #Red, #Thick);
DrawLabel(GetDescription(MyCCI), CCIPane);
AroonPane := CreatePane(60, False, True);
SetPaneMinMax(AroonPane, AroonLow - 10, AroonHigh + 10);
AroonOsc := SubtractSeries(AroonUpSeries (#Close, AroonPeriod),
AroonDownSeries(#Close, AroonPeriod));
PlotSeries(AroonOsc, AroonPane, #Black, #Thick);
DrawHorzLine(AroonHigh, AroonPane, #Blue, #Thick);
DrawHorzLine(AroonLow, AroonPane, #Blue, #Thick);
DrawHorzLine(AroonNeutral, AroonPane, #Black, #Dotted);
DrawLabel('Aroon Osc (' + IntToStr(AroonPeriod) + ')', AroonPane);
InstallStopLoss(StopLoss);
StartBar := AroonPeriod;
EndBar := BarCount - 1;
for Bar := StartBar to EndBar do
begin
ApplyAutoStops(Bar);
if LastPositionActive then
begin
if PositionLong(LastPosition) then
begin
{ Long Position Exit Rules }
if GetSeriesValue(Bar, AroonOsc) < AroonHigh then
begin
if CrossUnderValue(Bar, MyCCI, CCIHigh) then
SellAtMarket(Bar + 1, LastPosition, '');
end
else
begin
if CrossUnderValue(Bar, MyCCI, CCIHigher) then
SellAtMarket(Bar + 1, LastPosition, '');
end;
end
else
begin
{ Short Position Exit Rules }
if false then
CoverAtMarket(Bar + 1, LastPosition, '');
end;
end
else
begin
{ Long Position Entry Rules }
if GetSeriesValue(Bar, AroonOsc) > AroonLow then
begin
if CrossOverValue(Bar, MyCCI, CCILow) then
BuyAtMarket(Bar + 1, '');
end
else
begin
if CrossOverValue(Bar, MyCCI, CCILower) then
BuyAtMarket(Bar + 1, '');
end;
{ Short Position Entry Rules }
if false then
ShortAtMarket(Bar + 1, '');
end;
end;
More backtesting
"You sell when %K crosses below %D if the oscillator is overbought (or near overbought) AND the Aroon Oscillator isn't above +50."
You are correct. Sorry about my typo (brain fart).
Actually, I implemented the system (Long-only) in WealthScript and with the original (incorrect) Sell condition it shows better results.
I've backtested it on the SPX, the COMPX and the NDX since the 80s and it shows some interesting results. First of all, it has a very high percentage of winning trades. In fact, on all the three indexes, it had only one loser - the last trade, which is still open. Unfortunately, that is quite a loser - on the SPX and the NDX it went Long on September 6, 2001 and on the COMPX it went Long on May 31, 2000. Obviously, some improvement is needed to stop it out of losing trades and switch to the Short side in falling markets. Otherwise, the system makes averagely 7-15% per trade and trades averagely every 150-200 days. Not bad but there is still a lot of room for improvement.
Here is the implementation in WealthScript; you can go to http://www.wealth-lab.com and enter it as a private script there and run some tests. You'll need an account but it's free. (The site makes money by selling the desktop version of their product - which is very good, albeit still quite buggy.)
Regards,
Vesselin
const AroonPeriod = 200;
const StochKPeriod = 60;
const StochDPeriod = 12;
const Overbought = 75;
const Oversold = 25;
const AroonHigh = 50;
const AroonLow = -50;
var AroonPane, StochPane, AroonOsc, Bar, StartBar, EndBar: integer;
HideVolume;
AroonPane := CreatePane(60, False, True);
SetPaneMinMax(AroonPane, AroonLow - 10, AroonHigh + 10);
AroonOsc := SubtractSeries(AroonUpSeries (#Close, AroonPeriod),
AroonDownSeries(#Close, AroonPeriod));
PlotSeries(AroonOsc, AroonPane, #Black, #Thin);
DrawHorzLine(AroonHigh, AroonPane, #Blue, #Dotted);
DrawHorzLine(AroonLow, AroonPane, #Blue, #Dotted);
StochPane := CreatePane(60, False, True);
PlotSeries(StochKSeries(StochKPeriod), StochPane, #Black, #Thin);
PlotSeries(StochDSeries(StochKPeriod, StochDPeriod), StochPane, #Red, #Thin);
DrawHorzLine(Overbought, StochPane, #Red, #Dotted);
DrawHorzLine(Oversold, StochPane, #Green, #Dotted);
StartBar := AroonPeriod;
EndBar := BarCount - 1;
for Bar := StartBar to EndBar do
begin
if LastPositionActive then
begin
if PositionLong(LastPosition) then
begin
{ Long Position Exit Rules }
if (StochK(Bar, StochKPeriod) > Overbought) and
(GetSeriesValue(Bar, AroonOsc) >= AroonHigh) and
CrossOver(Bar, StochKSeries(StochKPeriod), StochDSeries(StochKPeriod, StochDPeriod)) then
SellAtMarket(Bar + 1, LastPosition, '');
end
else
begin
{ Short Position Exit Rules }
if False then
CoverAtMarket(Bar + 1, LastPosition, '');
end;
end
else
begin
{ Long Position Entry Rules }
if (StochK(Bar, StochKPeriod) < Oversold) and
(GetSeriesValue(Bar, AroonOsc) >= AroonLow) and
CrossOver(Bar, StochKSeries(StochKPeriod), StochDSeries(StochKPeriod, StochDPeriod)) then
BuyAtMarket(Bar + 1, '')
{ Short Position Entry Rules }
else if False then
ShortAtMarket(Bar + 1, '');
end;
end;
This was posted on a few other message boards. Not sure if you have seen it, but I thought you may be interested.
http://www.mta.org/pdf/2002DowAward.pdf
GT
Here's another way to use the Aroon filter system.
I used the CCI instead of stochastics for this test.
Instead of filtering out signals, I use the Aroon
as a way of raising or lowering requirements to
generate signals. Here are the buy, sell, and
short rules:
BUY RULES
If the CCI crosses from below to above -100 as
long as the Aroon Oscillator isn't at -50 or below.
If the Aroon Oscillator is at or below -50, you must
wait until the CCI crosses from below to above -200.
SELL RULES
If the CCI crosses from above to below +100 as
long as the Aroon Oscillator isn't at +50 or above.
If the Aroon Oscillator is at or above +50, you must
wait until the CCI crosses from above to below +200.
SHORT RULES (green arrows)
Short if the CCI crosses from above to below +100 as
long as the Aroon Oscillator is below "0".
You'll note a couple funky things:
1) Sell signals in strong up trends tend to be
early, but not all together bad.
2) This system failed to generate a buy signal in
'99, missing the entire rally that lead to the Q1
2000 peak.
3) Check out the last buy signal. The system went
totally haywire. Obviously, stops would have kept
loses from going out of control.
4) The CCI is a bit erratic. It's difficult to see exactly
when it crosses above and below overbought and oversold
levels. I suppose there's a way to smooth it.
Hi V, There's four components to the IW. Each looks at a different aspect of the U.S. market. Here' a web page where you can read more about it:
http://www.aim-users.com/iw.htm
In "average risk" times the four seem to go their own ways. However, when the four come into harmony either as being bullish or bearish, I pay attention. It's quite rare that all four as singing the same tune. Sometimes one of the components will get so far out of normal range as to bring the entire IW to that same direction. In March 2000 the Speculation component hit its own record high, pulling the entire IW to its own record high risk reading. Speculation's high value more than overwhelmed the false signal given by Relative Valuation.
Currently all four are in their respective Bullish modes:
Relative Valuation
Speculation
Divergent Thinking
Zeal !!
Speculation deals with stocks well established enough to be in Value Line where Zeal is more to do with IPO surges. Divergence is a measure of herd mentality, it looks at whether there's a bias toward buying or selling or a spit in such thinking. Relative valuation looks at Value Line's P/E ratio combined with the 13 week Treasury rate. The long term average is about "20" with much more than a point spread in either direction showing bullish or bearish sentiment.
Best regards, Tom
Answers about the "system"
1) Does the system go only long (i.e., Buy/Sell) or does it go short too? If the latter, what are the conditions for taking a short position - or is the system always in the market, alternating between long and short positions?
It's meant to go long and short, BUT (and it's a BIG BUT), I haven't yet developed rules for selling or covering shorts. Also, this "system" hasn't been fully developed yet. First of all, the 200 day Aroon doesn't do a very good job of screening out Stochastic sell (short) signals at the on-set of bull market rallys. I am thinking of adding an additional screen, possibly using a breadth thrust indicator as an warning against taking short positions when sell short signals occur soon after an explosive move. Second, I'm not quite sure buy signals (go long) need to be screened at all. Given the typical nature of price movements, sell offs tend to occur very quickly. Rallys off oversold lows are tradable (although dangerous without agressive stops).
"You sell when %K crosses below %D if the oscillator is overbought (or near overbought) AND the Aroon Oscillator isn't above +50."
You are correct. Sorry about my typo (brain fart).
Testing the system
25 for oversold and 75 for overbought.
Thanks. I have a couple of additional questions:
1) Does the system go only long (i.e., Buy/Sell) or does it go short too? If the latter, what are the conditions for taking a short position - or is the system always in the market, alternating between long and short positions?
2) You mentioned that the trading rules were
You buy when %K crosses above %D if the oscillator is oversold (or near oversold) AND the Aroon Oscillator isn't below -50.
You sell when %K crosses above %D if the oscillator is overbought (or near overbought) AND the Aroon Oscillator above +50.
I just noticed that the Sell signal is not the exact opposite of the Buy signal. Did you really meant what you wrote above - or did you mean something like
"You sell when %K crosses below %D if the oscillator is overbought (or near overbought) AND the Aroon Oscillator isn't above +50."
?
Regards,
Vesselin
I see the charts now.
Sorry, apparently the server was down for maintenance. It's now working.
Yep, it is.
How do you compute this indicator?
Regards,
Vesselin
Analysis
So are you currently long?
. This is too general a question. I have a small long position in the QQQs - I think this is the answer you were looking for. (Other than that, I am very long various gold mining shares, but this is not pertient to this particular bear market rally of the general markets that we're discussing.)
What percentage of your trading amount?
Oh, just a very small position - 100 shares. This is a bear market rally, after all, and these have to be played very carefully.
After fully covering, I had a terrible feeling that I was completely shaken out by what would probably be just a typical bear market ralley to the 50ema as we've seen in March and May which I now feel is all that this was.
I think you have been right to cover and should have done it even more expeditively (instead of gradually phasing it to August 20). Yes, this is just a typical bear market rally - but a major one, like the ones in January, April and September 2001. It has a fair chance of reaching the 200-dma.
We saw a perfect bounce off of major resistence at 1425.
Of course, because it is an obvious major resistance level.
I think once 1200 is reached we could either have a perfect setup for a double bottem, or a penetration would be a signal to go aggresively short.
I anticipate a bounce from around the 1250-1260 level. If that does not matterialize, I'll be stopped out of my position. I won't be waiting for the 1200 level to be broken - breaking the uptrend accross the July and August lows would be enough to stop me out:
I know further downside is at odds with your thoughts
. It's all a matter of time frame. I think that we'll generally go up in the next few weeks to a couple of months. Once this bear market rally ends, a major top will be put in place and another huge decline will start - similar in percentage terms to the one since the March 2000 top. I think that the COMPX will bottom between 450 and 1100; more likely between 500 and 800. So, yes, I do see a lot of further downside - just not right now.
Also, it appears that during a primary bear trend it requires that the indicators are in the extreme oversold level to indicate a bottem, but they may never reach the extreme overbought levels before a top is actually put in.
Not sure what you mean exactly. I don't mean just the conventional overbought/oversold indicators; I watch a whole range of market breadth indicators, the BPI indexes, etc. They showed quite a big top in the beginning of the year and suggested that the March Madness was going to be just a minor uptick within the generally down picture.
As such, it is not out of the realm of possibilities that we continue down from here.
It certainly is! That's what stops are for.
How are you projecting a tartet of 1550 on the NASDAQ?
That's not a projection; that's just an estimation of the maximum upside potential of this bear market rally. I am not saying that we'll go that high; I am saying that we're unlikely to go higher. (OK, one Elliott Wave cound suggests around 1960, but I'll believe it when I see it.)
Draw a line accross the January and March highs. It is currently around 1525 (and keeps falling - it's a moving target). We might have a small fakeout move above this downtrend (because it is way too obvious and everybody would expect that we stop there - and would buy the breakout) - but that's about it.
Alternatively notice the bull flag formed since the August low:
Implied upside target is 1295.8 + (1426.8 - 1205.7) = 1516.9 - i.e., in the same ballpark.
Vesselin, I think this will be a great board for the serious investor/trader.
I certainly hope so.
Regards,
Vesselin
RE: Distinguishing trending from range-bound markets.
Thanks for the great tips Vess.I'd like to hear your thoughts on this observation: The relationship between moving averages seem to indicate whether a range-bound market is in play. For example, when the PPO 50, 250 is between +3 and -3, there's a pretty good chance you're in a range bound market. A breakout above +4 or below -4 usually signifies the market is trending strong.
"I had missed your excellent message somehow. Interesting system."
Thanks for your interest. I wouldn't call it a system (yet), just the first stab at a concept. The buy and sell signals are actually long and short entry points, not "buy and sell" signals necessary to qualify it as a trading system. At a bare minimum, you would want to use stops as a trading rule.
"You buy when %K crosses above %D if the oscillator is oversold (or near oversold) AND the Aroon Oscillator isn't below -50.
What exactly do you consider "oversold (or near oversold)" and "overbought (or near overbought)" levels?
25 for oversold and 75 for overbought. The concept is actually more important than the indicators or levels at this point. I'm not even sure if Stochastics and the Aroon Oscillator are the right indicators.
Also, any particular reasons why you have used the NYSE Composite to illustrate your system - instead of some more popular index, like the SPX, the COMPX or the DJIA?
No particular reason.
Hi V, Sorry, apparently the server was down for maintenance. It's now working.
http://www.investorshub.com/boards/read_msg.asp?message_id=484376
Best regards, Tom
Hi Vesselin,
So are you currently long? What percentage of your trading amount?
I was building my short positions since May until I was over 100% short toward the end of the down trend. I too had anticipated an intermediate trend reversal in early August and began covering my shorts and taking profits. By August 20 I was completely out but had not yet been convinced to go long until what I felt was major resistence at around the 1425 level would be broken.
After fully covering, I had a terrible feeling that I was completely shaken out by what would probably be just a typical bear market ralley to the 50ema as we've seen in March and May which I now feel is all that this was. We saw a perfect bounce off of major resistence at 1425.
I've currently started to build up my shorts positions again and will continue if this selloff continues. I have a mental stop at NASDAQ 1450 or so.
I think once 1200 is reached we could either have a perfect setup for a double bottem, or a penetration would be a signal to go aggresively short.
I know further downside is at odds with your thoughts but many of the trend indicators are starting to show signs of turning. Also, it appears that during a primary bear trend it requires that the indicators are in the extreme oversold level to indicate a bottem, but they may never reach the extreme overbought levels before a top is actually put in. Of course the reverse is true in primary bull trends where the indicators may hug the overbought level. As such, it is not out of the realm of possibilities that we continue down from here. Do you have any thoughts on this? How are you projecting a tartet of 1550 on the NASDAQ?
Vesselin, I think this will be a great board for the serious investor/trader.
Regards,
Rob
Thanks Vesselin for your response.
Best Regards
Interesting system
I had missed your excellent message somehow. Interesting system. I would like to backtest it (e.g., with Wealth-Lab; see http://www.wealth-lab.com ) but I need a bit more precise description.
You buy when %K crosses above %D if the oscillator is oversold (or near oversold) AND the Aroon Oscillator isn't below -50.
What exactly do you consider "oversold (or near oversold)" and "overbought (or near overbought)" levels? I see what you mean on the chart, but in order to test it with a computer, I need precise numbers.
Also, any particular reasons why you have used the NYSE Composite to illustrate your system - instead of some more popular index, like the SPX, the COMPX or the DJIA?
Regards,
Vesselin
Tom, I can't see the charts, sorry.
I cannot access http://www.aim-users.com with my browser either, although the site does not appear to be down at the moment (e.g., ping and traceroute to it work just fine).
Regards,
Vesselin
cookingcajun, Welcome to IHUB as I see you are new here. I can't help on your question but was interested by your screen name since we live just below Lafayette.
whitelake
Hi V, Here's what I use:
It's not in the same physical size as your graphs, but I hope you can see the pattern.
This graph shows the history back to 1982:
Not many low risk periods in all that time. Mostly average and occasional high risk markets.
Four components drive this indicator. Two are my own and two are things I've come to find valuable.
There are a variety of ways one can use this information. One could exit the market during high risk events. One could cut back on one's holdings, etc. Low risk times are so rare and have been such good entry points for mid and long term investing, that they have to be considered seriously.
Of all the years I've kept this data, I was most impressed with the long delay between the record high risk reading in March of 2000 to after the 9/11 tragedy when the IW finally signalled relative safety to return to the market place. It waited so long and the market fell so far that I was beginning to think it was broken!
It's a shame that the WTC and Pentagon tragedies had to occur to give that low risk signal. It, I believe, changed the timing of the current low risk period we're now in.
Best regards, Tom
Which indices?
Decisionpoint offers a chart with those numbers on them.
Yes, DecisionPoint.com offers almost everything that StockCharts.com does, plus some more.
You have to be a member to get the info.
You do? Not for me, then. I've had enough with paid subscription to financial sites. I don't do such things as a matter of principle - StockCharts.com was the only exception, because I really like their charts - and see what I got.
Just quickly glancing at them, it appears that they are in the "buy" at around 90%.
Sorry, I must be misunderstanding something. Which indices are in the "buy" at around 90%? Surely not the BPIs?! They rarely ever get that high and, even if they do, they would be screaming "SELL" then.
Regards,
Vesselin
Targets and trading frequency
What is your projected target for this next upleg on the NDX ?
I am not very good at determining exact price and time targets - I just get in and out of position when my indicators tell me to do so. I believe that the main idea behind technical analysis is not to predict the future but to get a more clear picture of the present. So, I buy when the picture says that the market is starting to go up and sell when it says that the market is starting to go down.
Of course, when we know well enough what the present picture is (or, in other words, when we have a reasonably reliable model of the psychological state of the trading masses), we can (using the law of psychological inertia) project that the market will continue to move in the same direction for some reasonable time and project targets with a certain degree of probability. However, they aren't anything certain, so we should not rely on them too much. The market will do whatever the market wants to do and we must use technical analysis to get a clear picture of what it is doing.
Back to your original question, I expect QQQ to reach the low 30s before this bear market rally is over. COMPX should reach around 1550, the NDX - around 1200-1300. They will enounter the 200-dma around these levels. They might even break above it for a little while, but let's take the things one step at a time. When/if we get that far, we'll look at the indicators to tell us whether there is a chance for a little bit more upside left.
If you look at the daily chart of these indexes (let's use the NDX, since this is what you asked about), you'll see a bull flag starting from the August low with an implied target again around 1125 (926.6 + (1052.5 - 856.3) = 1122.8), which gives us another estimate for the potential upside target:
How often do you normally trade your positions?
As I explained above, I normally let the indicators tell me when to trade - so, I don't know in advance. The time frame of the trade can be as short as a single day (if I am wrong and am stopped out of position) or as long as several months. But my goal is to trade once every few weeks to every few months.
Regards,
Vesselin
Dr. V,
Decisionpoint offers a chart with those numbers on them. You have to be a member to get the info. I could look at the different indices and post the numbers. Just quickly glancing at them, it appears that they are in the "buy" at around 90%. Gleno
Business Week "Investor Toolbox" Seminar & Service-- Opinions Needed.
I'm am a novice in investment, but my husband is a full time individual investor. In one to two years, I'll be quitting my current job to assist him in doing stock research as his eyesight can't take long periods of reading and computer work. I'm currently compiling my reading library about investments and will be spending more time with my husband learning.
MY Question:
I've considered enrolling him in the Business Week's "Investor Toolbox" seminar and online service. He currently subscribes to several online stock research / information websites. I had hopes of this program reducing his research time as well as finding methods for small increases in profits. It appeared that perhaps using this online service would allow him to reduce the number of fee based research sevices he is using currently. I would be grateful for anyone who can provide opinions of this service as well as alternative and perhaps more effective investment research tools.
I know that he sells covered calls and has experience in commodities. Why am I writing and not him? Did I mention research on a general level is my hobby? I found your site while trying to find the nitty gritty of the "Investor Toolbox".
Thanks
Vesselin,
Thanks again.You have a wealth of knowledge and the willingness to share it.What is your projected target for this next upleg on the NDX ?How often do you normally trade your positions?
Best Regards
Distinguishing trending from range-bound markets
Is there a good way to determine in advance when you are moving from a trading range to a trending market(UP or Down)?
As a matter of fact - yes. One of the best indicators for this purpose is the ADX:
The level of the black line indicates the strength of the trend - the higher it is, the stronger the trend. Usually, when it is below 20, this suggests that we have a trading-range market while if it is higher than that, it suggests a trending market. The direction of the trend is indicated by the -DI and +DI indicators. When +DI is above -DI, the trend is up; when -DI is above +DI, the trend is down. You would notice how when the trend is weak (i.e., ADX is below 20), +DI and -DI often flip-flop around each other.
Another indicator which can be used for this purpose is the Aroon. When the red line (AroonDown) is above the green line (AroonUp), the trend is down; when the opposite is true, the trend is up. The strength of the trend can be measured by the distance between the two lines. However, I am more comfortable with using the ADX myself - although I do keep an eye on Aroon, too.
Can you predict when the slow stochastic will be overbought or oversold and stay in that position for days or when the Fast % K will break the slow % D?
Usually, when the market is trending strongly (up or down) the overbought/oversold indicators like the stochastic would stay in extreme overbought or oversold positions for a long time. The proper way to trade them is in combination with a trend-detecting indicator. For instance, consider the following simple rules:
1) If the market is not trending, Cover/Buy when the overbought/oversold indicator comes out of oversold territory and Sell/Short when it comes out of overbought territory.
2) If the market is trending up, Buy when the overbought/oversold indicator comes out of overbought and sell when it comes out of oversold. (That is, do not attempt to trade counter-trend, i.e., while the indicator is starting to move towards oversold.)
3) If the market is trending down, Short when the overbought/oversold indicator comes out of overbought and Cover when they come out of oversold. (Again, don't trade counter-trend.)
It has been my observation that if it is between 80-100 for two full days the 3rd day is a down day even if the hourly stochastic is not overbought.Have you seen any similar observation?
I am afraid I can't be of much help here; that's too short-term trading for me and I don't have enough experience doing it.
Regards,
Vesselin
Importance of the BPIs
Do you put a lot of emphasis on these in your analysis or they are just some minor confirmation tools?
I do not put too much emphasis on any single indicator. Instead, I try to use as many of them as I am comfortable with, in order to get a better impression of what exactly the general market picture is. When many indicators confirm each other (as happend in September 2001 and in July 2002), I am very confident that a major bottom is at hand. When the indicators disagree (e.g., like it happened in March 2002, when $BPNDX fell low enough to suggest a bounce while $BPCOMPQ was still relatively high), I know that a bounce is likely - but that it will be relatively weak.
And it was! But it is important to understand that we aren't talking about certainities and predicting the future here - these indicators indicate only probabilities. All you can hope to do is to use them to place bets with the odds staked in your favor (the kind of bets I prefer to make <grin>). You have no guarantee to win, for the market can do just about anything - but you're more likely to win than to lose.
chainik, I have received your private message. It's just a matter of chance that I saw it - since I am not a paid subscriber of this site and am not allowed to send private messages, I rarely look at my mailbox. Could you provide some kind of e-mail address at which I can contact you privately? Or, if you prefer, contact me yourself at vbontchev@yahoo.com.
Everybody else - please, folks, do not send me private messages that require a private answer. Send me only private messages which do not require an answer at all - or which I can answer publicly.
Regards,
Vesselin
Vesselin
I look at $BPCOMPQ using this PnF Chart
http://stockcharts.com/def/servlet/SC.pnf?chart=$BPCOMPQ,PWUA[PA][DA][F!3!1.0!]&pref=G
http://groups.yahoo.com/group/Hal1/
Larry Dudash
Vesselin,
Is there a good way to determine in advance when you are moving from a trading range to a trending market(UP or Down)?
Can you predict when the slow stochastic will be overbought or oversold and stay in that position for days or when the Fast % K will break the slow % D? It has been my observation that if it is between 80-100 for two full days the 3rd day is a down day even if the hourly stochastic is not overbought.Have you seen any similar observation?
Best Regards
Vess, thanks for the charts (bullish percentage indexes). I find them very useful (maybe because they are so easy to understand (g)). Do you put a lot of emphasis on these in your analysis or they are just some minor confirmation tools?
Trading the Main Bullish Percentage Indexes
Another useful set of indicators for intermediate- to long-term trading are the so-called Bullish Percentage Indexes. Each such index indicates the percentage of stocks in a given set of stocks (exchange or index) that have Buy signals on their P&F charts.
The idea here is that when too many stocks have such signals, most of those traders who would want to buy would have bought already (because of the nice-looking charts), leading to a lack of new buyers to push the prices further up, leading to a decline. The opposite is also true - too few charts with Buy signals means that most people who would sell have probably sold already, meaning that the prices are likely to go up as the selling subsides and new buyers emmerge. In a sense, the indicator reflects inversely the probability that the group of stocks under consideration moves to the upside.
Most bullish percentage indexes are more useful for picking bottoms than for picking tops. It stands to reason to have mirror indicators - "bearish percentage indexes", indicating the percentage of stocks with Sell signals on their P&F charts. Such indicators should be more useful for picking tops than for picking bottoms. Unfortunately, I know of no charting service that supports such indicators.
1) Using the NASDAQ BPI.
One of my favorite BPIs is the NASDAQ BPI. It runs relatively smoothly (because of the large number of stocks it covers), with wide and usually well-pronounced swings. In other words - ideal for intermediate- to long-term trading.
Here is a chart of this index, with a 3-year QQQ chart above it for comparison purposes:
As you can see, I have further smoothed the indicator with a 20-day EMA and have drawn (somewhat arbitrarily) overbought and oversold levels for it. It is supposed to be traded like this - Buy/Cover when the indicator crosses above its 20-day EMA after having fallen below the oversold (green) line; Sell/Short when the indiector crosses below its 20-day EMA after having rised above the overbought (red) line.
Other possible strategies include buying or selling when the indicator respectively simply crosses above the oversold line or below the overbought line; using crossovers of the 20-day EMA with the two horizontal lines (buy when it crosses above oversold, sell when it crosses below overbought); and so on.
Note that you can move the overbought and oversold levels further apart, if you want to get signals less often and catch only the more important tops and bottoms.
2) Using the NASDAQ-100 BPI.
Another similar indicator is the NASDAQ-100 BPI. Since it covers a much smaller number of stocks, it is much "spikier" - i.e., it is more prone to making sharp moves between the overbought and oversold levels. Here is a chart of it that I use in my market analysis, complete with the corresponding 20-day EMA and overbought and oversold levels, with a 3-year chart of QQQ above it for comparison purposes:
3) Using the S&P-500 BPI.
This BPI covers the stocks included in the S&P-500 index. It is smoother than the BPI for the NDX, but less smooth than the BPI for the whole NASDAQ. Although it could be used to trade QQQ too, it is perhaps more appropriate to use it for trading the S&P-500 index instead, using SPY as a proxy:
4) Using the S&P-100 BPI.
I personally rarely use this one but it is useful to keep an eye on it for confirmation when you are expecting a major market top or bottom. Chart:
I'll cover some of the sector BPIs in another article, in order not to overload this one with too many charts.
Regards,
Vesselin
Hi Vesselin,
I don't mind you changing the chart. I just wish you were still posting on StockCharts -- I've learned a lot from reading your analysis.
Here's the chart again, with the changes you suggested. I wasn't sure which parallel you wanted attached to the February low, so I did them both and color coded them so it's easy to tell them apart. Feel free to change anything that doesn't look right to you.
One other thing I'd like to mention is that on IHUB, you can put charts directly into the "iBox," (thread header), just as you would in a post. (You can see an example I'm currently experimenting with at #board-1263.) That way, you can keep all of your posts together, mix your commentary in between, and people can use the thread itself for comments, questions, and the like.
(:
My Threads --
Archive of Trading Stuff #board-1220
PPT Archive #board-1280
Charting Experiments #board-1263
Gaps and the stochastic
When a stock gaps how does that affect the STOCH's. Lets say that a stock rises 3 points while the stoch. goes from 20 to 80. Then we have a gap down of $1.00. Would the stock likely go down 4.00 to get stoch's from 80 to 20?? Or does that have anything at all to do with the movement of either?
GLENO, you just love asking difficult questions, don't you?
Let's look at how the Stochastic is computed:
As you can see from the above, whether there is an opening price gap or not is not reflected directly in the formula. The formula depends only on today's close and the highest high and lowest low during the indicator's period. Whether there have been any gaps within this period or not is irrelevant, as long as they do not impact the highest high and the lowest low during this period.
As for the particular numbers you quoted, I am afraid the data is not sufficient to answer your question (somebody whose math is better than mine, please correct me if I am wrong). We need to know also the period used and the values of today's high and the daily high and low prices around the boundaries of the period.
Regards,
Vesselin
aguieboo's charts
Here are those COMP & QQQ Charts you referred to.
Thanks, augieboo! Yes, these are exactly the trendlines I meant. Here, to make it even more clear, I've simplified your first chart a bit; I hope that you don't mind:
(If the chart is not visible, click here.)
Some suggestions:
1) Draw the upper downsloping red line accross the January and March highs. That will make it a little less downsloping. It will show the level to which this bear market rally is likely to go (IMO). Maybe it can go even a bit higher.
2) Draw the lower downsloping red line parallel to the first one (as it is now) but accross the February low - not accross the May low. Since we're above it now, it should serve as support. It shows how low the pull-back might go before the bear market rally resumes.
3) You can do both of the above simultaneously by simply drawing Andrew's Pitchfork across the January and March highs and the February low.
As you see yesterday we closed right at steepest upsloping green line. I said that it will be broken - most likely, this will happen today. However, until the second upsloping green line is broken, this bear market rally is not over yet.
Regards,
Vesselin
Great charts Augie as always, interesting how the COMPX chart trendline drawn using the 2 Intra-day lows is near Zeev's 1263 line in the sand. If broken, Zeev feels new lows will follow, which is Vesselin's perspective as well.
Good trading
steve
Dr. V.,
I knew you could operate out of a phone booth if necessary. Thanks for the explanation of the different charts. I use the 60 min and daily charts almost exclusively for my day and swing trading. Another question. When a stock gaps how does that affect the STOCH's. Lets say that a stock rises 3 points while the stoch. goes from 20 to 80. Then we have a gap down of $1.00. Would the stock likely go down 4.00 to get stoch's from 80 to 20?? Or does that have anything at all to do with the movement of either?. Gleno
Here are those COMP & QQQ Charts you referred to.
(:
My Threads --
Archive of Trading Stuff #board-1220
PPT Archive #board-1280
Using oscillators to spot tops and bottoms
Hello all. First I want to apologize for the wide format of this page - there's a big image below and the text auto-flows to the width of the image.
I've been exploring momentum oscillators to help identify intermediate peaks and troughs on the NYSE Index, thought some of you could provide feedback on my exploits.
All of you are probably familiar with the problems associated with using banded oscillators to identify overbought and oversold extremes. To beat a dead horse, oscillators don't work very well in trending markets where momentum is sustained over a long period of time - they tend to generate many invalid signals. Most technicians look for divergences or other indicators to filter out invalid signals.
I'm not a big fan of using divergences as a filter for three reasons:
1)Spotting divergences requires subjectivity and interpretation. For example, how close or far apart do peaks need to be? What exactly qualifies as a peak vs. a minor blip? What degree of slope is needed to truly qualify as a divergence? What is the exact rule that triggers the signal?
2)False divergences occur, especially in strongly trending markets.
3)Excellent trading opportunities are missed when the market fails to form a double-top or double-bottom - when no divergence occurs.
I began exploring filtering techniques based on a very basic concept - don't trade against a strong trend. Although I knew this approach would result in a few missed opportunities, my goal was to improve the overall percentage of excellent entry/exit points.
This study consisted of two indicators:
1. A Full Stochastic with %K at (60,12) and %D at (12). I didn't dork with the parameters at all - no curve fitting, data torturing, etc. Just wanted parameters that fit an intermediate term market cycle.
2. The Aroon Oscillator, set at 200 days. Again, I didn't fiddle with the parameters at all. All I wanted was a stable indicator that could identify the direction and strength of long-term trends. The Aroon Oscillator would be used as my trend strength filter.
The buy/sell rules I established for this test were pretty simple:
You buy when %K crosses above %D if the oscillator is oversold (or near oversold) AND the Aroon Oscillator isn't below -50.
You sell when %K crosses above %D if the oscillator is overbought (or near overbought) AND the Aroon Oscillator above +50.
I've included an annotated chart below. Please excuse the large chart, but I wanted to test the $NYA data set between Jan 1, 1990 through August 2002. A larger chart was needed for clarity.
Key:
Black arrows = Valid signals that resulted in excellent entry or exit points (17).
Blue arrows = Valid signals that resulted in less than ideal entry or exit points (11)
Green arrows = Invalid signals that would have resulted in an excellent entry or exit point (8).
Red Boxes = Stochastic signals filtered out by the Aroon Oscillator. I counted (39) invalid signals, the vast majority would have been less than ideal intermediate entry/exit points.
Things to note:
1.Most of the ill-timed sell signals (blue arrows) were a result of the Aroon Oscillator failing to identify strong up-trends early enough. Note the signals generated in late '90, early '95, and early '99. This leads me to consider using a faster Aroon Oscillator in subsequent studies.
2.There were four excellent sell signals (green arrows) missed at end of strong up-trends. There were also two instances where good, but invalid sell signals occurred in the midst of strong up-trends (mid '96 and early '98). In almost every case, these signals occurred after strong negative divergences. Peaks were spaced 3 to 6 months apart. This made me re-think my above stated opinion on divergences, except for the fact that I noticed seven other sell signals based on what could have been interpreted as negative divergences. These signals would have resulted in less than ideal results (Aug '91, Oct '94, July '95, Apr '96, Oct '97, Mar or Jun '99, Aug '00).
3. For the entire period, there were only two double-bottom positive divergences. Note there were also seven instances where bottoms were formed on single downward spike by the Stochastic Oscillator.
I would welcome any thoughts on this subject.
Vesselin,
Thank you once again for your excellent response.I will print and save it.I am turning from positiontrader to swing trader in an attempt to catch the one day that goes against the trend to profit on that day also.It normally means changing positions once or twice weekly. Your advice will be helpful.I will also review your other posts and absorb the wisdom.
Best Regards
Exactly what I meant
March 1, 2000, the NAV of USPIX was approx 30.
Aug 27, 2002 the NAV of USPIX was 65.20.
For any given buy and hold investment, that represents a gain of approx. 117%.
Let's take the math a little bit further, shall we?
March 1, 2000, the $NDX was at 4,309.01.
Aug 26, 2002, the $NDX was at 1,016.79.
This represents a loss of 76.4%. The USPIX is supposed to mirror twice the inverse of the $NDX, right? So, for the same period, it should have been up 152.81% - not just 117%. Why so little? Precisely because the NDX didn't go down in one straight way but had lots of oscillations in-between. During which money held in the USPIX was lost. And the only reason why buy-and-holding the USPIX made even that much (117%) is because the move down was in very long trends. Had it been choppier, the gains would have been smaller.
And, I assure you, by the time the $NDX gets back to 4,039.01, the gain of a buy-and-holder of USPIX since March 1, 2000, would be negative. Very negative, at that.
The leveraged funds are only for short-term traders who are master timers - not for buy-and-holders.
Regards,
Vesselin
Trading leveraged funds
Since the fund's value is related to its NAV, when it returns to the same NAV, then your initial investment will be completely restored.
This is correct.
To put it another way, and ignoring any minor adjustments, if the index is at 1000 and goes to any value, then when it returns to 1000, so will the NAV
This is false. When the index returns to its original value, the NAV of the fund will not necessarily do so. In fact, given these funds charter, it is essentially guaranteed that it won't.
If your math was correct, then all the index would have to do would be to oscillate between 1000 and 1010 for n-trading days and your funds would eventually go to 0. That simply is not the case.
It is the case and my math is correct - I challenge you to find any mistake (other than rounding error) in the computation. If the index returns to its original value after oscillating around it, you will lose money held in one of the leveraged funds (no matter which one). You won't lose money if the index doesn't move at all (as opposed to moving but eventually returning to its starting value) - but that never happens.
Regards,
Vesselin
Excellent suggestion
One suggestion: For your set of "timeless" charts, why not put links to those posts in the thread header? That would make them easy to find, especially for someone who starts reading this thread after it's been going for a while and there are many posts.
Excellent suggestion, thanks! I'll do just that in a moment.
Regards,
Vesselin
Trendlines
One thing you might find useful is drawing some trendlines on the indicators as well as the BP charts. You'll find the action tends to be reigned in by the trendlines.
I can do that (and often do it for my own analysis - trends, Andrews Pitchfork, etc. - although mostly for the price; not for the BPIs) - but I cannot post such charts here. Remember, I no longer have a StockCharts account, so I cannot store annotated charts (with trendlines) on their server. I can take a snapshot of an annotated chart and store it elsewhere - but such a chart won't be "live" and you won't be able to see when a trendline is violated.
For instance, right now I am watching a trendline on the QQQ chart drawn accross the two lows of August. (Perhaps some of you who has a StockCharts account can post such a chart here?) As long as this trendline is not violated, we're still in a very strong uptrend. Note that the trendline will be violated, sooner or later (probably sooner). It is simply too steep and unsustainable. Its violation will not necessarily mean an end of this rally, though - it will more likely mean a period of consolidation.
There is another important trendline, but it is visible only on the COMPX - not on QQQ or the NDX. Draw a line accross the July and August intra-day lows. That trendline is critical. If we close below it, we're most likely going to see lower lows.
Regards,
Vesselin
Short-term charts
I recently was mauled by the bear as you warned me I might and did not follow my trading plan.
I am sorry to hear that. I hope you have more success in the future.
I have found using both daily and hourly slow stochastics helpful in predicting the events of the next day.Do you use this ?
Yes, I do. Once I have decided to take a position, according to the intermediate-term charts, I often use the 15- and 60-minute charts to determine when exactly to take that position. I use mostly Bollinger bands, the stochastic, Williams %R and MACD there:
When the price is at the lower Bollinger band and stochastic and Williams %R are oversold, that's a good time to take a Long position. In some cases I might wait until an uptrend has started - determined by the price crossing above the middle band (i.e., above the 20-period SMA) and the MACD giving a bullish crossover above its signal line.
Normally, the overbought/oversold indicators (Bollinger bands, stochastic, Williams %R) can stay overbought or oversold for quite a while - and they often produce false signals. Not on the short-term charts, though! There they rarey stay overbought and oversold for more than 3 trading days.
Similarly, the MACD is normally a lagging indicator and tends to get you in and out of trends a bit late. However, once I've determined from the intermediate-term charts that an intermediate-term uptrend is about to start, I can afford to lose a little bit of it on the short-term charts (bacause of MACD's lag) for the insurance that it has indeed already started.
However, I don't watch the intra-day charts every day. Doing this tends to stimulate overtrading and I don't like to do that. I am an intermediate-term trader - not a short-term trader and not a daytrader. (Nothing against the daytraders; I simply don't have the time, the nerve and the skill to do it.)
Regards,
Vesselin
Volume | |
Day Range: | |
Bid Price | |
Ask Price | |
Last Trade Time: |