Este projeto é uma API desenvolvida com Deno e o framework Hono que realiza a coleta (web scraping) e a análise de dados de ações brasileiras a partir do site Fundamentus.
Além de coletar os dados, a API calcula o Preço Justo de Graham e o respectivo potencial de valorização (upside) de cada ação em relação à sua cotação atual.
- Coleta de dados: Varre o site Fundamentus buscando dados atualizados de ações.
-
Cálculo da Fórmula de Graham:
$$\text{Valor Graham} = \sqrt{22,5 \times \text{LPA} \times \text{VPA}}$$ - LPA: Lucro por Ação
- VPA: Valor Patrimonial por Ação
- Ordenação por Potencial (Upside): As ações são retornadas ordenadas decrescentemente pelo percentual de upside em relação à cotação atual.
- Busca por papel: Filtro rápido para obter dados de uma ação específica.
- deno.json: Configuração e definição de tarefas do Deno.
- main.ts: Ponto de entrada do servidor Hono e definição das rotas da API.
- service/stockService.ts: Serviço que realiza a raspagem, processamento, cálculo do valor de Graham e ordenação das ações.
- types/Stock.d.ts: Definição de tipo TypeScript para as ações brasileiras coletadas.
- static/robots.txt: Configurações para rastreadores web.
É necessário possuir o Deno instalado na máquina.
Para iniciar o servidor local, execute o seguinte comando na raiz do projeto:
deno task startIsso iniciará o servidor na porta 3333.
Retorna a lista de ações que possuem P/L e upside positivos em relação ao valor de Graham, ordenadas pelo maior upside.
- Rota:
GET / - Exemplo de Resposta:
[ { "Papel": "PETR4", "Cotação": "38,50", "P/L": "4,10", "P/VP": "1,15", "graham": "61,20", "upside": "58,96%", "lpa": "9,39", "vpa": "33,48" } ]
Retorna as informações detalhadas de uma ação específica pelo seu símbolo/papel.
- Rota:
GET /:paper(ex:GET /vale3) - Exemplo de Resposta:
{ "Papel": "VALE3", "Cotação": "62,10", "P/L": "5,30", "P/VP": "1,35", "graham": "78,40", "upside": "26,25%", "lpa": "11,71", "vpa": "46,00" }