Vertical Horizontal Filter

Vertical Horizontal Filter (VHF) was created by Adam White to identify trending and ranging markets. VHF measures the level of trend activity, similar to ADX in the Directional Movement System. Trend indicators can then be employed in trending markets and momentum indicators in ranging markets.

Vary the number of periods in the Vertical Horizontal Filter to suit different time frames. White originally recommended 28 days but now prefers an 18-day window smoothed with a 6-day moving average.

Trading Signals

Vertical Horizontal Filter does not, itself, generate trading signals, but determines whether signals are taken from trend or momentum indicators.

  • Rising values indicate a trend.
  • Falling values indicate a ranging market.
  • High values precede the end of a trend.
  • Low values precede a trend start.


A longer term example: Intel Corporation is shown with     63-day exponential moving average (MA), and     63 day Vertical Horizontal Filter.

Intel Vertical Horizontal Filter

Mouse over chart captions to display trading signals.

  1. Vertical Horizontal Filter rises, signaling the start of an up-trend;
  2. VHF falls, indicating that the trend is near its' end;
  3. VHF rises, signaling the start of a sharp down-trend;
  4. Falling VHF signals the end of the down-trend. This is premature as price continues to trend downwards over the next 3 months, albeit at a slower rate.


See Indicator Panel for directions on how to set up an indicator.

The default Vertical Horizontal Filter window is 28 days. To alter the default settings - see Edit Indicator Settings.


To calculate the Vertical Horizontal Filter:

  1. Select the number of periods (n) to include in the indicator. This should be based on the length of the cycle that you are analyzing. The most popular is 28 days (for intermediate cycles).
  2. Determine the highest closing price (HCP) in n periods.
  3. Determine the lowest closing price (LCP) in n periods.
  4. Calculate the range of closing prices in n periods:
               HCP - LCP
  5. Next, calculate the movement in closing price for each period:
               Closing price [today] - Closing price [yesterday]
  6. Add up all price movements for n periods, disregarding whether they are up or down:
               Sum of absolute values of ( Close [today] - Close [yesterday] ) for n periods
  7. Divide Step 4 by Step 6:
               VHF = (HCP - LCP) / (Sum of absolute values for n periods)