**Main Page**- Category List
- Knowledge Base
- Tutorial Videos
- Traders Tips
- Indicator documentation
- Addin examples

Advanced Search »

```
public PBandUpper(Bars bars, int period, string description)
public static PBandUpper Series(Bars bars, int period)
```

public PBandLower(Bars bars, int period, string description)
public static PBandLowerSeries(Bars bars, int period)

bars |
Bars object |

period |
Lookback period |

```
public PBFastOsc(Bars bars, int period, int FSmooth, string description)
public static PBFastOsc Series(Bars bars, int period, int FSmooth)
```

public PBSlowOsc(Bars bars, int period, int FSmooth, int SSmooth, string description)
public static PBSlowOsc Series(Bars bars, int period, int FSmooth, int SSmooth)

bars |
Bars object |

period |
Lookback period |

FSmooth |
First smoothing period |

SSmooth |
Second smoothing period |

This functions calculate the Widner projection bands and the projection oscilator, created by Mel Widner.

These bands differ from the other bands/channels/envelopes because they use the linear regression slope to predict the possible future evoluction of the trading range, and this produces a different and useful kind of bands.

Since all the prices are between the two bands, it is possible to calculate a stochastic indicator, the "projection oscilator" with similar characteristics of the traditional stochastic oscilator.

It is recommended that all band generated signals be confirmed by other indicators. During trends, bands can be used to trade short-term reactions against the primary trend. In rangebound markets, bands can be used to trade overbought/oversold levels.

The Projection Oscillator is a by-product of Dr. Mel Widner's Projection Bands. Since it's basically a linear regression slope-adjusted Stochastic, the Projection Oscillator shows the relationship of the current price to its minimum and maximum prices over time but, unlike its predecessor, these levels are adjusted up or down by the slope of the price's regression line.

As with other oscillators, here are some typical usage patterns:

- Crossovers at overbought/oversold levels: Buy when the oscillator falls crosses above a specific level (e.g., 20), sell when it crosses below a specific level (e.g., 80).
- Divergences: Sell if prices are making a series of new highs but the oscillator fails to surpass its previous highs, and vice versa.

```
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using Community.Indicators;
```

namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
PBandUpper pbu = PBandUpper.Series( Bars, 14 );
PBandLower pbl = PBandLower.Series( Bars, 14 );
PlotSeriesFillBand( PricePane, pbu, pbl, Color.Blue, Color.FromArgb( 30, Color.Purple ), LineStyle.Solid, 1 );
}
}
}