web-dev-qa-db-fra.com

Comment obtenir des cours boursiers à l'aide de l'API Google Finance?

Je recherche un accès aux données financières des services Google.

J'ai trouvé cette URL qui obtient les données de stock pour Microsoft.

Quels sont tous les paramètres possibles que Google autorise pour ce type de requête HTTP? J'aimerais voir toutes les informations différentes que je pourrais obtenir.

117
Josema

Il y a toute une API pour gérer les portefeuilles. * Lien supprimé. Google ne fournit plus d'API de développeur pour cela.

Obtenir des cotations boursières est un peu plus difficile. J'ai trouvé un article où quelqu'un obtenait des cours boursiers à l'aide de Google Spreadsheets.

Vous pouvez également utiliser le gadgets mais je suppose que ce n'est pas ce que vous recherchez.

L'API que vous mentionnez est intéressante mais ne semble pas être documentée (autant que j'ai pu trouver de toute façon).

Voici quelques informations sur prix historiques , juste pour des raisons de référence.

39
cletus
74
digitalPBK

J'ai trouvé ce site utile.

http://benjisimon.blogspot.com/2009/01/truly-simple-stock-api.html

Il est lié à une API que Yahoo semble offrir est très simple et utile.

Par exemple:

http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL&f=snl1

Détails complets ici:

http://www.gummy-stuff.org/Yahoo-data.htm

17
fratrik

Edit: l'appel de l'API a été supprimé par Google. donc il ne fonctionne plus.

D'accord avec la réponse de Pareshkumar. Il existe maintenant un python _ wrapper googlefinance pour l'appel url.

Installer googlefinance

$pip install googlefinance

Il est facile d'obtenir le cours actuel des actions:

>>> from googlefinance import getQuotes
>>> import json
>>> print json.dumps(getQuotes('AAPL'), indent=2)
[
  {
    "Index": "NASDAQ", 
    "LastTradeWithCurrency": "129.09", 
    "LastTradeDateTime": "2015-03-02T16:04:29Z", 
    "LastTradePrice": "129.09", 
    "Yield": "1.46", 
    "LastTradeTime": "4:04PM EST", 
    "LastTradeDateTimeLong": "Mar 2, 4:04PM EST", 
    "Dividend": "0.47", 
    "StockSymbol": "AAPL", 
    "ID": "22144"
  }
]

Google Finance est une source qui fournit des données sur les stocks en temps réel. Il existe également d’autres API de Yahoo, telles que yahoo-finance , mais elles sont retardées de 15 minutes pour les actions de NYSE et de NASDAQ.

9
hongtao

Construit sur les épaules de géants, voici une liste récapitulative que j'ai écrite pour zapper toutes les données boursières actuelles de Google dans des variables locales de Bash Shell:

stock=$1 

# Fetch from Google Finance API, put into local variables
eval $(curl -s "http://www.google.com/ig/api?stock=$stock"|sed 's/</\n</g' |sed '/data=/!d; s/ data=/=/g; s/\/>/; /g; s/</GF_/g' |tee /tmp/stockprice.tmp.log)

echo "$stock,$(date +%Y-%m-%d),$GF_open,$GF_high,$GF_low,$GF_last,$GF_volume"

Ensuite, vous aurez des variables comme $ GF_last $ GF_open $ GF_volume etc. facilement disponibles. Exécutez env ou consultez à l'intérieur /tmp/stockprice.tmp.log

http://www.google.com/ig/api?stock=TVIX&output=csv by itself returns:

<?xml version="1.0"?>
<xml_api_reply version="1">
<finance module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" >
<symbol data="TVIX"/>
<pretty_symbol data="TVIX"/>
<symbol_lookup_url data="/finance?client=ig&amp;q=TVIX"/>
<company data="VelocityShares Daily 2x VIX Short Term ETN"/>
<exchange data="AMEX"/>
<exchange_timezone data="ET"/>
<exchange_utc_offset data="+05:00"/>
<exchange_closing data="960"/>
<divisor data="2"/>
<currency data="USD"/>
<last data="57.45"/>
<high data="59.70"/>
<low data="56.85"/>

etc.

Donc pour stock="FBM"/ tmp/stockprice.tmp.log (et votre environnement) contiendra:

