Clubeinvest.com — Arquivo Histórico (1997-2011)
Esta é uma cápsula do tempo da comunidade financeira portuguesa. Login activo para membros.
Clubeinvest.com
Home Privado Fórum Acções Índices Metastock Portfolio Managers Publicações Blogs Contacto
 

Editar as notícias:

Novos ficheiros de actualização para Metastock e Bases de Dados disponíveis para milhares de acções e índices.

Menu principal

Yahoo-MetaStock

Iniciado por arb.bunker, Janeiro 29, 2010, 01:23

Tópico anterior - Tópico seguinte

rosieu

Bom dia.

Com relação ao ajuste de O,H,L,C e V, pelo adj price do yahoo, encontrei um script q supostamente faz isso, mas como nao sei nada de programação, deixo abaixo o referido script. Obrigado.

% Script to Retrieve Historical Stock Data from Yahoo! Finance
% LuminousLogic.com

function [hist_date, hist_high, hist_low, hist_open, hist_close, hist_vol] = get_hist_stock_data(stock_symbol)


% Define starting year (the further back in time, the longer it takes to download)
start_year = '2004';


% Get current date
[this_year, this_month, this_day, dummy, dummy] = datevec(date);


% Build URL string
url_string = 'http://ichart.finance.yahoo.com/table.csv?';
url_string = strcat(url_string, '&s=', upper(stock_symbol)   );
url_string = strcat(url_string, '&d=', num2str(this_month-1) );
url_string = strcat(url_string, '&e=', num2str(this_day)     );
url_string = strcat(url_string, '&f=', num2str(this_year)    );
url_string = strcat(url_string, '&g=d&a=0&b=1&c=', start_year);
url_string = strcat(url_string, '&ignore.csv');


% Open a connection to the URL and retrieve data into a buffer
buffer      = java.io.BufferedReader(...
              java.io.InputStreamReader(...
              openStream(...
              java.net.URL(url_string))));


% Read the first line (a header) and discard
dummy   = readLine(buffer);


% Read all remaining lines in buffer
ptr = 1;
while 1
    % Read line
    buff_line = char(readLine(buffer));
   
    % Break if this is the end
    if length(buff_line)<3, break; end
   
    % Find comma delimiter locations
    commas    = find(buff_line== ',');
   
    % Extract high, low, open, close, etc. from string
    DATEvar   = buff_line(1:commas(1)-1);
    OPENvar   = str2num( buff_line(commas(1)+1:commas(2)-1) );
    HIGHvar   = str2num( buff_line(commas(2)+1:commas(3)-1) );
    LOWvar    = str2num( buff_line(commas(3)+1:commas(4)-1) );
    CLOSEvar  = str2num( buff_line(commas(4)+1:commas(5)-1) );
    VOLvar    = str2num( buff_line(commas(5)+1:commas(6)-1) );
    adj_close = str2num( buff_line(commas(6)+1:end) );

    %Adjust for dividends, splits, etc.
    DATEtemp{ptr,1} = DATEvar;
    OPENtemp(ptr,1) = OPENvar  * adj_close / CLOSEvar;
    HIGHtemp(ptr,1) = HIGHvar  * adj_close / CLOSEvar;
    LOWtemp (ptr,1) = LOWvar   * adj_close / CLOSEvar;
    CLOSEtemp(ptr,1)= CLOSEvar * adj_close / CLOSEvar;
    VOLtemp(ptr,1)  = VOLvar;

    ptr = ptr + 1;
end

% Reverse to normal chronological order, so 1st entry is oldest data point
hist_date  = flipud(DATEtemp);
hist_open  = flipud(OPENtemp);
hist_high  = flipud(HIGHtemp);
hist_low   = flipud(LOWtemp);
hist_close = flipud(CLOSEtemp);
hist_vol   = flipud(VOLtemp);

rosieu



jo_nas

Boas

Citação de: rosieu em Abril 20, 2010, 17:27
Não poderia tb baixar o adj close do yahoo(Close price adjusted for dividends and splits) e com ele, corrigir open, higt e low?

A nova versão, ira incluir a opção adjusted close para dividendos e splits, apenas ainda não decidi, se o volume será ajustado ou não, parece que não há consenso,  deixo aqui a questão a consideração de todos.

Aguardo respostas para decidir.

Cumps,
Bons Negocios
BFS

arb.bunker

#34
Viva

