Outros sites Medialivre
Caldeirão da Bolsa

Ajuda em Prorealtime...

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 Luis19 » 25/9/2009 11:28

Salvador, neste proscreener ele dá-te todas as acções cujo macd ontem era <0 e que hoje está >= 0

indicator1 = MACD[12,26,9](close)
c1 = (indicator1 >= 0.0)

indicator2 = MACD[12,26,9](close)
c2 = (indicator2[1] < 0.0)

criteria = Volume

SCREENER[c1 AND c2] (criteria AS "Volume")

Julgo que se aplicares a mesma fórmula à MM200 vai-te dar o mesmo resultado. Depois só tens que definir o volume (neste caso) para ele te dar as acções com volume superior a 10.000.000, por exemplo.
 
Mensagens: 407
Registado: 4/12/2007 16:30
Localização: 14

por salvadorveiga » 24/9/2009 18:13

hmmm esse ultimo n sei porque ele continua a devolver acçoes q a ma200 ja vai bem no adro...
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por yabadabadoo » 24/9/2009 17:22

Ok estive a testar codigo que postei e tinha 2 erros:
A versao final :

c = 0
n = BarIndex - 200 -1
ma200 = average[200](Close)
indicador = ma200 - ma200[1]

for i = 0 to n do
REM Procura na curva ma200 o minimo mais recente cuja ma200 seja < que a ma200 de hoje
if (indicador[i] > 0) and (indicador[i+1] < 0) and (ma200 > ma200[i + 1]) then
c = 1
break
endif
next
SCREENER[c] (Close AS "Price")


Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por salvadorveiga » 24/9/2009 16:21

pelos visto tava a fazer mal e tava a ir buscar o volume de ha 50 dias atras...

o correcto seria:

Average[50](Volume)


Já agora tenho tido dificuldade com o criterio de volume mesmo quando ponho 2 milhoes de acçoes como minimo aparecem imensas penny stocks...

a minha ideia entao era fazer um criterio com a liquidez mas em valore smonetarios portanto preço* Volume...

Esta formula para tal e' correcta? :

indicator4 = Average[50](volume) * Close
c5 = (indicator4 >= 10000000.0)


Portanto neste caso ele ia apenas seleccionar acçoes com liquidez superiores a 10 milhoes USD ou EUR correcto?
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por salvadorveiga » 24/9/2009 16:14

Luis19 Escreveu:
salvadorveiga Escreveu:mas se eu fizer "indicator2[2] e' a media dos 2 ultimos periodos ou vai buscar o valor de 2 periodos atras?


Salvador, ao fazeres por exemplo Indicator1[1] ele vai-te buscar o valor (da média móvel, neste caso) da vela de ontem, se escreveres Indicator1[2], tens o valor da vela de antes-de-ontem e assim sucessivamente.


olha n sabia.. isto porque eu qnd faço por exemplo

Volume[200] ele faz-me a media do volume das ultimas 200 sessoes... ou pelo menos penso q e' assim.
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por yabadabadoo » 24/9/2009 15:37

Tenho aqui uma versão não testada que faz o seguinte :

Procura o mínimo mais recente da mm200 e compara-o
com o valor actual da mm200. Se o valor do mínimo encontrado for menor que a mm200 de hoje, assinala essa acção.
Note-se que entre o mínimo encontrado e o valor actual da mm200 pode já ter ocorrido um máximo relativo e a mm200 hoje estar a descer embora ainda tenha um valor maior que o minimo encontrado.

c = 0
n = BarIndex - 200 + 1

for i = 0 to n do
REM Procura na curva ma200 o minimo mais recente cuja ma200 seja < que a ma200 de hoje
if (indicador[i] > 0) and (indicador[i+1] < 0) and (ma200 > ma200[i + 1])
c = 1
break
endif
next
SCREENER[c] (Close AS "Price")


Em relação à questão do [1] e [2] eu acho que é assim :

Ha 2 situações diferentes : a primeira quando estas a usar o screener e outra quando estas a construir um indicador.

No primeiro caso o Prorealtime só executa o código uma vez por acção, sendo que nesse caso [0] refere-se sempre ao valor mais recente, [1] a ontem (no caso de valores diarios) , [2] anteontem etc etc.
Se reparares neste código que postei, os [i] referem-se a i dias para trás em relação a hoje.

No segundo caso, ou seja quando constrois um indicador a coisa é diferente:

O que acontece é que nesse caso o código do teu indicador é executado 1 vez por cada barra começando na barra mais antiga.
Portanto o que o Prorelatime faz é pegar na primeira barra, calcula o valor do indicador, passa para a segunda barra , calcula o valor do indicador etc até chegar à barra de hoje.
Nesse contexto o [0] refere-se à barra que está a ser executada, e não a barra de hoje e portanto [1] refere-se à barra anterior em relação à barra que está a ser executada.
Espero ter sido claro.

Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por Luis19 » 24/9/2009 15:30

salvadorveiga Escreveu:mas se eu fizer "indicator2[2] e' a media dos 2 ultimos periodos ou vai buscar o valor de 2 periodos atras?


Salvador, ao fazeres por exemplo Indicator1[1] ele vai-te buscar o valor (da média móvel, neste caso) da vela de ontem, se escreveres Indicator1[2], tens o valor da vela de antes-de-ontem e assim sucessivamente.
 
Mensagens: 407
Registado: 4/12/2007 16:30
Localização: 14

por bestbland » 24/9/2009 14:18

jeso Escreveu:
bestblandina Escreveu:salvador, quanto se paga para ter prorealtime?

Nada, para ter as cotações EOD (fim de dia)
Com boas ferramentas de análise, portfólios, e tudo... à borla.
É só fazer o registo e... já está. :mrgreen:
Cordiais saudações. :wink:


vou fazer o registo brevemente :wink:
O Best deseja um feliz Natal a todos os utilizadores
 
Mensagens: 2796
Registado: 20/2/2009 17:06
Localização: 4

por salvadorveiga » 24/9/2009 14:16

jeso Escreveu:
bestblandina Escreveu:salvador, quanto se paga para ter prorealtime?

Nada, para ter as cotações EOD (fim de dia)
Com boas ferramentas de análise, portfólios, e tudo... à borla.
É só fazer o registo e... já está. :mrgreen:
Cordiais saudações. :wink:


e eles agora tem um modulo novo o Paper trading... sinceramente adoro o motor do prorealtime...pena a gobulling e outros n adoptarem este como motor em x da treta da Saxo... interface bonito, simples, eficaz...enfim so acho q o serviço deles de real quotees ser caro demais

Martingalo vou tentar isso mais logo pode ser q me tenha escapado algum caracter ou isso...

obrigado
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por yabadabadoo » 24/9/2009 13:42

Desculpa lá Salvador, mas isto funciona

ma200 = average[200](Close)
indicador = ma200 - ma200[1]
c1 = (indicador > 0) and (indicador[1] < 0)
SCREENER[c1] (Close AS "Price")

Selecciona tudo o que hoje tiver uma mm200 de hoje maior que a mm200 de ontem e simultaneamente que a mm200 de ontem seja menor que a mm200 de anteontem.

Vi em 3 casos seleccionados e funcionou

Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por jeso » 24/9/2009 13:37

bestblandina Escreveu:salvador, quanto se paga para ter prorealtime?

Nada, para ter as cotações EOD (fim de dia)
Com boas ferramentas de análise, portfólios, e tudo... à borla.
É só fazer o registo e... já está. :mrgreen:
Cordiais saudações. :wink:
Avatar do Utilizador
 
Mensagens: 1154
Registado: 24/6/2006 12:52
Localização: Via Lactea

por bestbland » 24/9/2009 12:49

salvador, quanto se paga para ter prorealtime?
O Best deseja um feliz Natal a todos os utilizadores
 
Mensagens: 2796
Registado: 20/2/2009 17:06
Localização: 4

por salvadorveiga » 24/9/2009 12:47

