Página 1 de 1

MensagemEnviado: 27/4/2007 7:59
por Red
Bom dia Cem,
De facto o que pretendia não era uma linha ascendente, apenas criei um exemplo para colocar a minha questão. O que pretendia mesmo era conseguir encontrar uma solução para passar o Barras Cem para MS :)
Da maneira que tinha pensado não vai dar, devido à forma de funcionamento que o Bender indicou.
Obrigado e um abraço.


Bender,
Pois é, se ele tem o valor futuro definido é porque o calculou previamente :)

Um abraço,
red

MensagemEnviado: 26/4/2007 23:17
por Bender
Red,

só para clarificar melhor a minha explicação, deixo aqui esta fórmula que consegue prever o futuro. :wink:

Com este "truque", só não consigo adivinhar o fecho do PSI20 de amanhã.. :) :mrgreen:


Código: Selecionar todos
a := 3.14;
a := Ref(a,+2);
a;


Abraço,
Bender

MensagemEnviado: 26/4/2007 19:09
por Bender
Red Escreveu:Queres dizer que ele primeiro calcula o a:=0; para todas as barras e depois vai calcular o a:=ref(a,-1); para todas as barras, indo sempre buscar o valor de 0 para "a"?


Precisamente. :)

Red Escreveu:Sendo assim não há mesmo hipóetes... raios partam o script do MS :P


só usando duas fórmulas, uma delas para o cálculo de "a", e a segunda que usa a primeira para o cálculo que pretendes ( que já pode referenciar valores anteriores de "a")....o método do costume, basicamente ;-)

Abraço,
Bender

Re

MensagemEnviado: 26/4/2007 19:06
por Cem
Amigo Red:
Não sei se o que procuras é uma função que aumente 1 unidade por cada barra.
Se for esse o caso a solução poderia ser:

a:=
Cum(1);
a;

Espero que resolva o teu problema!
Abraço.

Cem

MensagemEnviado: 26/4/2007 18:32
por Red
Olá Bender,

Penso ter percebido o que querias dizer, não sei é se percebi exactamente de que forma isso implica os resultados que se obtêm :)

Queres dizer que ele primeiro calcula o a:=0; para todas as barras e depois vai calcular o a:=ref(a,-1); para todas as barras, indo sempre buscar o valor de 0 para "a"?

Sendo assim não há mesmo hipóetes... raios partam o script do MS :P

Obrigado e um abraço,
red

Re: Ajuda no Metastock

MensagemEnviado: 26/4/2007 18:06
por Bender
Red Escreveu:Neste indicador, supostamente ele deveria mostrar uma linha que aumenta de valor ao longo das barras, +1 por cada barra. No entanto, mostra uma linha sempre a 1. Se numa determinada barra a=1, na barra seguinte, ao invocar ref(a,-1), iriamos obter o valor 1 e somando 1 daria 2, e por aí adiante. Mas não é isso que acontece.

Alguem sabe o porquê?


Caro Red,

isso está relacionado com a forma como são interpretadas as fórmulas no MS. O teu raciocínio e o meu inicialmente era esse: para cada uma das velas, o MS avalia a fórmula. Basicamente seria:

Para cada vela V no gráfico
__Para cada linha L da fórmula
____Avalia L, para a vela V
__Fim Para
Fim Para

Mas na realidade o que se passa é que cada linha da fórmula é processada logo para todas as velas.

O algoritmo de interpretação é basicamente este:

Para cada linha L da fórmula
__Para cada vela V no gráfico
____Avalia L, para a vela V
__Fim Para
Fim Para

(_ usado como espaço)

Não sei se dá para entender, mas posso explicar melhor, caso seja necessário. :wink:

Abraço,
Bender

MensagemEnviado: 26/4/2007 17:14
por Red
Olá tugabulls,

Obrigado mas de facto essa solução não me resolve o problema, já que, o que pretendo não é propriamente uma linha ascendente mas sim conseguir ir buscar o valor da variável na barra anterior, e que não consigo com a função ref() por motivos que desconheço. Aparentemente essa função vai buscar o valor da constante atribuido a "a" e não o último valor atribuido...

Já perguntei em outros foruns específicos do MS e até agora não tenho solução. Paciência :)

Um abraço,
red

MensagemEnviado: 24/4/2007 22:25
por tugabulls
Não sei se ajuda, mas é um principio.

a:= 1;
a:= Cum(Ref(a,-1)) + 1;
a

Ajuda no Metastock

MensagemEnviado: 24/4/2007 21:20
por Red
Olá,

Estou a tentar fazer algo no metastock e ele não me está a dar o resultado esperado.

Código: Selecionar todos
a:= 0;
a:= Ref(a,-1) + 1;
a;


Neste indicador, supostamente ele deveria mostrar uma linha que aumenta de valor ao longo das barras, +1 por cada barra. No entanto, mostra uma linha sempre a 1. Se numa determinada barra a=1, na barra seguinte, ao invocar ref(a,-1), iriamos obter o valor 1 e somando 1 daria 2, e por aí adiante. Mas não é isso que acontece.

Alguem sabe o porquê?

Obrigado,
red