Bom trabalho jo_nas. Só agora fiz o download da versão 5.02, está excelente. tem pormenores de refinamento (verificar existencia de internet etc..), muito bom mesmo.
Como estás a pensar fazer com os nomes? Eu já tenho uma implementação em que o nome do ticker é armazenado no portfolio, sendo feito um carregamento do hash no inicio da aplicação. O processamento dos ficheiros é alterado para o carregamento ser feito ticker-a-ticker pelo asc2ms.
Desenvolvi também um utilitário para converter os portfolios, recorrendo ao Yahoo. Infelizmente as designações do Yahoo também não são famosas. Experimentei ainda esta versão alguns dias mas depois voltei à primeira forma e sabes que mais? Tu é que tens razão, já me habituei a vivr só com os tickers.No fundo o que interessa é correr os scans e os experts que estejamos a seguir e, não menos importante a qualidade dos dados.

Entretanto, não estive parado. Desenvolvi, com base nos trabalhos anteriores, uma ferramenta "Yahoo-getInfoTags.pl" para ir buscar os valores dos fundamentais das empresas. A ferramenta conta com a passagem dos campos que pretendemos seleccionar na linha de comando, separando-os por virgulas. Tal como no Yahoo-getQuotes4Metastock, o uso dos nossos queridos Portfolios é imprescindivel. A ferramenta conta ainda com um requisitos


  • A existencia de uma directoria com "Portfolios", tipicamente ficheiros de texto com um ticker por linha.
  • A existencia de uma directoria "Info", onde são colocados os resultados.
  • A existência de um ficheiro "infotags.cfg", onde está especificado para cada portfolio qual o site Yahoo de onde vai ser descarregada a informação.

Aqui deixo um zip com a ferramenta para apreciação/contribuições  8), sempre generosas do pessoal daqui do CI. Pena é que para simbolos da europa, ásia, austrália e brasil o Yahoo não seja tão criterioso na manutenção da base de dados, como sucede para os EUA, mas do mal o menos...


O arquivo que agora coloco só tem três ficheiros:


  • Yahoo-getInfoTags.pl A pura perlada que vai buscar os dados.
  • infotags.cfg O ficheiro de configuração que deve ser editado, para adequação dos portfolios, antes de ser executada a aplicação.
  • get-Fundamentals.cmd Um batch que chama a perlada para calcular os valores do S&P500.

Nota: podem encontrar mais informações sobre as tags, entre outras recomendações de investimento neste sitio: http://www.gummy-stuff.org/Yahoo-data.htm


Instalação:

1. Extrair o arquivo para a directoria onde mantêm o Yahoo-getQuotes4Metastock.
2. Editar o ficheiro "infotags.cfg" para ajustar os nomes do portfolios.
3. Editar e executar o batch get-Fundamentals.cmd para obter os resultados.
4. Consultar os resultados na directoria "Info" com o Excel. Eventualmente precisará de criar esta directoria, debaixo da raíz da aplicação.


Bons negócios ;)

Intel++

jo_nas

Boas

Estou a fazer uns testes a nova versão Yahoo-getQuotes4Metastock.pl versão: 05.03.2010, ate ao fim da semana coloco aqui.

Arb bunker eu estou a gostar dos nomes nos títulos, possível com esta versao, eu não gostava era de os meter a unha.

Quanto aos nomes vão directos para BD MS, sem qualquer ficheiro ascii, melhor existe mas e usado e apagado.

Quanto a nova aplicação, tenho uma coisa parecida que, ainda não funciona na perfeição mas em excel e vba, porque o excel europeu não gosta de pontos como casa decimal, a microsoft podia era resolver esse problema, não a formatação q resolva só mesmo código

Estou a ver a tua aplicação, da um erro undefined value, se o pessoal se esquecer de criar o directoria info, deixo aqui a sugestão para o comando resolver as situação.


@echo off
IF EXIST .\Info\ GOTO WINDIR
mkdir info
:WINDIR
del .\Info\* /q
perl Yahoo-getInfoTags.pl -sf s,p,e,d,y,b4,j1,r,r5,p5,p6 psig
pause


Tem algum código, meu conhecido ainda tenho uma percentagenzinha :).
Bom trabalho.

Cumps,
Bons negocios

arb.bunker

Viva

Citação de: jo_nas em Abril 28, 2010, 00:38
Tem algum código, meu conhecido ainda tenho uma percentagenzinha :).

Mas é claro jo_nas, esses créditos foram atribuidos no meu "post". Quanto à questão dos pontos, resolvi adoptar o sistema americano, pois todos os meus PC's estão em inglês-usa, mas há um workaround fácil de implementar que estou a pensar incluir na proxima versão (tipicamente com +1 parametro -f eu|usa) e aplicação em função deste seleccionar a expressão regular a aplicar e efectuar as respectivas susbstituições. Penso que será do agrado de todos ;).

Por enquanto, é sempre possivel abrir o .csv com o notepad e editá-lo

1. Trocar "," por ";"
2. Trocar "." por ","
3. Trocar ";" por ","

e pronto, voltar a abrir com o Excel!

