pyBovespa
Neste ano eu comecei a investir em ações. É algo ao mesmo tempo emocionante e apavorante porque você pode ganhar e perder dinheiro em questão de horas. Por isso é importante ficar sempre atento as alterações dos valores das ações. Existem vários programas e sites que permitem o acompanhamento das alterações. Mesmo assim, eu aproveitei a manhã de feriado, enquanto me recupero de uma pequena ressaca, e fiz um script em Python que busca os dados da Bovespa e permite o acompanhamento da sua “carteira de ações”. Assim dá para deixar um terminal aberto e ir acompanhando o mercado. O script foi feito por diversão e uso pessoal, mas se servir para alguém mais legal. O código:
# -*- coding: utf-8 -*-
# Elton Luís Minetto
import urllib
from xml.dom import minidom
from time import sleep
from os import system
#adicionar as acoes aqui
#formato ACAO: [num_acoes,valor_compra,data_compra]
acoes = {
'BBDC4':[100,34.84,'25/04/2008'],
'PETR4':[100,42.00,'20/04/2008'],
}
def atualiza(acoes):
system('clear')
url = 'http://www.bovespa.com.br/Mercado/RendaVariavel/InfoPregao/ExecutaAcaoAjax.asp?CodigoPapel='
for i in acoes:
url += '|'+i
f = urllib.urlopen(url)
xml = f.read()
xmldoc = minidom.parseString(xml)
papeis = xmldoc.getElementsByTagName('Papel')
#cabecalho
print 'Ação\tValor de Compra\tData da Compra\tQtd\tAtual\tDiferença R$\tDiferença %\tData de Atualização'
total_compra = 0.0
total_dif_reais = 0.0
for i in papeis:
codigo = i.attributes['Codigo'].value
valor_compra = acoes[codigo][1]
qtd_acoes = acoes[codigo][0]
data_compra = acoes[codigo][2]
valor_atual = i.attributes['Ultimo'].value.replace(',','.')
data_atual = i.attributes['Data'].value
diferenca_reais = (float(valor_atual) * qtd_acoes) - (valor_compra * qtd_acoes)
diferenca_perc = (diferenca_reais*100)/(valor_compra * qtd_acoes)
total_compra += valor_compra * qtd_acoes
total_dif_reais += diferenca_reais
print '%s\t%02f\t%s\t%d\t%s\t%02f\t%02f\t%s' % (codigo,valor_compra,data_compra,qtd_acoes,valor_atual,diferenca_reais,diferenca_perc,data_atual)
print 'Total de Compra:%02f' % total_compra
print 'Total da Diferença em Reais:%02f' % total_dif_reais
total_dif_perc = (total_dif_reais * 100)/total_compra
print 'Total da Diferença em Percentual:%02f' % total_dif_perc
sleep(1200)
while 1:
atualiza(acoes)
Eu testei o script no MacOSX Leopard. Mas deve funcionar legal no Linux e no Windows Download do arquivo