Deixo-te aqui uma brincadeira que fiz com o teu indicador de direcção:)
basicamente juntei o teu com um indicador que eu tinha e que foi baseado num sistema de stop-loss
tem dado resultados interessantes, em particular no EURUSD.
Se n conseguires colocar este indicador a funcionar ou se faltar alguma coisa, avisa, ok?
Já agora, eu considero um sinal de compra apenas qdo houver 3 dias consecuticos de 1 e um sinal de fecho de posições um -1 ou esta fórmula (Cross(Mov( FmlVar("Para cima e para baixo2","Z"),50, E),2)).
Bem sei que é um sistema nada simples e que algumas fórmulas podem ser incrivelmente simplificadas, mas pronto... ainda lhe faltam algumas coisas, nomeadamente:
1. Identificar as zonas de lateralização (o que poderá ser conseguido, por exemplo, alterando o tempo do indicador para cima2 e para baixo2)
2. A partir do momento que se conseguir identificar as zonas de lateralização, construir um indicador de força que permita estabelecer a % de $$ a investir consoante a força do movimento...
Deixo aqui dois gráfico de muito longo prazo... um do EURUSD onde este sistema se porta de um modo muito bom (em particular se olharmos para o DD) e outro do USDJPY onde se podem ver o que acontece nas zonas de lateralização prolongada...
Um abraço
Nuno
Indicador 1: CostaRios - Força da Tendência
ForcadaTendencia:=If(
OBV(C) > Mov(OBV(C),28,S)
,
OBV(C) - Mov(OBV(C),28,S)
,
Mov(OBV(C),28,S) - OBV(C)
);
varMovCurtoPrazo := Mov(ForcadaTendencia,14,S);
varMovMedioPrazo := Mov(ForcadaTendencia,28,S);
varPeriodoCurtoPrazo := 5;
varPeriodoMedioPrazo := 6;
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
1
,
0.5
)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
0
,
0.5
)
,
PREV
)
)
Indicador 2: CostaRios - Direcção da Tendência
varMovCurtoPrazo := Mov(C,14,S);
varMovMedioPrazo := Mov(C,28,S);
varPeriodoCurtoPrazo := 14;
varPeriodoMedioPrazo := 28;
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
1
,
0.5
)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
0
,
0.5
)
,
PREV
)
)
Indicador 3: Para baixo2
LowDays := Input("Enter # days to cover last LOW for CBL calc'n:", 3, 55, 7);
If(LOW > LLV(LOW, LowDays), {then ...} PREV, {previous CBLlo, else...} If(Ref(H,-2) > Ref(H,-1) AND Ref(H,-2) > H AND Ref(H,-1) > H, {then ...} Ref(H,-2), {2nd day back high,else...} If((Ref(H,-3)> Ref(H,-2) AND Ref(H,-3) > Ref(H,-1) AND Ref(H,-3) > H) AND (Ref(H,-2)> H OR Ref(H,-1) > H), {then ... } Ref(H,-3), {3rd day back high,else...} If((Ref(H,-4)> Ref(H,-3) AND Ref(H,-4) > Ref(H,-2) AND Ref(H,-4) > Ref(H,-1) AND Ref(H,-4) > H) AND (Ref(H,-3)> H OR Ref(H,-2) > H OR Ref(H,-1) > H), {then... } Ref(H,-4), {4th day back high,else...} If((Ref(H,-5)> Ref(H,-4) AND Ref(H,-5) > Ref(H,-3) AND Ref(H,-5) > Ref(H,-2) AND Ref(H,-5) > Ref(H,-1) AND Ref(H,-5) > H) AND (Ref(H,-4)> H OR Ref(H,-3) > H OR Ref(H,-2) > H OR Ref(H,-1) > H), {then ...} Ref(H,-5), {5th day back high,else...} PREV )))));
Indicador 4: Para cima2
HighDays := Input("Enter # days to cover last HIGH for CBL calc'n:", 3, 55, 7);
If(HIGH < HHV(HIGH, HighDays), {then ...} PREV, {previous CBLhi, else...} If(Ref(L,-2) < Ref(L,-1) AND Ref(L,-2) < L AND Ref(L,-1) < L, {then ...} Ref(L,-2), {2nd day back low, else...} If((Ref(L,-3)< Ref(L,-2) AND Ref(L,-3) < Ref(L,-1) AND Ref(L,-3) < L) AND (Ref(L,-2)< L OR Ref(L,-1) < L), {then ... } Ref(L,-3), {3rd day back low, else...} If((Ref(L,-4)< Ref(L,-3) AND Ref(L,-4) < Ref(L,-2) AND Ref(L,-4) < Ref(L,-1) AND Ref(L,-4) < L) AND (Ref(L,-3)< L OR Ref(L,-2) < L OR Ref(L,-1) < L), {then... } Ref(L,-4), {4th day back low, else...} If((Ref(L,-5)< Ref(L,-4) AND Ref(L,-5) < Ref(L,-3) AND Ref(L,-5) < Ref(L,-2) AND Ref(L,-5) < Ref(L,-1) AND Ref(L,-5) < L) AND (Ref(L,-4)< L OR Ref(L,-3) < L OR Ref(L,-2) < L OR Ref(L,-1) < L), {then ...} Ref(L,-5), {5th day back low, else...} PREV )))));
Indicador 5: Descidas
a:=Fml("Para baixo") - Ref(Fml("Para baixo"),-1);
b:=a+Ref(a,-1)+Ref(a,-2)+Ref(a,-3)+Ref(a,-4)+Ref(a,-5)+Ref(a,-6)+Ref(a,-7)+Ref(a,-8)+Ref(a,-9);
d:=Fml("Para cima") - Ref(Fml("Para cima"),-1);
f:=d+Ref(d,-1)+Ref(d,-2)+Ref(d,-3)+Ref(d,-4)+Ref(d,-5)+Ref(d,-6)+Ref(d,-7)+Ref(d,-8)+Ref(d,-9);
f;
b
Indicador do sinal: Paracimaeparabaixo2
a:=Fml( "CostaRios - Direcção da Tendência") + Fml( "CostaRios - Força da Tendência");
b:=If(a=2,4,If(a=1,0,If(a=0,-4,a)));
Buy:= If(Ref(Fml("Para cima2"),-1)<>(Fml("Para cima2")),1,0);
venda:=If(Ref(Fml("Para baixo2"),-1)<>(Fml("Para baixo2")),-1, 0);
buysell2:=If(Cross(buy,0.5),1,
If(Cross(-0.5, venda),-1,
PREV));
buysell3:= If(FmlVar("Descidas","B")<>0,-1,0);
buysell4:= If(FmlVar("Descidas","F")<>0,1,0);
z:=buysell2+buysell3+buysell4;
y:=z+ Fml( "Para cima e para baixo")+b;
If(y>4,1, If(y<0,-1,0));
basicamente juntei o teu com um indicador que eu tinha e que foi baseado num sistema de stop-loss
tem dado resultados interessantes, em particular no EURUSD.
Se n conseguires colocar este indicador a funcionar ou se faltar alguma coisa, avisa, ok?
Já agora, eu considero um sinal de compra apenas qdo houver 3 dias consecuticos de 1 e um sinal de fecho de posições um -1 ou esta fórmula (Cross(Mov( FmlVar("Para cima e para baixo2","Z"),50, E),2)).
Bem sei que é um sistema nada simples e que algumas fórmulas podem ser incrivelmente simplificadas, mas pronto... ainda lhe faltam algumas coisas, nomeadamente:
1. Identificar as zonas de lateralização (o que poderá ser conseguido, por exemplo, alterando o tempo do indicador para cima2 e para baixo2)
2. A partir do momento que se conseguir identificar as zonas de lateralização, construir um indicador de força que permita estabelecer a % de $$ a investir consoante a força do movimento...
Deixo aqui dois gráfico de muito longo prazo... um do EURUSD onde este sistema se porta de um modo muito bom (em particular se olharmos para o DD) e outro do USDJPY onde se podem ver o que acontece nas zonas de lateralização prolongada...
Um abraço
Nuno
Indicador 1: CostaRios - Força da Tendência
ForcadaTendencia:=If(
OBV(C) > Mov(OBV(C),28,S)
,
OBV(C) - Mov(OBV(C),28,S)
,
Mov(OBV(C),28,S) - OBV(C)
);
varMovCurtoPrazo := Mov(ForcadaTendencia,14,S);
varMovMedioPrazo := Mov(ForcadaTendencia,28,S);
varPeriodoCurtoPrazo := 5;
varPeriodoMedioPrazo := 6;
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
1
,
0.5
)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
0
,
0.5
)
,
PREV
)
)
Indicador 2: CostaRios - Direcção da Tendência
varMovCurtoPrazo := Mov(C,14,S);
varMovMedioPrazo := Mov(C,28,S);
varPeriodoCurtoPrazo := 14;
varPeriodoMedioPrazo := 28;
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) >
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
1
,
0.5
)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoCurtoPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoCurtoPrazo)
,
If(
Alert(varMovCurtoPrazo > varMovMedioPrazo, varPeriodoMedioPrazo) <
Alert(varMovCurtoPrazo < varMovMedioPrazo, varPeriodoMedioPrazo)
,
0
,
0.5
)
,
PREV
)
)
Indicador 3: Para baixo2
LowDays := Input("Enter # days to cover last LOW for CBL calc'n:", 3, 55, 7);
If(LOW > LLV(LOW, LowDays), {then ...} PREV, {previous CBLlo, else...} If(Ref(H,-2) > Ref(H,-1) AND Ref(H,-2) > H AND Ref(H,-1) > H, {then ...} Ref(H,-2), {2nd day back high,else...} If((Ref(H,-3)> Ref(H,-2) AND Ref(H,-3) > Ref(H,-1) AND Ref(H,-3) > H) AND (Ref(H,-2)> H OR Ref(H,-1) > H), {then ... } Ref(H,-3), {3rd day back high,else...} If((Ref(H,-4)> Ref(H,-3) AND Ref(H,-4) > Ref(H,-2) AND Ref(H,-4) > Ref(H,-1) AND Ref(H,-4) > H) AND (Ref(H,-3)> H OR Ref(H,-2) > H OR Ref(H,-1) > H), {then... } Ref(H,-4), {4th day back high,else...} If((Ref(H,-5)> Ref(H,-4) AND Ref(H,-5) > Ref(H,-3) AND Ref(H,-5) > Ref(H,-2) AND Ref(H,-5) > Ref(H,-1) AND Ref(H,-5) > H) AND (Ref(H,-4)> H OR Ref(H,-3) > H OR Ref(H,-2) > H OR Ref(H,-1) > H), {then ...} Ref(H,-5), {5th day back high,else...} PREV )))));
Indicador 4: Para cima2
HighDays := Input("Enter # days to cover last HIGH for CBL calc'n:", 3, 55, 7);
If(HIGH < HHV(HIGH, HighDays), {then ...} PREV, {previous CBLhi, else...} If(Ref(L,-2) < Ref(L,-1) AND Ref(L,-2) < L AND Ref(L,-1) < L, {then ...} Ref(L,-2), {2nd day back low, else...} If((Ref(L,-3)< Ref(L,-2) AND Ref(L,-3) < Ref(L,-1) AND Ref(L,-3) < L) AND (Ref(L,-2)< L OR Ref(L,-1) < L), {then ... } Ref(L,-3), {3rd day back low, else...} If((Ref(L,-4)< Ref(L,-3) AND Ref(L,-4) < Ref(L,-2) AND Ref(L,-4) < Ref(L,-1) AND Ref(L,-4) < L) AND (Ref(L,-3)< L OR Ref(L,-2) < L OR Ref(L,-1) < L), {then... } Ref(L,-4), {4th day back low, else...} If((Ref(L,-5)< Ref(L,-4) AND Ref(L,-5) < Ref(L,-3) AND Ref(L,-5) < Ref(L,-2) AND Ref(L,-5) < Ref(L,-1) AND Ref(L,-5) < L) AND (Ref(L,-4)< L OR Ref(L,-3) < L OR Ref(L,-2) < L OR Ref(L,-1) < L), {then ...} Ref(L,-5), {5th day back low, else...} PREV )))));
Indicador 5: Descidas
a:=Fml("Para baixo") - Ref(Fml("Para baixo"),-1);
b:=a+Ref(a,-1)+Ref(a,-2)+Ref(a,-3)+Ref(a,-4)+Ref(a,-5)+Ref(a,-6)+Ref(a,-7)+Ref(a,-8)+Ref(a,-9);
d:=Fml("Para cima") - Ref(Fml("Para cima"),-1);
f:=d+Ref(d,-1)+Ref(d,-2)+Ref(d,-3)+Ref(d,-4)+Ref(d,-5)+Ref(d,-6)+Ref(d,-7)+Ref(d,-8)+Ref(d,-9);
f;
b
Indicador do sinal: Paracimaeparabaixo2
a:=Fml( "CostaRios - Direcção da Tendência") + Fml( "CostaRios - Força da Tendência");
b:=If(a=2,4,If(a=1,0,If(a=0,-4,a)));
Buy:= If(Ref(Fml("Para cima2"),-1)<>(Fml("Para cima2")),1,0);
venda:=If(Ref(Fml("Para baixo2"),-1)<>(Fml("Para baixo2")),-1, 0);
buysell2:=If(Cross(buy,0.5),1,
If(Cross(-0.5, venda),-1,
PREV));
buysell3:= If(FmlVar("Descidas","B")<>0,-1,0);
buysell4:= If(FmlVar("Descidas","F")<>0,1,0);
z:=buysell2+buysell3+buysell4;
y:=z+ Fml( "Para cima e para baixo")+b;
If(y>4,1, If(y<0,-1,0));