Nota: se pretenderem incluir o nome da empresa nas tags, coloquem a tag n em último lugar, uma vez que empresas há que têm a virgula na designação e depois as colunas subsequentes ficam todas desalinhadas. Uma vez no Excel, é fácil com copy+cut+paste acertar tudo outra vez

Bons negócios,

Intel++

rosieu

Bom dia a todos.

Sou brasileiro.

arb.bunker, qdo vc se referiu q a base de dados do brasil não é muito boa, em q aspecto vc se referia?

Pq muito me interessa a base de dados da bovespa (Brasil).

Obrigado.

rosieu

Quanto a dúvida sobre o ajustamento do volume, sou a favor que o mesmo também seja ajustado.

No entanto, seria possível q o programa tivesse essa opção, ou seja, de baixar os dados ajustando ou não o volume?

Obrigado.

arb.bunker

Boas,

Meu caro rosieu, antes de mais, desculpe só agora responder.

Citação de: rosieu em Abril 28, 2010, 14:04

arb.bunker, qdo vc se referiu q a base de dados do brasil não é muito boa, em q aspecto vc se referia?
Pq muito me interessa a base de dados da bovespa (Brasil).

O que queria dizer é que fora dos papeis dos EUA, ou seja Europa, Oceania e América do Sul, o Yahoo não é muito pródigo em alimentar aqueles rácios para os quais a ferramenta apresentada foi desenvolvida. Entre esses rácios (excepto o dividend e dividend-yield), gostaria de conseguir extrair EPS, P/E,P/S,Current ratio,Quick ratio, etc.

Infelizmente, para acções da NYSE, NASDAQ e AMEX (nem todos os ETF's), a coisa funciona bem; para o resto do mundo é que é pior :(, vem tudo a zeros ou o execrável N/A.

no meu caso, não conheco muito bem os papeis brasileiros, a não ser aquelas empresas mais conhecidas ITAU,GERDAU,PETROBRAS, nas restantes, até pode ser que haja boas oportunidades, mas sem esses rácios, torna-se dificil fazer uma análise inicial aos titulos.

Bons negócios,

Intel++

rosieu

Ok arb.bunker!

Muito obrigado pelos esclarecimentos.
Então posso confiar nos dados O, H, L, C e V da BOVESPA (Brasil) do yahoo, certo?
Enquanto isso, aguardo a nova versao com os devidos ajustes.

Obrigado.

jo_nas

Boas

Depois de vários testes, porque nunca são demais, chega versão Yahoo-getQuotes4MetaStock_v05_03.2010.

Novas funcionalidades: Vários melhoramentos do código e validações, Inserir os nomes dos títulos, na BD MS, ajustamento para dividendos e splits, opção de mensagens e servidores. Bem vejam a ajuda estendida para mais informação (-help).

pass:  wheelsonfire

Cumps,
Bons negócios

arb.bunker

Parabéns jo_nas!

Eu, por mim parei na versão 4. qq. Estive a dar uma leitura ao código desta nova versão 5.3. Está bom, muito bom mesmo (já levaste +1 pontinho). Por acaso tenho cotações em tempo real com a minha correctora e, uso o MetaStock só para testar os valores de alguns "trading systems" e verificar alguns "scans". Daí que tenha necessidade de carregar estes dados rapidamente, cerca de 30 min chegam para dar uma voltinha ao mundo com esta ferramenta. No fim temos um MetaStock actualizado, pronto para uma sessão de trabalho nocturno de preparação para a sessão seguinte sem recorrer ao Downloader (nós, somos mesmo uns animais cheios de hábitos). Está muito bom o programa.

Bons negócios

Intel++

jo_nas

Boas

Arb eu também só uso para carregar dados no programa Metastock para analise técnica, da maneira como os mercados andam, é preciso uma ferramenta como o Metastock para retirar a emoção das ordens de bolsa.

Quanto a esta nova versão, apenas limar algumas arestas, (e um pequeno bug, parece que ninguém o  viu), nomeadamente no português devem já ter reparado na falta de acentos e cedilhas, ao executarem o script vbs irá verificar e corrigir se necessário a consola de comandos para visualizar perfeitamente na língua de Camões. Ainda não é unicode para os mais entendidos, mas talvez num futuro se houver uma versão multi-linguagem.

Vou deixar aqui a versão executável para quem não quiser instalar o perl.

Cumps.
Bons negocios

jo_nas

#44
Boas

Esqueci-me de dizer duas coisas 1 a pass e igual as anteriores, já devem ter reparado, e os restantes ficheiros e só adicionar das versões anteriores menos o.pl.

Reparei que caso não exista o strawbery perl instalado dava um erro no script vbs, alguns problemas também com o windows 7, actualizem para esta versão, mesmo os que já o fizeram, esta versão igual para exe ou perl. Fica também a versão em perl para quem desejar.

Cumps,
Bons negócios