### Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....

#1 Selling Amibroker Plugin featuring:

Neural Networks
And Much More ....
Find Out More Here

### Bollinger Band - Last Extreme for Metastock maestro over 10 years ago Metastock

Rating:
Tags:
metastock, bands

Can someone show me a method of writing a formula that uses Typ() as the DA for a 20/2 Bollinger Band for all days PRIOR to a given bar, but for that bar’s BB value, the BB calc would use the Open price for DA instead???

Second attempt for my previous Q: any way to access the Interval of a chart within an indicator, to base boolean decisions (or other math) on it???

Jim

Figured it out – just have to do it longhand – if anyone can come up with a faster way, esp if it avoids the expansion of the Std Dev calc, please let me know.

The following function finds the 20-bar, 2-SD Upper BBand based on 19 previous Typ()’s, and the current High. It uses the current Low for the Lower BBand, and the current Open for the middle.

Intended use: for backtesting, to simulate what the 20/2 BB would be using intraday “Last” value for the final daily bar, to see if an extreme-band crossover would occur when the day’s value was at its extreme …

One could adapt this for many other uses …

### Indicator / Formula

```PSum := Ref(Sum(Typ(),19),-1);

MA := (PSum+High)/20;
SOS :=
Power(Ref(Typ(),-19)-MA,2) +
Power(Ref(Typ(),-18)-MA,2) +
Power(Ref(Typ(),-17)-MA,2) +
Power(Ref(Typ(),-16)-MA,2) +
Power(Ref(Typ(),-15)-MA,2) +
Power(Ref(Typ(),-14)-MA,2) +
Power(Ref(Typ(),-13)-MA,2) +
Power(Ref(Typ(),-12)-MA,2) +
Power(Ref(Typ(),-11)-MA,2) +
Power(Ref(Typ(),-10)-MA,2) +
Power(Ref(Typ(),-9)-MA,2) +
Power(Ref(Typ(),-8)-MA,2) +
Power(Ref(Typ(),-7)-MA,2) +
Power(Ref(Typ(),-6)-MA,2) +
Power(Ref(Typ(),-5)-MA,2) +
Power(Ref(Typ(),-4)-MA,2) +
Power(Ref(Typ(),-3)-MA,2) +
Power(Ref(Typ(),-2)-MA,2) +
Power(Ref(Typ(),-1)-MA,2) +
Power(High-MA,2);
HiSD := Sqrt(SOS/20);

MA := (PSum+Low)/20;
SOS :=
Power(Ref(Typ(),-19)-MA,2) +
Power(Ref(Typ(),-18)-MA,2) +
Power(Ref(Typ(),-17)-MA,2) +
Power(Ref(Typ(),-16)-MA,2) +
Power(Ref(Typ(),-15)-MA,2) +
Power(Ref(Typ(),-14)-MA,2) +
Power(Ref(Typ(),-13)-MA,2) +
Power(Ref(Typ(),-12)-MA,2) +
Power(Ref(Typ(),-11)-MA,2) +
Power(Ref(Typ(),-10)-MA,2) +
Power(Ref(Typ(),-9)-MA,2) +
Power(Ref(Typ(),-8)-MA,2) +
Power(Ref(Typ(),-7)-MA,2) +
Power(Ref(Typ(),-6)-MA,2) +
Power(Ref(Typ(),-5)-MA,2) +
Power(Ref(Typ(),-4)-MA,2) +
Power(Ref(Typ(),-3)-MA,2) +
Power(Ref(Typ(),-2)-MA,2) +
Power(Ref(Typ(),-1)-MA,2) +
Power(Low-MA,2);
LoSD := Sqrt(SOS/20);

MA := (Psum+(O+H+L)/3)/20;

MA + HiSD*2;
MA;
MA - LoSD*2```