java isin - Wie kann ich Aktienkurse mit Google Finance API abrufen?




xetra excel (12)

Ich suche nach Zugriff auf Finanzdaten von Google-Diensten.

Ich habe diese URL gefunden , die die Bestandsdaten für Microsoft enthält.

Was sind all die möglichen Parameter, die Google für diese Art von HTTP-Anfrage zulässt? Ich würde gerne die verschiedenen Informationen sehen, die ich bekommen könnte.


Answers

Aufbauend auf den Schultern von Riesen ... hier ist ein One-Liner, den ich geschrieben habe, um alle aktuellen Bestandsdaten von Google in lokale Bash-Shell-Variablen zu zappen:

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"

Dann haben Sie Variablen wie $ GF_last $ GF_open $ GF_volume etc. zur Verfügung. Führen Sie env aus oder sehen Sie sich die Datei /tmp/stockprice.tmp.log an

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.

Also für stock="FBM" /tmp/stockprice.tmp.log (und Ihre Umgebung) wird enthalten:

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"; 

Dies ist nicht mehr eine aktive API für Google, Sie können Xignite versuchen, obwohl sie berechnen: http://www.xignite.com



Es gibt eine ganze API zum Verwalten von Portfolios. * Link entfernt. Google stellt hierfür keine Entwickler-API mehr zur Verfügung.

Börsenkurse zu bekommen ist ein bisschen schwieriger. Ich habe einen Artikel gefunden, in dem jemand Aktienkurse mit Google Spreadsheets erhalten hat.

Sie können auch die gadgets aber das ist nicht das, wonach Sie suchen.

Die API, die du erwähnst, ist interessant, aber scheint nicht dokumentiert zu sein (soweit ich es schon gefunden habe).

Hier finden Sie einige Informationen zu historischen Preisen , nur um es zu verdeutlichen.


Versuchen Sie http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL : http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Es gibt Ihnen alle verfügbaren Details über den genannten Bestand zurück.

zB output würde wie folgt aussehen:

// [ {
"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"
}
]

Sie können Ihr Firmenaktiensymbol am Ende dieser URL anzeigen lassen, um die Details zu erhalten:

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

Um Chart-Daten mit der Finanzdaten-API von Google zu finden, muss man einfach zu Google gehen, als suche man nach einem Suchbegriff, tippt Finanzen in die Suchmaschine ein und es erscheint ein Link zu Google Finanzen. Geben Sie in der Google Finanzen-Suchmaschine den Tickernamen in die Financial Data-API-Engine ein und das Ergebnis wird angezeigt. Es sollte jedoch beachtet werden, dass alle Google-Finanzdiagramme um 15 Minuten verzögert werden und höchstens für ein besseres Verständnis der Vergangenheitsgeschichte des Tickers statt des aktuellen Preises verwendet werden können.

Eine Lösung für die verzögerte Karteninformation besteht darin, eine Echtzeit-Finanzdaten-API zu erhalten. Ein Beispiel für eine wäre die Barchardondemand-Schnittstelle, die Echtzeit-Kursinformationen zusammen mit anderen detaillierten Funktionen bietet, die es einfacher machen, das genaue Diagramm zu finden, nach dem Sie suchen. Mit vollständig anpassbaren Funktionen und spezifischen Programmiertools für die genauen Handelsinformationen, die Sie benötigen, übertreffen die Tools von barchartondemand Google finance mit großem Abstand.


Hier ist ein Beispiel, das Sie verwenden können. Havent hat Google Finance noch, aber hier ist das Yahoo Beispiel. Sie benötigen das HTMLAgilityPack , das ist großartig. Glückliche Symboljagd.

Rufen Sie die Prozedur auf, indem Sie YahooStockRequest(string Symbols);

Wobei Symbole = eine durch Kommas getrennte Zeichenfolge oder nur ein Symbol

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());

                }

            }
        }




Das Problem mit Yahoo- und Google-Daten ist, dass es gegen die Nutzungsbedingungen verstößt, wenn Sie es für kommerzielle Zwecke verwenden. Wenn deine Seite / App noch klein ist, ist es nicht schlimm, aber sobald du ein bisschen größer wirst, fängst du an, von den Austauschen Abstand zu nehmen. Ein lizenziertes Lösungsbeispiel ist FinancialContent: http://www.financialcontent.com/json.php oder Xignite


Ein einfacher Weg wäre die Verwendung eines PHP-Frameworks wie CodeIgniter oder Laravel das über integrierte Funktionen wie Filterung und Active-Record verfügt, sodass Sie sich nicht um diese Nuancen kümmern müssen.







java php javascript google-api google-finance