Metastock - indicador interessante
1 Mensagem
|Página 1 de 1
Metastock - indicador interessante
Este indicador permite dividir a informação do gráfico em semanas, o que permite calcular o valor dos indicadores que nós utilizamos em modo semanal. Eu pessoalmente gosto de ver o valor do RSI(14,c) a nível semanal, mas acho uma seca estar a passar de um modo diário para semanal, por isso adorei encontrar isto na net...
aqui fica então...
MetaStock -> Tools -> Indicator Builder -> New
Copy and paste formula below.
=====================
Calendar Week counter
=====================
---8<---------------------------
{ Week counter v2.0, Gregorian calendar }
{ Count is independent of any missing chart data }
{ ©Copyright 2003-2004 Jose Silva }
{ josesilva22@yahoo.com }
limit:=2000; {do not change limit year}
LimLeap:=Frac(limit/4)=0 AND Frac(limit/100)<>0
OR Frac(limit/400)=0;
NoCount:=limit*365+Int(limit/4)
-Int(limit/100)+Int(limit/400)-LimLeap;
leap:=Frac(Year()/4)=0 AND Frac(Year()/100)<>0
OR Frac(Year()/400)=0;
y:=Year()*365+Int(Year()/4)
-Int(Year()/100)+Int(Year()/400)-NoCount;
m:=
If(Month()=2,31-leap,
If(Month()=3,59,
If(Month()=4,90,
If(Month()=5,120,
If(Month()=6,151,
If(Month()=7,181,
If(Month()=8,212,
If(Month()=9,243,
If(Month()=10,273,
If(Month()=11,304,
If(Month()=12,334,
-leap)))))))))));
DayNr:=y+m+DayOfMonth();
WkCount:=Int((DayNr-1)/7)+(Year()>=limit);
WkCount
Para cálcular o RSI semanal aqui fica a fórmula:
{Weekly RSI - Close}
{2004 Roy Larsen, rlarsen@man.quik.co.nz}
{for use on daily charts with
Jose Silva's "Calendar Week counter"}
N:=Input("Weekly RSI - Close Periods",1,99,10); Pc:=1/N;
F:=Input("End of Week, 5=Friday 6=Saturday 7=Sunday",5,7,5);
Q:=Input("Display Mode, 0=Static 1=Dynamic 2=Test",0,2,2);
{0=Display, update on Friday when possible}
{1=Display, update on each new bar}
{2=Backtest, update on first bar of new week}
G:=LastValue(Highest(Sum(DayOfWeek()=F,5))=5);
I:=Fml("Calendar Week counter");
I:=Abs(I-ValueWhen(2-G,1,I)); M:=G OR I>0;
F:=G OR (DayOfWeek()=F AND I=0);
A:=LastValue(Cum(1)-1)=Cum(1);
B:=LastValue(Cum(1))=Cum(1);
J:=If(F,1,If(Alert(F,2)=0 AND M,2,0));
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2 OR Cum(J)<=1,M*2,J));
K:=ValueWhen(1,J,If(J=1,C,ValueWhen(2-G,1,C)));
K:=ValueWhen(1,K>0,K);
Ua:=ValueWhen(1,J>0,K); Da:=ValueWhen(2,J>0,K);
Ub:=If(Ua>Da,Ua-Da,0); Db:=If(Ua<Da,Da-Ua,0);
U:=If(Cum(J>0)=N+1,Cum(If(J AND Cum(1)<>1,Ub,
0))/N,ValueWhen(1,J>0,PREV)*(1-Pc)+Ub*Pc);
D:=If(Cum(J>0)=N+1,Cum(If(J AND Cum(1)<>1,Db,
0))/N,ValueWhen(1,J>0,PREV)*(1-Pc)+Db*Pc);
D:=If(D=0,U,D);
D:=ValueWhen(1,D>0,D);
R:=100-(100/(1+(U/D)));
If(ValueWhen(N+1,J,R)>0,R,R);
Um abraço
Nunofaustino
aqui fica então...
MetaStock -> Tools -> Indicator Builder -> New
Copy and paste formula below.
=====================
Calendar Week counter
=====================
---8<---------------------------
{ Week counter v2.0, Gregorian calendar }
{ Count is independent of any missing chart data }
{ ©Copyright 2003-2004 Jose Silva }
{ josesilva22@yahoo.com }
limit:=2000; {do not change limit year}
LimLeap:=Frac(limit/4)=0 AND Frac(limit/100)<>0
OR Frac(limit/400)=0;
NoCount:=limit*365+Int(limit/4)
-Int(limit/100)+Int(limit/400)-LimLeap;
leap:=Frac(Year()/4)=0 AND Frac(Year()/100)<>0
OR Frac(Year()/400)=0;
y:=Year()*365+Int(Year()/4)
-Int(Year()/100)+Int(Year()/400)-NoCount;
m:=
If(Month()=2,31-leap,
If(Month()=3,59,
If(Month()=4,90,
If(Month()=5,120,
If(Month()=6,151,
If(Month()=7,181,
If(Month()=8,212,
If(Month()=9,243,
If(Month()=10,273,
If(Month()=11,304,
If(Month()=12,334,
-leap)))))))))));
DayNr:=y+m+DayOfMonth();
WkCount:=Int((DayNr-1)/7)+(Year()>=limit);
WkCount
Para cálcular o RSI semanal aqui fica a fórmula:
{Weekly RSI - Close}
{2004 Roy Larsen, rlarsen@man.quik.co.nz}
{for use on daily charts with
Jose Silva's "Calendar Week counter"}
N:=Input("Weekly RSI - Close Periods",1,99,10); Pc:=1/N;
F:=Input("End of Week, 5=Friday 6=Saturday 7=Sunday",5,7,5);
Q:=Input("Display Mode, 0=Static 1=Dynamic 2=Test",0,2,2);
{0=Display, update on Friday when possible}
{1=Display, update on each new bar}
{2=Backtest, update on first bar of new week}
G:=LastValue(Highest(Sum(DayOfWeek()=F,5))=5);
I:=Fml("Calendar Week counter");
I:=Abs(I-ValueWhen(2-G,1,I)); M:=G OR I>0;
F:=G OR (DayOfWeek()=F AND I=0);
A:=LastValue(Cum(1)-1)=Cum(1);
B:=LastValue(Cum(1))=Cum(1);
J:=If(F,1,If(Alert(F,2)=0 AND M,2,0));
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2 OR Cum(J)<=1,M*2,J));
K:=ValueWhen(1,J,If(J=1,C,ValueWhen(2-G,1,C)));
K:=ValueWhen(1,K>0,K);
Ua:=ValueWhen(1,J>0,K); Da:=ValueWhen(2,J>0,K);
Ub:=If(Ua>Da,Ua-Da,0); Db:=If(Ua<Da,Da-Ua,0);
U:=If(Cum(J>0)=N+1,Cum(If(J AND Cum(1)<>1,Ub,
0))/N,ValueWhen(1,J>0,PREV)*(1-Pc)+Ub*Pc);
D:=If(Cum(J>0)=N+1,Cum(If(J AND Cum(1)<>1,Db,
0))/N,ValueWhen(1,J>0,PREV)*(1-Pc)+Db*Pc);
D:=If(D=0,U,D);
D:=ValueWhen(1,D>0,D);
R:=100-(100/(1+(U/D)));
If(ValueWhen(N+1,J,R)>0,R,R);
Um abraço
Nunofaustino
Pluricanal... não obrigado. Serviço péssimo e enganador!!!
1 Mensagem
|Página 1 de 1
Quem está ligado:
Utilizadores a ver este Fórum: carlosdsousa, Garfield, GaussSLB47, latbal, m-m, malakas, Manchini888, Masterchief, mjcsreis, MPAM, nunorpsilva, OCTAMA, Paulo Pereira 74, peterteam2, PMP69, smog63 e 203 visitantes