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 ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Bollinger Band - Last Extreme for Metastock
maestro
over 13 years ago
Metastock

Rating:
0 / 5 (Votes 0)
Tags:
metastock, bands

Another head-scratcher question:

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

Copy & Paste Friendly
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

0 comments

Leave Comment

Please login here to leave a comment.

Back