Rank: Advanced Member
Groups: Registered, Registered Users, Subscribers Joined: 7/25/2005(UTC) Posts: 1,042
Was thanked: 57 time(s) in 54 post(s)
|
Hi Vish
This indicator plots a weekly EMA on daily bars. As with this indicator the entire Multi-Frame D series allows weekly plots to to be based on an end-of-week other than Friday, Saturday or Sunday. You'll need the Forum DLL from the Files section of this site installed before the indicator will function. Download the ForumDll_200 item, rename the file Forum.DLL and save it in the "External Function DLLs" folder. Hope this helps.
Roy
www.metastocktips.co.nz
{Multi-Frame D EMA Forum}
{Exponential Moving Average}
{Requires Equis Forum DLL}
{Roy Larsen, 2008-2010, 6/10/10}
{User settings}
N:=Input("Multi-Frame D EMA, Periods",1,99,10);
J:=Input("Months per Frame, 0=Weekly",0,12,0);
J:=If(5>J OR Mod(J,3)=0 AND (J9),Int(J),-1);
U:=Input("Price, 1=O 2=H 3=L 4=C 5=MP 6=WC 7=Typical",1,7,4);
G:=Input("End-of-week Offset in Days",0,6,0);
Q:=Input("Mode, 0=Static 1=Dynamic 2=Delayed",0,2,0);
{Update on last bar, new bar or new frame}
{Timing signals}
{Day counter by metastocktools.com}
D:=DayOfWeek();M:=Month();Y:=Year();
Z:=Cum(1);F:=Rnd(Life(291231));
M:=If(J=0,ValueWhen(1,Z=1,F+D-G-1)-F,
(Y-ValueWhen(1,Z=1,Y))*12+M);
I:=If(J=0,Int(M/7),Int((M-1)/Max(1,J)));
I:=I>ValueWhen(2,1,I);
G:=LastValue(0>J OR Lowest(Sum(I>0,5))=5);
I:=ExtFml("Forum.Sum",I,1);M:=G+I;
F:=ExtFml("Forum.Sum",Ref(I,1),1)*(M=0)*(Z>1)+G;
B:=LastValue(Z);A:=B-1=Z;B:=B=Z;
F:=F+B*(Q=0)*(J=0)*(D=5);
J:=If(F,1,(Alert(F,2)=0)*M*2*(Z>1));
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2,M*2,J));
{Frame prices}
Q:=ValueWhen(1,M+(Z=1),O);
B:=HighestSince(1,M+(Z=1),H);
Y:=LowestSince(1,M+(Z=1),L);
Q:=ValueWhen(1,J,If(J=1,Q,ValueWhen(2-G,1,Q)));
B:=ValueWhen(1,J,If(J=1,B,ValueWhen(2-G,1,B)));
Y:=ValueWhen(1,J,If(J=1,Y,ValueWhen(2-G,1,Y)));
K:=ValueWhen(1,J,If(J=1,C,ValueWhen(2-G,1,C)));
A:=(B+Y)/2; D:=(B+Y+2*K)/4; I:=(B+Y+K)/3;
K:=If(U=1,Q,If(U=2,B,If(U=3,Y,If(U=5,A,If(U=6,D,If(U=7,I,K))))));
{EMA}
R:=If(J,Min(Cum(J>0),N),Pwr(10,10));
ExtFml("Forum.Mov",K,R,E);
|