GF_symbol="FBM"; 
GF_pretty_symbol="FBM"; 
GF_symbol_lookup_url="/finance?client=ig&amp;q=FBM"; 
GF_company="Focus Morningstar Basic Materials Index ETF"; 
GF_exchange="NYSEARCA"; 
GF_exchange_timezone=""; 
GF_exchange_utc_offset=""; 
GF_exchange_closing=""; 
GF_divisor="2"; 
GF_currency="USD"; 
GF_last="22.82"; 
GF_high="22.82"; 
GF_low="22.82"; 
GF_volume="100"; 
GF_avg_volume=""; 
GF_market_cap="4.56"; 
GF_open="22.82"; 
GF_y_close="22.80"; 
GF_change="+0.02"; 
GF_perc_change="0.09"; 
GF_delay="0"; 
GF_trade_timestamp="8 hours ago"; 
GF_trade_date_utc="20120228"; 
GF_trade_time_utc="184541"; 
GF_current_date_utc="20120229"; 
GF_current_time_utc="033534"; 
GF_symbol_url="/finance?client=ig&amp;q=FBM"; 
GF_chart_url="/finance/chart?q=NYSEARCA:FBM&amp;tlf=12"; 
GF_disclaimer_url="/help/stock_disclaimer.html"; 
GF_ecn_url=""; 
GF_isld_last=""; 
GF_isld_trade_date_utc=""; 
GF_isld_trade_time_utc=""; 
GF_brut_last=""; 
GF_brut_trade_date_utc=""; 
GF_brut_trade_time_utc=""; 
GF_daylight_savings="false"; 
3
Marcos

Ce n'est plus une API active pour Google, vous pouvez essayer Xignite, bien qu'ils facturent: http://www.xignite.com

3

Peut-être d’intérêt, la documentation de l’API Google Finance comprend ne section expliquant comment accéder à différents paramètres via JavaScript .

Je suppose que l’API JavaScript est peut-être un encapsuleur de la requête JSON que vous avez mentionnée ci-dessus ... vous pourriez peut-être vérifier quelles requêtes HTTP sont envoyées.

3
Philipp Lenssen

Le problème des données Yahoo et Google est qu’elles violent les conditions de service si vous les utilisez à des fins commerciales. Lorsque votre site/application est encore petit, ce n'est pas grave, mais dès que vous grandissez un peu, vous commencez à vous arrêter et à vous désister des échanges. Un exemple de solution sous licence est FinancialContent: http://www.financialcontent.com/json.php ou Xignite

3
Bart

Voici un exemple que vous pouvez utiliser. Havent a encore Google Finance, mais voici l'exemple de Yahoo. Vous aurez besoin du HTMLAgilityPack , ce qui est génial. Heureux symbole chasse.

Appelez la procédure en utilisant YahooStockRequest(string Symbols);

Où symboles = une chaîne de symboles délimitée par des virgules ou un seul symbole

public string YahooStockRequest(string Symbols,bool UseYahoo=true)
        {
            {
                string StockQuoteUrl = string.Empty;

                try
                {
                    // Use Yahoo finance service to download stock data from Yahoo
                    if (UseYahoo)
                    {
                        string YahooSymbolString = Symbols.Replace(",","+");
                        StockQuoteUrl = @"http://finance.yahoo.com/q?s=" + YahooSymbolString + "&ql=1";
                    }
                    else
                    {
                        //Going to Put Google Finance here when I Figure it out.
                    }

                    // Initialize a new WebRequest.
                    HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(StockQuoteUrl);
                    // Get the response from the Internet resource.
                    HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();
                    // Read the body of the response from the server.

                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    string pageSource;
                    using (StreamReader sr = new StreamReader(webresp.GetResponseStream()))
                    {
                        pageSource = sr.ReadToEnd();
                    }
                    doc.LoadHtml(pageSource.ToString());
                    if (UseYahoo)
                    {
                        string Results=string.Empty;
                        //loop through each Symbol that you provided with a "," delimiter
                        foreach (string SplitSymbol in Symbols.Split(new char[] { ',' }))
                        {
                            Results+=SplitSymbol + " : " + doc.GetElementbyId("yfs_l10_" + SplitSymbol).InnerText + Environment.NewLine;
                        }
                        return (Results);
                    }
                    else
                    {
                        return (doc.GetElementbyId("ref_14135_l").InnerText);
                    }

                }
                catch (WebException Webex)
                {
                    return("SYSTEM ERROR DOWNLOADING SYMBOL: " + Webex.ToString());

                }

            }
        }
