Clipper On Line • Ver Tópico - OFF - Baixar cotação de ações
Página 1 de 2

OFF - Baixar cotação de ações

MensagemEnviado: 05 Dez 2007 08:29
por janio
Colegas,

Estou desenvolvendo um sistema para controle de ações em bolsa. Só que o cliente pediu para que o valor da cotação das ações sejam atualizadas automaticamente pela internet.

Alguém sabe onde (em que site) pode ser baixada essas informações em arquivo TXT ou outra forma??

Jânio

MensagemEnviado: 05 Dez 2007 09:10
por Pablo César
Uma idéia seria utilizar a função dLoadFile da WAPI.LIB ou URL2FILE do WAPI.EXE para baixar uma página onde contém a informação da bolsa de valores e ler o arquivo a strings onde contém a informação.

MensagemEnviado: 05 Dez 2007 11:20
por janio
Deve haver uma maneira mais fácil de obter essa informação. Algum lugar na net disponibiliza essa informação, mas onde?? Andei vendo que há muitos programas que fazem isso (atualizar o valor das ações automaticamente), mas não dizem (lógico!) como.

Jânio

MensagemEnviado: 05 Dez 2007 11:52
por sygecom
Não testei, mas ve se ajuda !!!
http://www.fivewin.com.br/exibedicas.asp?id=740

MensagemEnviado: 05 Dez 2007 12:09
por Augusto
Parceiro, não sei se é EXATAMENTE o que vc , ou seu cliente querem entretanto, ter algo que faça um "dowload" das informações para que VC trate no site em questão, acho muito difícil que vc consiga.
Minha idéia é que vc crie uma janela no site e use um "link" para algum site que demonstre a movimentação das bolsas no mundo. Isso tem de monte é só procurar.
De qualquer forma, abaixo tem alguns links com opções de utilitários que tbm são interessantes e podem te ajudar nesse projeto.


http://www.ziggi.com.br/downloads/14719.asp
http://info.abril.com.br/download/728.shtml
http://terrabrasil.softonic.com/seccion/1286/Bolsa

MensagemEnviado: 05 Dez 2007 12:11
por Maligno
janio escreveu:Deve haver uma maneira mais fácil de obter essa informação. Algum lugar na net disponibiliza essa informação, mas onde?? Andei vendo que há muitos programas que fazem isso (atualizar o valor das ações automaticamente), mas não dizem (lógico!) como.

Isso é relativamente fácil. Você precisa encontrar algum lugar na Internet que disponibilize esse tipo de informação. Aí, de posso da linha de comando (link) para obter a informação, utiliza uma função Clipper qualquer (tem na WAPI) pra ler o resultado em HTML. No seu programa você deve abrir esse resultado e procurar pelos dados certos. Dá um pouco de trabalho e é meio chato. Mas é relativamente fácil. Um exemplo disso que postei há algum tempo é a pesquisa de CEP usando um script PHP.

MensagemEnviado: 05 Dez 2007 12:16
por Maligno
Augusto escreveu:Parceiro, não sei se é EXATAMENTE o que vc , ou seu cliente querem entretanto, ter algo que faça um "dowload" das informações para que VC trate no site em questão, acho muito difícil que vc consiga.

Concordo. Acho que a solução será mesmo usar esses dados "emprestados" de algum site. :)

MensagemEnviado: 05 Dez 2007 15:26
por rochinha
Amiguinhos

A Bolsa de valores, ou o site da bolsa deve disponibilizar estas informações, em formato texto, mas se pude me lembrar, o arquivo é repleto de informações deixando qualquer um louco.

Acho também que o arquivo deva ser enviado por email e não possui link direto.

Tais informações ficam disponiveis no Yahoo Finance.

Talvez este documento auxilie no conhecimento do layout do arquivo de cotações Bovespa http://www.bovespa.com.br/pdf/layout_v11.pdf

MensagemEnviado: 05 Dez 2007 16:22
por janio
sygecom escreveu:Não testei, mas ve se ajuda !!!
http://www.fivewin.com.br/exibedicas.asp?id=740


Leonardo,

É exatamente isso que preciso, so que com cotação de AÇÕES e não DOLAR.

Augusto escreveu:...ter algo que faça um "dowload" das informações para que VC trate no site em questão, acho muito difícil que vc consiga


Não quero utilizar uma ferramenta extra-sistema para pegar essas informações. Preciso que tudo fique no meu aplicativo. Pq de outra forma o cliente teria que DIGITAR esses dados, quebrando a logica do que por ele foi requerido.

Maligno escreveu:...Você precisa encontrar algum lugar na Internet que disponibilize esse tipo de informação


Eis o problema: Encontrar esse site!

Maligno escreveu:Acho que a solução será mesmo usar esses dados "emprestados" de algum site
.

É isso mesmo. No exemplo que o Leonardo postou/linkou o sistema busca esses dados, cotação do dolar no caso, num site na net. O problema é que não encontrei ainda um site que dê a cotação das ações na bolsa em FORMATO TEXTO para poder manipulá-lo

Jânio

MensagemEnviado: 05 Dez 2007 16:41
por Maligno
O problema é que não encontrei ainda um site que dê a cotação das ações na bolsa em FORMATO TEXTO para poder manipulá-lo

