# Bollinger Band Sample

Bollinger Bands are a technical trading tool that provide a relative definition of high and low bands.

This sample application calculates a Bollinger Band from securities prices. The Bollinger Band consists of a set of three curves drawn in relation to the securities prices. The middle band is a measure of the intermediate-term moving trend, usually the simple moving average (or exponential moving average), which serves as the base for the upper and lower bands.

The difference between the upper and lower bands and the middle band is determined by the volatility of the securities. The volatility is typically the standard deviation of the same data that is used to calculate moving average. This application uses 20-day periods for the moving average and standard deviation calculations. Two standard deviations are used to compute the upper and lower bands. You can adjust the number of periods and standard deviations in the Aggregate operator and Map operator, respectively, to suit your purposes.

The sample computes the Bollinger Band from a 20-day simple moving average. It also computes the Bollinger Band from 20-day exponential moving average. Simple moving average and exponential moving average are calculated by calling the StreamBase aggregate functions avg() and exp_moving_avg(), respectively. It also calculates values for LastValue, Bandwidth, and PercentB.

In summary:

• MiddleBand: Moving Average (simple or exponential)

• UpperBand: Moving Average + (2 * Standard Deviation)

• LowerBand: Moving Average - (2 * Standard Deviation)

• LastValue: lastval(price)

• Bandwidth = (UpperBand - LowerBand)/MiddleBand

• PercentB = (LastValue - LowerBand) / (UpperBand - LowerBand)

The application also includes an Excel spreadsheet that displays the bands, plotting them automatically.

## This Sample's Files

The Bollinger Band sample application has the following files:

• The application, `BollingerBand.sbapp`

• An `sbfeedsim` configuration file, `BollingerBand.sbfs`

• An feed simulation data file, `BollingerBand.csv`

## Running the BollingerBand Sample

### Running This Sample in StreamBase Studio

1. In the Package Explorer, double-click to open the `BollingerBand.sbapp` application. Make sure the application is the currently active tab in the EventFlow Editor.

2. Click the Run button. This opens the SB Test/Debug perspective and starts the application.

3. Open the Feed Simulations tab.

4. Select the `BollingerBand.sbfs` feed simulation file and click .

5. When done, press F9 or click the Stop Running Application button.

### Running This Sample in Terminal Windows

#### On UNIX or OS X

1. Open three terminal windows. In each window, navigate to the directory in your Studio workspace that contains your copy of this sample.

2. In window 1, launch StreamBase Server on `BollingerBand.sbapp`:

`sbd BollingerBand.sbapp`

3. In window 2, enter the following command to dequeue tuples from the server's output streams:

`sbc dequeue OutputBollingerSMA OutputBollingerEMA`

4. In window 3, run sbfeedsim on the provided configuration file, suppressing the printout of tuples.

`sbfeedsim -q BollingerBand.sbfs`

5. In window 2, press Ctrl+C to close the enqueuer. Then run `sbadmin shutdown` to close the server.

#### On Windows

1. Open three StreamBase Command Prompts. In each window, navigate to the directory in your Studio workspace that contains your copy of this sample.

2. In window 1, launch StreamBase Server on `BollingerBand.sbapp`:

`sbd.exe BollingerBand.sbapp`

3. In window 2, enter the following command to dequeue tuples from the server's output streams:

`sbc.exe dequeue OutputBollingerSMA OutputBollingerEMA`

4. Start Microsoft Excel 2003 and open the following Excel file `BollingerBand.xls` provided in the sample folder.

5. In window 3, run sbfeedsim on the provided configuration file, suppressing the printout of tuples:

`sbfeedsim -q BollingerBand.sbfs`

6. In window 2, press Ctrl+C to close the enqueuer. Then run `sbadmin shutdown` to close the server.

## Importing This Sample into StreamBase Studio

In StreamBase Studio, import this sample with the following steps:

• Select this application from the Applications list.

• Click OK.

StreamBase Studio creates a project for each sample.

## Sample Location

When you load the sample into StreamBase Studio, Studio copies the sample project's files to your Studio workspace, which is normally part of your home directory, with full access rights.

### Important

Load this sample in StreamBase Studio, and thereafter use the Studio workspace copy of the sample to run and test it, even when running from the command prompt.

Using the workspace copy of the sample avoids permission problems. The default workspace location for this sample is:

``studio-workspace`/sample_bollingerband`

See Default Installation Directories for the default location of `studio-workspace` on your system.

In the default TIBCO StreamBase installation, this sample's files are initially installed in:

``streambase-install-dir`/sample/bollingerband`

See Default Installation Directories for the default location of `studio-workspace` on your system.