Meu nome é Elton Minetto

pyBovespa

apple codes python ubuntu

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