Télécharger les cotations sur Yahoo Finance

Attention ! l’API Yahoo Finance n’est pas officielle et peut évoluer ou s’interrompre sans préavis.

Ci dessous un petit code javascript pour télécharger les cours quotidiens :

async function getQuotesHistory(ticker) {

  //plages de données disponibles :["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]
  url = `https://query1.finance.yahoo.com/v8/finance/chart/${ticker}?range=1mo&interval=1d&includePrePost=true&events=div%7Csplit%7Cearn&corsDomain=finance.yahoo.com`;

  // Récupère les données à partir de l'API Yahoo finance
  try{
    response = await fetch(url);
  }catch (err){
    console.log(`fetch ko :  ${ticker}`);
  }
  try {
    data = await response.json();
    // extraction des données
    const open = data.chart.result[0].indicators.quote[0].open;
    const high = data.chart.result[0].indicators.quote[0].high;
    const low = data.chart.result[0].indicators.quote[0].low;
    const close = data.chart.result[0].indicators.quote[0].close;
    const volume = data.chart.result[0].indicators.quote[0].volume;
    const dates = data.chart.result[0].timestamp.map((ts) => new Date(ts * 1000).toLocaleDateString('en-ZA'));

    // Boucle pour parser les données de chaque jour et les loguer dans la console 
    for (let i = 0; i < open.length; i++) {
      console.log(`${ticker};${dates[i]};${open[i]};${high[i]};${low[i]};${close[i]};${volume[i]}`);
    }
  } catch(err){
    console.log(`erreur :  ${ticker}`);
    console.log(err.message);
  }
}

getQuotesHistory('^GSPC'); //cours de l'indice SP500
getQuotesHistory('AAPL');  //cours de l'action Apple
getQuotesHistory('ajouter ici votre ticker');

code d’appel dans le terminal pour générer un fichier .csv :

node yfinance.js > c:\temp\cotations.csv

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *