Cotações das ações na bolsa de valores com Ruby e Sinatra

Neste post eu quero explicar como fazer uma aplicação que pegue dados sobre papéis da Bovespa, diretamente do site da Bovespa.

A Bovespa oferece um serviço gatuito de informações sobre as cotações dos papéis negociados, via XML no site deles. É bem provável que seja desse serviço que site como FolhaInvest e o SimulaBolsa conseguem as inforamções para o simulador.

Esse serviço tem um delay de 15 min. Quer dizer que toda informação estará pelos menos 15 minutos atrasada. A Bovespa tem um serviço que presta informações em tempo real também, mas é pago (e não é barato). Esse serviço pago é muito útil pra quem trabalha como trader e quer implementar seus próprios indicadores no curtíssimo prazo, para operar como daytrader. É provavelmente desse serviço pago da Bovespa que os homebrokers e sites como o ADVFN conseguem informações em tempo real.

Para conseguir ler os dados, vamo instalar a gem bovespa, com o comando:

1
$ gem install bovespa

Para começar a usar, é só passar o código do ativo para o método construtor e será instanciado um objeto com todas as propridades do ativo. A partir daí, é só acessar os valores usando os métodos.

1
2
3
require 'bovespa'<br />
@ativo = Bovespa::Cotacao.new('petr4')<br />
puts @ativo.ultimo_valor<br />

Se você salvar o código acima em um arquivo cotacao.rb, você já vai poder ver isso funcionando. Só rodar no terminal:

1
$ ruby cotacao.rb

Na minha conta no github você encontra o código que consulta a bovespa e exibe as informações dos papeis através de uma busca, usando o Sinatra.

https://github.com/marcofognog/bovespa_exemplo

Achei mais interessante usar o Sinatra por ser uma aplicação bem simples, e que não precisa de toda a infraestrutura que tem o Rails.

Qualquer dúvida ou sugestão, deixa um comentário!