Olá pessoal,
Precisei implantar um recurso de cotação de ações em meu ERP, pesquisei bastante sobre o assunto e acabei desenvolvendo uma pequena e muito simples classe que resolveu meu problema! A questão era basicamente acessar o atual valor de um ativo e apresentar em uma tela do sistema.
Envio em anexo a classe caso alguém tenha a mesma necessidade! Basicamente é feito um acesso ao site do Yahoo Finance e feito o download de um arquivo .csv por meio do ACBrDownload. Existem outros sites de onde podem ser baixadas estas informações, porem este do Yahoo me atendeu perfeitamente.
Sei que não é o foco do componente AcBr mas fica ai uma contribuição! No momento não pretendo evoluir na melhoria desta classe, mas já vi algumas possibilidades de melhorar no futura para adicionar alguns recursos interessantes ao ERP...
Abaixo um exemplo de utilização da classe...
procedure TfrmTeste.btnCotacaoClick(Sender: TObject);
var
vAtivo : String;
vCotacao : TCotacao;
begin
vAtivo := InputBox('Cotação', 'Cotação:', 'PETR4.SA');
vCotacao := TCotacao.Create(Self);
try
if vCotacao.BuscaCotacao(vAtivo) then
begin
ShowMessage(
'Ativo: ' + vCotacao.Ativo + #13 +
'Cotacao: ' + FormatFloat('#,##0.00', vCotacao.Cotacao) + #13 +
'Data: ' + vCotacao.Data + #13 +
'Hora: ' + vCotacao.Hora + #13 +
'Variação R$: ' + FormatFloat('#,##0.00', vCotacao.ValorVariacao) + #13 +
//'Variação %: ' + FormatFloat('#,##0.00', vCotacao.PercentualVariacao) + #13 +
'Abertura R$: ' + FormatFloat('#,##0.00', vCotacao.Abertura) + #13 +
'Máxima R$: ' + FormatFloat('#,##0.00', vCotacao.Maxima) + #13 +
'Minima R$: ' + FormatFloat('#,##0.00', vCotacao.Minima) + #13 +
'Volume: ' + FormatFloat('#,##0', vCotacao.Volume));
end;
finally
FreeAndNil(vCotacao);
end;
end;
UCotacao.pas