Caldeirão da Bolsa

Ajuda: Criação de um indicador no MetaStock!

Espaço dedicado a todo o tipo de troca de impressões sobre os mercados financeiros e ao que possa condicionar o desempenho dos mesmos.

por Bender » 25/10/2004 13:48

Ertai Escreveu:Bem, o price Field já sei... bastou substituir o C por H, pois o primeiro elemento é o price field..

Agora o horizontal shift é que ainda não sei..


Usa Ref(Mov(C,26,E), -n), onde n = horizontal shift que pretendes.

Abraço,
Bender
Avatar do Utilizador
 
Mensagens: 378
Registado: 12/2/2004 18:57

por Ertai » 24/10/2004 23:52

Bem, o price Field já sei... bastou substituir o C por H, pois o primeiro elemento é o price field..

Agora o horizontal shift é que ainda não sei..
Avatar do Utilizador
 
Mensagens: 2140
Registado: 11/5/2003 12:11
Localização: Lisboa

por Ertai » 24/10/2004 23:29

Já agora, vou por eu aqui uma pergunta a Dwer..

Como meto numa fórmula de uma média móvel

Exemplo:

If(Mov(C,26,E)>Ref(Mov(C,26,E),-1),1,0)

Os dados para que tenha um Horizontal Shift = 1
e um Price Field: High

Enquanto posso mudar isto facilmente numa média móvel já inserida no gráfico, construir uma função com estes dados é mais complicado e ainda não descobri a formula a usar para esses dados da média móvel.

Obrigado em avanço
Avatar do Utilizador
 
Mensagens: 2140
Registado: 11/5/2003 12:11
Localização: Lisboa

Ora bem

por Dwer » 24/10/2004 21:56

Tendo em conta as fórmulas da Equis temos:

EMA26 Semanal Ascendente:

EMA26:=Mov(If(DayOfWeek( )=5,C,Peak(1,If(DayOfWeek( )=5,C,0),1)),130,S); Reparar que 130=26 semanas (26*5)
SlopeEMA26:=LinRegSlope(EMA26,2);

EMA26SemanalAscendente:=if(SlopeEMA26>0,1,0);

Histograma Semanal Ascendente:

Calcular a EMA12 semanal:
EMA12:=Mov(If(DayOfWeek( )=5,C,Peak(1,If(DayOfWeek( )=5,C,0),1)),60,S); Reparar que 130=26 semanas (26*5)

MACSemanal:=EMA12-EMA26;
SignalSemanal:=mov(MAC,9,e);
HistogramaSemanal:=MAC-Signal;

MACSemanal;SignalSemanal;HistogramaSemanal;
Temos o MACD semanal.

SlopeHistogramaSemanal:=LinRegSlope(HistogramaSemanal,2);

HistogramaSemanalAscendente:=if(SlopeHistogramaSemanal>0,1,0);

Tudos Ascendente:

if(EMA13Ascendente and HistogramaAscendente and EMA26SemanalAscendente and HistogramaSemanalAscendente,1,0);

Penso que é isto; de qq forma atenção que 5 não é sempre o último dia da semana. Se sexta for feriado o último dia da semana é 4.

Abraços,
Abraço,
Dwer

There is a difference between knowing the path and walking the path
Avatar do Utilizador
 
Mensagens: 3414
Registado: 4/11/2002 23:16

por Quico » 24/10/2004 20:26

Não sei se irá ajudar, mas a resposta que o site da Equis dá pra isso é...

http://www.equis.com/Support/Formulae.aspx?Id=41

e ...

http://www.equis.com/Support/Formulae.aspx?Id=32

Mas combinar isto com o que quero fazer é mais complicado.
Avatar do Utilizador
 
Mensagens: 4688
Registado: 12/5/2004 19:52

Oh pá....

por Dwer » 24/10/2004 19:39

Já ando com essa questão dos dados semanais há.... semanas. Para teres indicadores semanais ou tens dados com periodicidade semanal ou tens que calcular os valores da semana (open,high,low,close).
:arrow: O open é abertura do primeiro dia
:arrow: o high e low são o high e o low de toda a semana
:arrow: O close é o fecho do último dia

Problemas:
:arrow: Nem o primeiro dia da semana é sempre segunda-feira nem o último é sempre sexta-feira, por causa dos feriados.
:arrow: Depois de encontrar o primeiro e último dia da semana (com o qual temos imediatamente open e close) temos que calcular o high e o low entre estes dois dias. Não é de todo lana caprina.

Quanto aos outros indicadores é mais simples:
EMA13 diária ascendente:
EMA13:=mov(c,13,e);
SlopeEMA13:=linregslope(mov(c,13,e),2);
EMA13Ascendente:=if(SlopeEMA13>0,1,0);

MACD Diff ascendente (suponho que te refires ao histograma e que as emas sejam de 12 e 26 dias e o signal igual 9):
MAC:=mov(c,12,e)-mov(c,26,e);
Signal:=mov(MAC,Signal,9);
Histograma:=MAC-Signal;
HistogramaSlope:=linregslope(Histograma,2);
HistogramaAscendente:=If(HistogramaSlope>0,1,0)
O encadeamento do if seria qq coisa como isto:
if(EMA13Ascendente and HistogramaAscendente,1,0);
A isto haveria que acrescentar as condições para os valores semanais.

Espero ter ajudado.
Se resolveres a questão da ema e MACD semanais apita.
Abraço,
Abraço,
Dwer

There is a difference between knowing the path and walking the path
Avatar do Utilizador
 
Mensagens: 3414
Registado: 4/11/2002 23:16

por Quico » 24/10/2004 19:09

Obrigado, CyberTrader!

De qualquer forma a principal dificuldade resulta de combinar dados semanais com diários. Será que a coisa é válida se utilizar no Ref -5 dias com dados diários?
Avatar do Utilizador
 
Mensagens: 4688
Registado: 12/5/2004 19:52

Indicadores

por CyberTrader » 24/10/2004 18:41

Boa Tarde

Então é assim :

If(Mov(C,26,E)>Ref(Mov(C,26,E),-1),1,0)

Este indicador é para uma EMA de 26 dias. Para semanais tenho que ir procurar.
Se precisar de mais alguma explicação diga.

Abraço

CyberTrader
CyberTrader
Avatar do Utilizador
 
Mensagens: 101
Registado: 5/11/2002 0:56

Ajuda: Criação de um indicador no MetaStock!

por Quico » 24/10/2004 16:47

Desculpem maçar-vos com uma questão que para alguns será de "lana caprina", mas tenho andado à cabeçada com isto e está a ser difícil.

Queria construir um indicador no Metastock que fizesse isto:

Igual a 1 se :
- Ema26 semanal ascendente, e
- Ema13 diária ascendente, e
- MACD diff diário ascendente, e
- MACD diff semanal ascendente.

Igual a 0 se qualquer uma destas condições não se verificar.

Alguém pode ajudar?
Avatar do Utilizador
 
Mensagens: 4688
Registado: 12/5/2004 19:52


Quem está ligado:
Utilizadores a ver este Fórum: danielme1962, Dar Adal, Ferreiratrade, Google [Bot], m-m, malakas, Manchini888, OCTAMA, silva_39, vasco007 e 246 visitantes