2
Patrick

Le moyen le plus simple, comme vous l'avez expliqué, est le suivant lien il s'agit du 'Dow Jones Industrial Average'

Lien 2 est pour 'NASDAQ-100'

et pour tout ce qui concerne NASDAQ link

Je pense que cela devrait être le cas, sinon vous voulez les mêmes dans les notations JSON les mêmes que Microsoft

S'il vous plaît se référer à cette ancien post Je pense que cela aidera,

Mise à jour:

Pour connaître les détails du volume et d’autres détails, j’ai créé un vbscript utilisant l’objet IE pour extraire les détails du lien et alertant le contenu de cet identifiant particulier (créez un fichier .vbs et exécutez-le. ..

Set IE = CreateObject("InternetExplorer.Application")
while IE.readyState = 4: WScript.Sleep 10: wend
IE.Navigate "https://www.google.com/finance?q=INDEXNASDAQ%3ANDX&sq=NASDAQ&sp=2&ei=B3UoUsiIH5DIlgPEsQE"
IE.visible = true
while IE.readyState = 4: WScript.Sleep 10: wend
dim ht
ht= IE.document.getElementById("market-data-div").innerText
msgBox ht
IE.quit

cela va alerter les valeurs de la page comme celle-ci

3,124.54 0.00 (0.00%)
Sep 4 - Close
INDEXNASDAQ real-time data - Disclaimer
Range       -
52 week 2,494.38 - 3,149.24
Open        -
Vol.    0.00

Je suis sûr que cela aidera ..

2
MarmiK

L'API de cotation en bourse de Google a disparu. Toutefois, Exchange de l'investisseur offre une API , très facile à utiliser pour les données de devis.

1
J. Peterson

Essayez avec ceci: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Il vous renverra tous les détails disponibles sur le stock mentionné.

par exemple. out mis ressemblerait à ce qui suit:

// [ {
"id": "694653"
,"t" : "GOOGL"
,"e" : "NASDAQ"
,"l" : "528.08"
,"l_fix" : "528.08"
,"l_cur" : "528.08"
,"s": "0"
,"ltt":"4:00PM EST"
,"lt" : "Dec 5, 4:00PM EST"
,"lt_dts" : "2014-12-05T16:00:14Z"
,"c" : "-14.50"
,"c_fix" : "-14.50"
,"cp" : "-2.67"
,"cp_fix" : "-2.67"
,"ccol" : "chr"
,"pcls_fix" : "542.58"
}
]

Vous pouvez avoir le symbole de votre société à la fin de cette URL pour obtenir ses détails:

http://finance.google.com/finance/info?client=ig&q=<YOUR COMPANY STOCK SYMBOL>
1
OverrockSTAR

Pour rechercher des données cartographiques à l’aide de l’API de données financières de Google, il suffit d’aller sur Google comme si vous recherchiez un terme de recherche, tapez finance dans le moteur de recherche et un lien vers Google finance apparaîtra. Une fois sur le moteur de recherche Google Finance, saisissez le nom du ticker dans le moteur de l'API de données financières et le résultat sera affiché. Toutefois, il convient de noter que tous les graphiques de Google Finance sont retardés de 15 minutes et peuvent tout au plus être utilisés pour une meilleure compréhension de l'historique du ticker, plutôt que du prix actuel.

Une solution aux informations de graphique en différé consiste à obtenir une API de données financières en temps réel. Par exemple, l'interface barchartondemand qui contient des informations de devis en temps réel, ainsi que d'autres fonctionnalités détaillées facilitant la recherche du graphique exact que vous recherchez. Avec des fonctionnalités entièrement personnalisables et des outils de programmation spécifiques pour les informations de trading précises dont vous avez besoin, les outils de barchartondemand surpassent largement Google Finance.

0
Chris