aqui fica uma das acçoes dadas pelo screener...

q o objectivo e' q n de acçoes destas mas apenas acções como na segunda imagem...


as acçoes sao as mesmas na segunda imagem apenas apaguei o resto desde o sinal original
Anexos
NAT. BANK.png
NAT. BANK.png (27.65 KiB) Visualizado 1340 vezes
NATBANK.png
NATBANK.png (16.92 KiB) Visualizado 1337 vezes
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por salvadorveiga » 24/9/2009 12:41

ja agora a titulo de exemplo o screener q tenho agora:

Código: Selecionar todos
indicator1 = Average[20]
c1 = (indicator1 > indicator1[1])

indicator2 = average[50]
c2 = (indicator2 > indicator2[1])

indicator3 = average[200]
c3 = (indicator3 > indicator3[1])

c4 = (indicator1 > indicator2)

indicator4 = Volume[20]
c5 = (indicator4 >= 1000000.0)

indicator5 = close
c6 = (indicator5 > 1)



SCREENER[c1 and c2 and c3 and c4 and c5 and c6]


o problema e' q pronto o bojectivo e' fazer com q filtre as acçoes que a mm200 ja vai no adro e so aparecer sinais novos ... ja tentei as sugestoes e ate c algumas variaçoes e da' erro =/
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por salvadorveiga » 24/9/2009 12:06

nem um nem outro :mrgreen:

Código: Selecionar todos
ma200 = average[200](Close)
indicador = ma200 - ma200[1]
c1 = (indicador > 0) and (indicador[1] < 0)

criteria = close

SCREENER[c1] (criteria AS "Price")
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por salvadorveiga » 24/9/2009 12:02

se formos so procurar um screener com a mm200 com declive positivo entao e':

indicator1 = Average[200](close)
indicator2 = Average[200](close)
c1 = (indicator1 > indicator2[1])

criteria = close

SCREENER[c1] (criteria AS "Price")


portanto o [1] e' o periodo anterior correcto?

mas se eu fizer "indicator2[2] e' a media dos 2 ultimos periodos ou vai buscar o valor de 2 periodos atras?
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por yabadabadoo » 24/9/2009 11:55

Ou assim, aliás já sugerido pelo Luis:

ma200 = movingaverage[200](Close)
indicador = ma200 - ma200[1]
c1 = (indicador > 0) and (indicador[1] < 0)
...
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por salvadorveiga » 24/9/2009 11:53

hmmm nop erro de sintaxe...mas ja percebi a ideia... vou tentar se consigo la' chegar
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por yabadabadoo » 24/9/2009 11:31

Não testei o código mas se calhar a ideia é esta :

indicador = movingaverage[200](Close) - movingaverage[200](Close)[1]

c1 = (indicador > 0) and (indicador[1] < 0)

...


Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por yabadabadoo » 24/9/2009 10:13

Zeb_PT Escreveu:Aprovieto este tópico para uma pergunta, alguem sabe se há uma função para ir buscar o fecho de outro ISIN?

Existe um Indicador "Compared security (on price)" que coloca no mesmo ecrã 2 ISINs, eu gostaria de fazer a subtracção de dois ISINs mas para isso precisava de uma função q me premitisse ir buscar por exemplo, o fecho de uma determinada acção.

Obrigado

Ha cerca de 1 ano, decidi experimentar a trial da versão real-time deste programa.
No final fui contactado pelo representante onde lhe coloquei exctamente essa questão.
A resposta, na altura, foi que de momento não dispunha dessa funcionalidade mas que estavam a estudar a sua implementação.

Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por yabadabadoo » 24/9/2009 10:08

Deixa ver se percebi:

suponhamos que tenho 5 dias em que as mm200 são :
dia 1 : 10
dia 2 : 12
dia 3 : 15
dia 4 : 16
dia 5 : 14

