Monday, November 17, 2008

Market Timing Using DeMark

First, here are a few resources for what DeMark Sequential is.

DeMark TD Sequential: An Overview and Brief Tutorial
Impressive Signals From DeMark
Google Book Preview

I just came across DeMark very recently and decided to see how it works. I have read the first 2 links and gone through some of the book through Google. The book seems to complicate things beyond its simple appearance, so I just decided to stick with the PDF's description and keep it simple.

I will show examples of how the DeMark Sequential works on intraday 1 min charts to find reversals in this crazy crazy market. The first thing I must point out is that I would only recommend using this technique to find quick reversals. Usually these are counter trend moves before the primary trend continues. However, once in a while it does predict complete intraday reversals. You can also use the indicator to find conutertrend rallies which you can use to ADD to your position if you are confident in the trend.

I programmed DeMark sequential on TOS platform, with .5 being a buy signal, 1.0 perfect buy, -.5 sell, -1.0 perfect sell. One thing that the PDF does not go over is the fact that the signals should NOT be used after exactly 9 bars (especially true in this momentum driven market). In fact, from my experience a signal should be acted up when either 1) you see the trend weakening with dojis or a countertrend trend bars or 2) the signal actually goes away and you are still able to get a good price. Also, you should NOT chase any moves unless you really believe the trend is changing.

FYI, in this market the trend is DOWN, all charts are 1 min.


SPY gave a sell signal early in trading. After the 1 min red bar, you are given more confidence that the trend might be changing, but dont chase it!

The market proceeded to fall right to the VWAP, where it took a break and DeMark gave a buy signal.

This proved to be just consolidation before the next move down. Another buy signal is given at a lower level, followed by a few green bars (one being a hammer).

Here is more data you see the last buy signal market some sort of temporary bottom. You can also see big sell signal that only marked a very slight counter trend rally followed by another signal that market the exact top of the day.

Now, a look at a few individual stocks. I will try and show good examples, as well as bad examples. I will also try and look at volatile and boring days.

First, here is an example of why you must wait for the market to confirm the change in trend before you jump on using this indicator.

There was a buy signal for 15+min while SKF took a dive down. Notice that the rally (very small) happened right after the signal went back to 0. It is especially important to take precautions in this momentum driven market. Using the indicator to add to a short would have been the money making decision.

SHLD - things can go very wrong trying to pick a bottom in a bear market

The sell signal towards the end was a good signal to continue with a short in the primary trend.


Sell the highs, buy the lows like a pro.


In choppy market you can make quick $, but you must have good entry. This allows you to set stops just below/above the recent low/high and minimize losses, while still taking quick profits (good risk/reward ratio, here you want a .1-.2 risk with .6 reward in a 5-10 min time frame).

I can post many more examples, but I will continue to evaluate this on different timeframes and see what works and what does not. Here is the TOS code for the indicator.

input lookback = 4;

declare lower;

def buySeq;

if close[0] < buyseq =" 1;" buyseq =" 0.5;" buyseq =" 0;"> close[0+lookback] and close[1] > close[1+lookback] and close[2] > close[2+lookback] and close[3] > close[3+lookback] and close[4] > close[4+lookback] and close[5] > close[5+lookback] and close[6] > close[6+lookback] and close[7] > close[7+lookback] and close[8] > close[8+lookback] then {
if max(high[0], high[1]) > max(high[2], high[3]) then {
sellSeq = -1;
} else {
sellSeq = -0.5;
} else {
sellSeq = 0;

plot buySequential = buySeq;
plot sellSequential = sellSeq;

plot ZeroLine = 0;

Here is an updated chart including 2 built in DeMark Indicators