| |
|
 |
 |
|
DaysCMO10
Int(0.5*Abs(Mov(CMO(C,10),3,S))) {I use a
bit of smoothing, else the # of days changes too abruptly.}
|
VidyaDays
Fml("DaysCMO10") {Fml("DaysRsquared") }
{(another one to play around with)}
|
Vidya00_15
x:= Fml("VidyaDays"); If(x>15, 0
{else: Present Range}, If(x<8, If(x<4, If(x<2, Mov( C,
1, E ) {an interesting MA, isn't it} {# else x>=2}, If(x<3,
Mov( C, 2, E ) {# else}, Mov( C, 3, E ) ) ){x<2?} {#
else x>=4}, If(x<6, If(x<5, Mov( C, 4, E ) {# else},
Mov( C, 5, E ) ) {# else x>=6}, If(x<7, Mov( C, 6, E )
{# else}, Mov( C, 7, E ) ) ){x<6?} ){x<4?} {# else
x>=8}, If(x<12, If(x<10, If(x<9, Mov( C, 8, E ) {#
else}, Mov( C, 9, E ) ) {# else x>=10}, If(x<11, Mov(
C, 10, E ) {# else}, Mov( C, 11, E ) ) ){x<10?} {#
else x>=12}, If(x<14, If(x<13, Mov( C, 12, E ) {# else},
Mov( C, 13, E ) ) {# else x>=14}, If(x<15, Mov( C, 14, E
) {# else}, Mov( C, 15, E ) ) ){x<14?} ){x<12?}
){x<8?} )
|
Vidya16_31
x:= Fml("VidyaDays"); If(x<16 OR x>31, 0
{else: Present Range}, If(x<24, If(x<20, If(x<18,
If(x<17, Mov( C, 16, E ) {# else}, Mov( C, 17, E ) )
{# else x>=18}, If(x<19, Mov( C, 18, E ) {# else}, Mov(
C, 19, E ) ) ){x<18?} {# else x>=20}, If(x<22,
If(x<21, Mov( C, 20, E ) {# else}, Mov( C, 21, E ) )
{# else x>=22}, If(x<23, Mov( C, 22, E ) {# else}, Mov(
C, 23, E ) ) ){x<22?} ){x<20?} {# else x>=24},
If(x<28, If(x<26, If(x<25, Mov( C, 24, E ) {# else},
Mov( C, 25, E ) ) {# else x>=26}, If(x<27, Mov( C, 26, E
) {# else}, Mov( C, 27, E ) ) ){x<26?} {# else
x>=28}, If(x<30, If(x<29, Mov( C, 28, E ) {# else},
Mov( C, 29, E ) ) {# else x>=30}, If(x<31, Mov( C, 30, E
) {# else}, Mov( C, 31, E ) ) ){x<30?} ){x<28?}
){x2<24?} )
|
Vidya32_47
x:= Fml("VidyaDays"); If(x<32 OR x>47,
0 {else: Present Range}, If(x<40, If(x<36, If(x<34,
If(x<33, Mov( C, 32, E ) {# else}, Mov( C, 33, E ) )
{# else x>=34}, If(x<35, Mov( C, 34, E ) {# else},
Mov( C, 35, E ) ) ){x<34?} {# else x>=36}, If(x<38,
If(x<35, Mov( C, 36, E ) {# else}, Mov( C, 37, E ) )
{# else x>=38}, If(x<39, Mov( C, 38, E ) {# else},
Mov( C, 39, E ) ) ){x<38?} ){x<36?} {# else x>=40},
If(x<44, If(x<42, If(x<41, Mov( C, 40, E ) {# else},
Mov( C, 41, E ) ) {# else x>=42}, If(x<43, Mov( C,
42, E ) {# else}, Mov( C, 43, E ) ) ){x<42?} {#
else x>=44}, If(x<46, If(x<45, Mov( C, 44, E ) {#
else}, Mov( C, 45, E ) ) {# else x>=46}, If(x<47,
Mov( C, 46, E ) {# else}, Mov( C, 47, E ) ) ){x<46?}
){x<44?} ){x<40?} )
|
Vidya48_63
x:= Fml("VidyaDays"); If(x<32 OR x>63, 0
{else: Present Range}, If(x<56, If(x<52, If(x<50,
If(x<49, Mov( C, 48, E ) {# else}, Mov( C, 49, E ) )
{# else x>=50}, If(x<51, Mov( C, 50, E ) {# else}, Mov(
C, 51, E ) ) ){x<50?} {# else x>=52}, If(x<54,
If(x<53, Mov( C, 52, E ) {# else}, Mov( C, 53, E ) )
{# else x>=54}, If(x<55, Mov( C, 54, E ) {# else}, Mov(
C, 55, E ) ) ){x<54?} ){x<52?} {# else x>=56},
If(x<60, If(x<58, If(x<57, Mov( C, 56, E ) {# else},
Mov( C, 57, E ) ) {# else x>=58}, If(x<59, Mov( C, 58, E
) {# else}, Mov( C, 59, E ) ) ){x<58?} {# else
x>=60}, If(x<62, If(x<61, Mov( C, 60, E ) {# else},
Mov( C, 61, E ) ) {# else x>=62}, If(x<63, Mov( C, 62, E
) {# else x>=63!!!}, Mov( C, 63, E ) ) ){x<62?}
){x<60?} ){x<56?} )
|
VidyaUpTo64
x:=Fml("VidyaDays"); If(x<5, {Arbitrarily use 5 days as the
minimum time frame} Mov(C,5,E) {else}, If(x>=64, {64
days is the maximum we can handle (so far)} Mov(C,64,E)
{else}, If(x<32, If(x<16, Fml("Vidya00_15") {else
x>=16}, Fml("Vidya16_31") ) {else x>=32}, If(x<48,
Fml("Vidya32_47") {else x>=48}, Fml("Vidya48_63") ) )
) )
|
Vidya with
Volatility Bands
K:=Stdev(C,5)/Mov(Stdev(C,5),20,S); SC:=0.9;
Vidya:=SC*K*C+(1-SC*K)*Ref(C,-1); UpperBand:=Vidya+2*.5*K;
LowerBand:=Vidya-2*.5*K; UpperBand; LowerBand; Vidya;
|
|
 |
 |
|
Volatility Channel
cv:= Input(1,100,14); ;HHV( ( ( ( (H+L+C) / 3 ) * 2 ) - H) , cv)
;LLV( ( ( ( (H+L+C) / 3 ) * 2 ) - L) , cv)
|
Volatility Stop
Pds1:= Input("ATR Lookback?",2,100,10); Mult:= Input("ATR
Multiplier?",1,20,3); Pds2:= Input("HHV Lookback?",2,100,20);
PrelimStop1:= HHV(H,Pds1) - ATR(Pds1)*Mult; ActualStop1:=
HHV(PrelimStop1,Pds2); ActualStop1;
PrelimStop2:= LLV(L,Pds1) + ATR(Pds1)*Mult;
ActualStop2:= LLV(PrelimStop2,Pds2); ActualStop2;
|
|
 |
 |
|
|
 |
 |
|
VFI
PERIOD:=Input("PERIOD FOR VFI",5,1300,130); COEF:=.2;
VCOEF:=Input("MAX VOLUME CUTOFF",0,50,2.5);
INTER:=Log(Typical())-Log(Ref(Typical(),-1));
VINTER:=Stdev(INTER,30); CUTOFF:=COEF*VINTER*C;
VAVE:=Ref(Mov(V,PERIOD,S),-1); VMAX:=VAVE*VCOEF;
VC:=If(V<VMAX,V,VMAX); MF:=Typical()-Ref(Typical(),-1);
VFI:=Sum(If(MF>CUTOFF,+VC,If(MF<-CUTOFF,-VC,0)),PERIOD)/VAVE;
Mov(VFI,3,E);
|
VFI
(Simplified)
Cum(If(Typ()>Ref(Typ(),-1),+V,If(Typ()<Ref(Typ(),-1),-V,0)))
|
Volume (Down,
Red)
COEF:=.2; VCOEF:=Input("MAX VOLUME CUTOFF",0,50,2.5);
INTER:=Log(Typical())-Log(Ref(Typical(),-1));
VINTER:=Stdev(INTER,30); CUTOFF:=COEF*VINTER*C;
VAVE:=Ref(Mov(V,50,S),-1); VMAX:=VAVE*VCOEF;
VC:=If(V<VMAX,V,VMAX); MF:=Typical()-Ref(Typical(),-1);
VCM:=If(MF<-CUTOFF,VC,0); VCM
|
Volume
(Neutral, Blue)
COEF:=.2; VCOEF:=Input("MAX VOLUME
CUTOFF",0,50,2.5); INTER:=Log(Typical())-Log(Ref(Typical(),-1));
VINTER:=Stdev(INTER,30); CUTOFF:=COEF*VINTER*C;
VAVE:=Ref(Mov(V,50,S),-1); VMAX:=VAVE*VCOEF;
VC:=If(V<VMAX,V,VMAX); MF:=Typical()-Ref(Typical(),-1);
VCN:=If(MF<CUTOFF AND MF>-CUTOFF,VC,0); VCN
|
Volume (Up,
Green)
COEF:=.2; VCOEF:=Input("MAX VOLUME
CUTOFF",0,50,2.5); INTER:=Log(Typical())-Log(Ref(Typical(),-1));
VINTER:=Stdev(INTER,30); CUTOFF:=COEF*VINTER*C;
VAVE:=Ref(Mov(V,50,S),-1); VMAX:=VAVE*VCOEF;
VC:=If(V<VMAX,V,VMAX); MF:=Typical()-Ref(Typical(),-1);
VCP:=If(MF>CUTOFF,VC,0); VCP
|
|
 |
 |
|
| |
|