# Chande Forecast Oscillator

A Momentum & Oscillators concept (Classic single-name oscillators) in the LuxAlgo Library, with 1 indicator implementation.

## What is the Chande Forecast Oscillator?

The Chande Forecast Oscillator (CFO) measures how far price sits from where a linear regression says it should be. Each bar, a regression line is fit to the last n closes and its forecast value for the current bar is taken; the oscillator is the close minus that forecast, expressed as a percentage of the close. Positive readings mean price is running above its own fitted trend, negative readings mean it is running below.

Because the forecast comes from the end of a least-squares fit, closely related to the least-squares moving average, the oscillator behaves as a percentage deviation from the regression line: it crosses zero when price crosses the fit and stretches when a move outruns its own trend. A short moving average of the oscillator is often added as a trigger line.

Tushar Chande, the quantitative analyst also behind the Chande Momentum Oscillator, VIDYA, and the Aroon system, introduced it as %F in a 1992 Technical Analysis of Stocks & Commodities article on forecasting the next trading day from a linear regression. The appeal over classical [momentum](https://www.luxalgo.com/library/concept/momentum/) measures: differencing today's close against a single close n bars ago leaves the reading hostage to whatever that one old bar happened to be. A regression forecast instead uses every bar in the window and asks a cleaner question: is price ahead of or behind its own trend?

That anchor changes the behavior. In a steady, straight-line trend, [ROC](https://www.luxalgo.com/library/concept/roc/) stays persistently positive while the CFO hovers near zero, because price is simply meeting its own forecast; the CFO only stretches when a move accelerates beyond its fitted pace or breaks down below it. It is expressed as a percentage of price, so readings are comparable across instruments, but it has no fixed bounds, meaning [overbought/oversold](https://www.luxalgo.com/library/concept/overbought-oversold/) judgments must be made against the instrument's own recent envelope rather than universal levels.

## How to identify Chande Forecast Oscillator signals on a chart

The CFO plots in its own panel around a zero line, usually with a short moving average as a trigger.

1. Note the typical envelope first: scan back and see what a normal reading is for this instrument and timeframe, since the percentage scale has no fixed extremes.
2. Read the zero line as fit versus price: above zero, the close is running ahead of its regression forecast; below, behind it.
3. Mark stretch extremes relative to that envelope; they flag price outrunning its own fit in either direction.
4. Watch swing disagreement: price printing a new high while the CFO prints a lower high means the latest push no longer exceeds its forecast, a [regular divergence](https://www.luxalgo.com/library/concept/regular-bullish-bearish-divergence/)-style caution.

## How it's calculated

Expresses how far the close sits above or below its n period linear regression forecast, as a percent of price.

```
CFO_t = 100 × (C_t - F_t) / C_t
F_t = a_t + b_t × (n - 1)
b_t = ( n × Σ(i × C_{t-n+1+i}) - Σi × ΣC_{t-n+1+i} ) / ( n × Σ(i^2) - (Σi)^2 ), all sums over i = 0..n-1
a_t = ( ΣC_{t-n+1+i} - b_t × Σi ) / n, sums over i = 0..n-1

  C_t: close at bar t
  t: current bar index
  n: regression lookback length (commonly 9 or 14)
  i: position inside the window, 0 for the oldest bar up to n - 1 for the current bar
  b_t: least squares slope of close over the window
  a_t: least squares intercept (regression value at the oldest bar of the window)
  F_t: value of the fitted regression line at the current bar, the forecast price
  CFO_t: forecast oscillator reading in percent of price
```

Introduced by Tushar Chande; positive readings mean price is above its regression fit, negative below, and zero crossings mark price crossing the fit.

Some platforms use the one bar ahead Time Series Forecast instead, F_t = a_t + b_t × n, which shifts readings slightly.

A short signal EMA of CFO, commonly 3 bars, is often drawn as a trigger line.

## How traders use it

- Zero-line crossings as short-term trend cues: turning positive is read as strength against the fitted trend and turning negative as weakness, with the caveat that flat markets produce constant whipsaw around zero unless a trend filter is added.
- Stretch readings as mean-reversion context: values that are large relative to the instrument's own recent history flag price extended from its regression fit, a condition that can resolve by pullback or by the trend simply re-accelerating.
- Trigger-line crossings for earlier signals: the oscillator crossing its own smoothed version typically fires before the zero cross does, at the cost of more noise.
- Gated by a slower regime tool: pairing CFO zero crosses with a broader filter such as the [MACD](https://www.luxalgo.com/library/concept/macd/) regime or a long moving average keeps the fast signal from firing against the dominant trend.
- Cross-checked against gain/loss oscillators: because the CFO measures deviation from a fitted line while [RSI](https://www.luxalgo.com/library/concept/rsi/) measures the balance of gains and losses, traders read agreement between the two as stronger evidence than either alone.

## Chande Forecast Oscillator vs related measures

- **ROC** (https://www.luxalgo.com/library/concept/roc/): ROC compares the close with a single close n bars ago, so a steady trend keeps it pinned positive or negative. The CFO compares the close with a regression forecast built from every bar in the window, so a steady trend reads near zero and only acceleration or breakdown moves it.
- **Disparity Index** (https://www.luxalgo.com/library/concept/disparity-index/): The disparity index is the percentage gap between the close and a moving average, structurally the CFO's closest cousin. A moving average lags inside trends, so disparity stretches merely because a trend exists; the regression endpoint tracks the trend, so CFO stretch isolates deviation from it.
- **Momentum** (https://www.luxalgo.com/library/concept/momentum/): Raw momentum is the unbounded point difference between today's close and an older one, unnormalized, so readings are not comparable across instruments or eras. The CFO is expressed as a percentage of price and anchored to a fit rather than a single reference bar.

## FAQ

### What does a positive Chande Forecast Oscillator reading mean?

The close sits above the value an n-period linear regression forecasts for the current bar, by that percentage of price. It indicates near-term strength relative to the fitted trend, not a prediction that price must keep rising. Readings decay toward zero as price converges back to the regression line and turn negative when the close drops below the forecast.

### What lookback period is used for the Chande Forecast Oscillator?

The regression length is a free parameter, and many charting platforms default to 14 bars. Short windows hug price, cross zero often, and suit fast tactical reads; long windows track the larger trend and flag fewer, slower deviations. Match the window to the swing size you trade, and expect the oscillator's behavior to change materially when you change it.

### Is the Chande Forecast Oscillator actually predictive?

The word forecast refers to the regression's fitted value for the current bar, not a prediction of future prices. The oscillator measures the present gap between close and fit. Any forward-looking use, such as expecting stretched readings to revert, is an interpretation layered on top, with the usual failure mode that trends can stay extended.

### What is the difference between the CFO and plotting a linear regression line on the chart?

Same fit, different presentation. The on-chart line shows the trend path; the oscillator isolates the residual, the percentage gap between the close and the fit's endpoint, which makes zero crossings, stretch extremes, and divergences far easier to see and compare across time.

### What is the trigger line on the Forecast Oscillator?

A short moving average of the oscillator itself, often around three periods. The oscillator crossing its trigger fires earlier than the zero cross at the cost of more noise, and some implementations color the plot by the oscillator's side of the trigger.

### Does the CFO work in ranging markets?

Ranges are where the zero line is least informative: price crisscrosses its flat regression fit and crossings carry little signal. Stretch readings fare better, since a range that holds pulls extended prices back. Many users flip the emphasis by regime: crossings in trends, extremes in ranges.

## Implementations in the Library

- Chande Forecast Oscillator (LuxAlgo): https://www.luxalgo.com/library/indicator/chande-forecast-oscillator/

## Related concepts

- Balance of Power: https://www.luxalgo.com/library/concept/balance-of-power/
- CCI: https://www.luxalgo.com/library/concept/cci/
- Williams %R: https://www.luxalgo.com/library/concept/williams-percent-r/
- Ultimate Oscillator: https://www.luxalgo.com/library/concept/ultimate-oscillator/
- True Strength Index: https://www.luxalgo.com/library/concept/true-strength-index/
- Relative Vigor Index: https://www.luxalgo.com/library/concept/relative-vigor-index/
- Awesome Oscillator: https://www.luxalgo.com/library/concept/awesome-oscillator/
- Accelerator Oscillator: https://www.luxalgo.com/library/concept/accelerator-oscillator/
- Gator Oscillator: https://www.luxalgo.com/library/concept/gator-oscillator/
- Elder Ray: https://www.luxalgo.com/library/concept/elder-ray/

---

Source: https://www.luxalgo.com/library/concept/chande-forecast-oscillator/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/