Eu não me referi a um arquivo texto formatado bonitinho pra facilitar a sua vida. Eu sugeri você encontrar um site onde constam essas informações numa página HTML normal. Você baixa essa página e extrai as informações relevantes. Por isso que eu disse que é coisa chata. Aliás, o exemplo postado faz exatamente isso com o dólar.

MensagemEnviado: 05 Dez 2007 17:24
por sygecom
Tche, Janio simples ...seu cliente já trabalha com esse negocio de Bolsa certo ?
Pede para seu cliente o link que ele acessa para analisar, e pega esse site e faça conforme o exemplo do dolar.

Agora se o seu cliente não sabe, ai vai ter que percorrer nos link do ORACULO

Boa Sorte

MensagemEnviado: 05 Dez 2007 18:58
por Pablo César
janio escreveu:Não quero utilizar uma ferramenta extra-sistema para pegar essas informações. Preciso que tudo fique no meu aplicativo.
Então Jânio, o jeito mesmo é fazer sua propria rotina, você pode se basear no exemplo dado pelo Leonardo e adaptar para Clipper, não vejo problema algum.

Você terá que perguntar ao seu cliente quais são os itens ponderantes que queira obter, isto é se tem alguma empresa específica. Acho que este site ja é um bom início para você procurar:

http://emacao.folha.uol.com.br/

http://emacao.folha.uol.com.br/frame_ap ... spa.com.br

E o jeito é baixar a página pela WAPI e ler a string que acompanha cada valor. Talvez você cadastrando-se na folha possa obter algum suporte.

MensagemEnviado: 05 Dez 2007 18:59
por angeiras
Olá,

Se voce consultar o site do yahoo finance, por exemplo :

http://br.finance.yahoo.com/q?s=RIO

para a cotação da Vale do Rio Doce, voce tem a possibilidade de baixar um arquivo texto ( quotes.csv ).

Agora não sei se é possível automatizar o download desse arquivo.

[]s
Manoel Angeiras

MensagemEnviado: 06 Dez 2007 00:15
por rochinha
Amiguinho Angeiras

Claro que é fácil automatizar:

- Use uma função ou aplicativo que traga/baixe o arquivo
- crie uma tabela com campos aproximadamente compativeis com o .CSV
- faça um APPEND FROM do .CSV já que o mesmo é um arquivo TeXTo.
- Ordene por algum campo de DATA.
- Filtre por algum campo com nome da moeda.

Acho que é isto.

MensagemEnviado: 06 Dez 2007 09:07
por Augusto
Não sei se vc teve a curiosidade de acessar os links que mandei...
Neles vc encontra ferramentas para fazer exatamente o que o Rochinha aconselha...

OFF - Baixar cotação de ações

MensagemEnviado: 30 Jun 2018 15:50
por jiltons
Esse tópico é de 2007.
Caso não tenha achado ainda uma solução, é possível da seguite forma:
1) Utilizando o Google-Drive e uma planilha do google para capturar as cotacoes. Por exemplo a planilha abaixo: https://docs.google.com/spreadsheets/d/ ... sp=sharing
2) gravando um script dentro dessa planilha em Ferramentas->Editor de Scripts para permitir que o google salve automaticamente como um arquivo CSV em determinado periodo de tempo.
Script
function onOpen() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
//var csvMenuEntries = [{name: "export as csv files", functionName: "saveAsCSV"}];
//ss.addMenu("csv", csvMenuEntries);
saveAsCSV();
};

function saveAsCSV() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
// create a folder from the name of the spreadsheet

//var folder = DriveApp.createFolder(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_' + new Date().getTime());
if(checkFolder('exp_cotacoes') == true){
var folder = DriveApp.getFoldersByName('exp_cotacoes').next();
}else{
var folder = DriveApp.createFolder('exp_cotacoes');
}

//Browser.msgBox(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_' + new Date().getTime());

for (var i = 0 ; i < sheets.length ; i++) {
var sheet = sheets[i];
// append ".csv" extension to the sheet name
fileName = sheet.getName() + ".csv";
// convert all available sheet data to csv format
var csvFile = convertRangeToCsvFile_(fileName, sheet);
// create a file in the Docs List with the given name and the csv data
while(checkFile(folder,fileName) == true){
var folder_aux = folder.getFilesByName(fileName);
folder.removeFile(folder.getFilesByName(fileName).next());
}

folder.createFile(fileName, csvFile);

}
//Browser.msgBox('Files are waitig in a folder named ' + folder.getName());

}

function convertRangeToCsvFile_(csvFileName, sheet) {
// get available data range in the spreadsheet
var activeRange = sheet.getDataRange();
try {
var data = activeRange.getValues();
var csvFile = undefined;

// loop through the data in the range and build a string with the csv data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}

// join each row's columns
// add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}

function checkFolder(filename){
var results;
var haBDs = DriveApp.getFoldersByName(filename)
//Does not exist
if(!haBDs.hasNext()){
results = haBDs.hasNext();
}
//Does exist
else{
results = haBDs.hasNext();
}
Logger.log(results)
return results;
}

function checkFile(folder,filename){
var results;
var haBDs = folder.getFilesByName(filename);
//Does not exist
if(!haBDs.hasNext()){
results = haBDs.hasNext();
}
//Does exist
else{
results = haBDs.hasNext();
}
Logger.log(results)
return results;
}

No script acima o arquivo csv sera gravado na pasta do usuario\Google Drive\exp_cotacoes

3) aí basta ler os dados do arquivo CSV e importar para o seu programa.

Terá algo, parecido com isso: