Jump to content

Classe para cotação de ações


  • Este tópico foi criado há 3677 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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

Link to comment
Share on other sites

  • Este tópico foi criado há 3677 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.