Ajuda em Prorealtime...
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.
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
hmmm esse ultimo n sei porque ele continua a devolver acçoes q a ma200 ja vai bem no adro...
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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
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
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?
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?
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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.
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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
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
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
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á.![]()
Cordiais saudações.
vou fazer o registo brevemente

O Best deseja um feliz Natal a todos os utilizadores
- Mensagens: 2796
- Registado: 20/2/2009 17:06
- Localização: 4
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á.![]()
Cordiais saudações.
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
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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
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
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
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 (27.65 KiB) Visualizado 1353 vezes
-
- NATBANK.png (16.92 KiB) Visualizado 1350 vezes
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
ja agora a titulo de exemplo o screener q tenho agora:
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 =/
- 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 =/
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
nem um nem outro

- 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")
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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?
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?
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
hmmm nop erro de sintaxe...mas ja percebi a ideia... vou tentar se consigo la' chegar
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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
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
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
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
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
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
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
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
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
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

- Mensagens: 407
- Registado: 4/12/2007 16:30
- Localização: 14
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:
Thanks
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
BLOG: www.mybullmarket.org As mesmas análises, os mesmos gráficos, um novo design... O que era bom, acabou de ficar melhor

Twitter: http://twitter.com/salvadorveiga
Quem está ligado: