pds:=
Input
(
"EMA avg periods"
,1,2520,21);
sens:=
Input
(
"BB volatility sensitivity (+100 to -100)%"
,-100,100,75)/100;
pdsVlty:=
Input
(
"BB volatility sampling periods"
,
2,2520,126);
pdsBB:=
Input
(
"Bollinger Band periods"
,
2,2520,10);
x:=
Input
(
"[1]Open [2]High [3]Low [4]Close [5]Vol [6]P"
,1,6,4);
plot:=
Input
(
"[1]EMA, [2]Dyn periods, [3]BB vlty, [4]Signals"
,1,4,1);
x:=
If
(x=1,
O
,
If
(x=2,
H
,
If
(x=3,
L
,
If
(x=5,
V
,
If
(x=6,P,
C
)))));
y:=(
BBandTop
(x,pdsBB,
S
,2)-
BBandBot
(x,pdsBB,
S
,2))
/
Mov
(x,pdsBB,
S
);
BBvlty:=(y-
LLV
(y,pdsVlty))/(
HHV
(y,pdsVlty)
-
LLV
(y,pdsVlty)+.000001);
multi:=
If
(BBvlty<=.5,
10*
Power
(BBvlty,3.4739)+.1,
10*
Power
(BBvlty,3.32)+.000001);
multi:=
If
(sens>0,1/multi,multi);
multi:=
If
(multi<1,1-(1-multi)*
Abs
(sens),
(multi-1)*
Abs
(sens)+1);
pds:=pds*multi;
pds:=
If
(pds>
Cum
(
IsDefined
(x))-(pdsVlty+pdsBB),
Cum
(
IsDefined
(x))-(pdsVlty+pdsBB),pds);
pds:=
If
(pds<1,1,pds);
BBema:=x*2/(pds+1)+
PREV
*(1-2/(pds+1));
signals:=
Cross
(x,BBema)-
Cross
(BBema,x);
If
(plot=2,pds,
If
(plot=3,BBvlty*100,
If
(plot=4,signals,BBema)))