No dia 3 notas a mm200 é superior à do dia 1 logo queres que o dia 3 seja assinalado.
No entanto no dia 4 passa-se o mesmo em relação ao dia 2, mas nesse caso já não queres que seja assinalado, já que o sinal do dia 3 ainda está válido.
Se for isto o que pretendes, qual é o critério para saber quando é que o sinal gerado no dia 3 deixa de estar válido ? Basta a mm200 ser inferior à de 2 dias antes ?
Neste exemplo seria o dia 5 ?

Fernando
There are bold traders and old traders but no bold, old traders
 
Mensagens: 127
Registado: 2/5/2008 12:53
Localização: 16

por salvadorveiga » 23/9/2009 23:01

Luis19 Escreveu:Salvador, mesmo não sendo o Martingalo, cá vai:

Acho que desta forma deve resultar:

c1=indicator1[0]>indicator1[1]
c2=indicator1[1]<indicator1[2]

Nesse exemplo que puseste eu apenas usaria um indicador, uma vez que os dois que puseste são iguais.

Experimenta e diz se funcionou :wink:


sim mas primeiro tens q chamar o q e' o indicador1 e o que e' o indicador2...

e depois o teu [2] acho q isso vai ser apenas a media...eu ja tentei isso e n deu...

eu queria era q fosse imaginando que hoje e' o dia N

que indicador1(n-1)<indicador1(n-2) AND indicador1(n-1)<indicador1(n)

assim ele ia buscar as q tivesse no inicio de por exemplo uma tendencia da MM200 por exemplo
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

por pedropinto1 » 23/9/2009 22:53

Boas,

Necessitava de um codigo para fazer o screener de acções que no grafico diario o Preço fosse superior à MM200, assim como no semanal fosse superior que a MM50 dias.

Será possivel colocar uma % entre a MM e o preço?
Por Ex: Acções que o preço está 5% superior que MM200.

Desde já obrigado,

Pedro pinto
 
Mensagens: 30
Registado: 21/12/2007 23:40

por Luis19 » 23/9/2009 22:35

Salvador, mesmo não sendo o Martingalo, cá vai:

Acho que desta forma deve resultar:

c1=indicator1[0]>indicator1[1]
c2=indicator1[1]<indicator1[2]

Nesse exemplo que puseste eu apenas usaria um indicador, uma vez que os dois que puseste são iguais.

Experimenta e diz se funcionou :wink:
 
Mensagens: 407
Registado: 4/12/2007 16:30
Localização: 14

por salvadorveiga » 23/9/2009 16:33

Martingalo tu que es o cromo aqui do sitio a ver se das uma ajuda...

Estou agora a programar o Screener, de forma a eu correr o screener em todas as acçoes da base de dados e apenas me dar na lista as que cumprem os requisitos...

o que eu queria era, uma parte do codigo q n sei como resolver...

imagina que eu tenho uma MM200, eu quero que o critério seja que o declive esteja positivo mas q seja o primeiro declive positivo...

Para isso eu faria qq coisa como:

indicator1 = Call movingaverage[200]
indicator2 = Call movingaverage[200]
c1 = (indicator1 > indicator2[1])

Isto faz o q eu quero, mas aqui vai buscar todas, mesmo as que já estejam em tendencia há muito tempo... o q eu queria era aquelas q apenas agora ficaram com declive positivo... portanto que na barra há 2 periodos atras o declive fosse negativo.

Como faço isso?

Para ja deixo-te o codigo q tenho até agora:

Código: Selecionar todos
indicator1 = CALL "Movingaverage"[200]
indicator2 = CALL "Movingaverage"[200]
c1 = (indicator1 > indicator2[1])

criteria = average[50](volume)
SCREENER[c1 AND c2 AND c3] (criteria AS "Volume")


Thanks
Imagem
Imagem Imagem

BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor :D

Twitter: http://twitter.com/salvadorveiga
Avatar do Utilizador
 
Mensagens: 4483
Registado: 12/3/2008 22:06

AnteriorPróximo

Quem está ligado:
Utilizadores a ver este Fórum: Google [Bot], karaya75, PacoNasssa, Tosta mista e 188 visitantes