Bagaimana saya bisa mendapatkan harga saham menggunakan Google Finance API?


119

Saya mencari akses ke data keuangan dari layanan Google.

Saya menemukan URL ini yang mendapatkan data stok untuk Microsoft.

Apa saja kemungkinan parameter yang diizinkan Google untuk jenis permintaan HTTP ini? Saya ingin melihat semua informasi berbeda yang dapat saya peroleh.


36
Bagaimana Anda menemukan URL itu?
timmyc

2
Anda dapat dengan mudah mendapatkan data Google Finance melalui YQL yang sederhana dan berbasis REST. Contohnya dapat ditemukan di sini: jarloo.com/google-finance-and-yql
Kelly

Ini pertanyaan yang bagus, apakah ada jawaban lain yang terbaru?
NickO

1
@ Timmyc- client=igParameter tersebut membuat saya percaya bahwa ini adalah / digunakan untuk widget iGoogle. Hanya tebakan.
dana

Jawaban:


40

Ada API lengkap untuk mengelola portofolio. * Tautan dihapus. Google tidak lagi menyediakan API pengembang untuk ini.

Mendapatkan harga saham sedikit lebih sulit. Saya menemukan satu artikel di mana seseorang mendapatkan harga saham menggunakan Google Spreadsheets.

Anda juga dapat menggunakan gadget tetapi saya rasa bukan itu yang Anda cari.

API yang Anda sebutkan menarik tetapi tampaknya tidak didokumentasikan (sejauh yang saya bisa temukan).

Berikut adalah beberapa informasi tentang harga historis , hanya untuk referensi.


5
Ada API tidak berdokumen dari google yang dapat Anda gunakan untuk mendapatkan info stok lebih mudah karena itu berbasis REST dan tidak memerlukan otentikasi. Berikut adalah contoh C # jarloo.com/google-stock-api
Kelly

24
Catatan: Google Finance API secara resmi tidak digunakan lagi mulai tanggal 26 Mei 2011 dan akan ditutup pada tanggal 20 Oktober 2012.
shawnwall

Jawaban ini sebagian besar di luar topik. Jawaban di bawah ini benar.
Dan Dascalescu

74

1
Ini membawa saya tepat pada apa yang saya cari! Terima kasih.
Grizzly Peak Software

Tetapi saya tidak bisa mendapatkan volume yang diperdagangkan melalui URL ini, Bisakah Anda membantu saya, jika saya membutuhkan detail volume juga
Sashi Kant

@DanDascalesu Terima kasih Dan. Sepertinya baru turun saat aku memeriksanya. Komentar dihapus.
jpgeek

2
Terima kasih, masih relevan hari ini di Sep 2016
CleanBold

5
Saya sedih untuk mengatakan bahwa pada Sept 2017, link tersebut sudah 404ing.
St. John Johnson

17

Saya menemukan situs ini bermanfaat.

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

Itu link ke yahoo API tampaknya menawarkan yang sangat sederhana dan berguna.

Misalnya:

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

Detail lengkapnya di sini:

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


Di yahoo untuk mendapatkannya menggunakan curl curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". Di curl -Ldiperlukan jika tidak maka tidak akan berhasil
arulraj.net

9

Edit: panggilan api telah dihapus oleh google. jadi tidak berfungsi lagi.

Setuju dengan jawaban Pareshkumar. Sekarang ada googlefinance pembungkus python untuk panggilan url.

Instal googlefinance

$pip install googlefinance

Mudah untuk mendapatkan harga saham saat ini:

>>> 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"
  }
]

Keuangan Google adalah sumber yang menyediakan data saham waktu nyata. Ada juga API lain dari yahoo, seperti yahoo-finance , tetapi ditunda hingga 15 menit untuk saham NYSE dan NASDAQ.


bagus waktu nyata, apa yang saya cari!
eusoubrasileiro


3

Membangun di atas bahu para raksasa ... inilah satu baris yang saya tulis untuk memindahkan semua data stok Google saat ini ke dalam variabel shell Bash lokal:

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"

Kemudian Anda akan memiliki variabel seperti $ GF_last $ GF_open $ GF_volume dll yang tersedia. Jalankan env atau lihat di dalam /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.

Jadi untuk stock="FBM" /tmp/stockprice.tmp.log (dan lingkungan Anda) akan berisi:

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

Dapatkah saya menggunakan URL untuk kutipan saham Real Time?
Sashi Kant

Sebagian besar ya. Bandingkan GF_trade_time_utcdengan waktu / tanggal saat ini dan Anda yang menjadi juri.
Marcos

Terima kasih atas jawaban Anda, tetapi di sini volumenya tidak masuk dalam json, apakah ada cara atau URL lain untuk mendapatkan volume yang diperdagangkan?
Sashi Kant


3

Masalah dengan data Yahoo dan Google adalah bahwa data itu melanggar persyaratan layanan jika Anda menggunakannya untuk penggunaan komersial. Ketika situs / aplikasi Anda masih kecil, itu bukan masalah besar, tetapi begitu Anda tumbuh sedikit, Anda mulai berhenti dan berhenti dari bursa. Contoh solusi berlisensi adalah FinancialContent: http://www.financialcontent.com/json.php atau Xignite


2

Berikut ini contoh yang bisa Anda gunakan. Havent sudah mendapatkan Google Finance, tapi Inilah Contoh Yahoo. Anda akan membutuhkan HTMLAgilityPack , yang luar biasa. Selamat Berburu Simbol.

Panggil prosedur dengan menggunakan YahooStockRequest(string Symbols);

Dimana Simbol = string simbol yang dipisahkan koma, atau hanya satu simbol

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

Cara termudah seperti yang telah Anda jelaskan adalah tautan ini untuk 'Dow Jones Industrial Average'

Link 2 untuk 'NASDAQ-100'

dan untuk semua yang terkait dengan NASDAQ link 3

Saya pikir ini harusnya, kalau tidak Anda ingin notasi JSON sama dengan Microsoft

Silakan lihat ini posting lama , saya pikir ini akan membantu,

Memperbarui:

Untuk mengetahui detail volume dan detail lainnya, saya telah membuat vbscript yang menggunakan objek IE untuk mengambil detail dari tautan, dan memberi tahu konten di id tertentu (Buat file .vbs dan jalankan ..

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

ini akan mengingatkan nilai dari halaman seperti ini

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

Saya yakin ini akan membantu ..


Terima kasih banyak atas jawaban Anda. Tetapi saya membutuhkan data realtime di json beserta volume yang diperdagangkan, apakah ada layanan istirahat?
Sashi Kant

1
Silakan lihat ini untuk detail tentang waktu nyata, biasanya tautan ini memberikan data reatime dengan beberapa pengecualian .. google.com/googlefinance/disclaimer/#realtime
MarmiK

Terima kasih sekali lagi bro, Yang ini sangat membantu, tapi tetap bagaimana saya bisa mendapatkan informasi volume?
Sashi Kant

1
Jika Anda mengetahui VBA atau VBS di halaman ( google.com/… ) id elemennya adalah 'market-data-div' yang div berisi 2 div lagi dan div kedua memiliki tabel yang berisi volume <td class="val">759.30M</td>seperti ini. Jika ingin lebih banyak bantuan silahkan posting beberapa kode pekerjaan Anda atau biola akan dilakukan.
MarmiK

Tidak Pak, Saya tidak tahu tentang VBA atau VBS, tetapi akan memeriksanya dengan pasti, Dapatkah Anda memberikan saya URL-nya, yang menghasilkan penawaran harga saham waktu nyata bersama dengan informasi volume?
Sashi Kant


1

Coba dengan ini: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Ini akan mengembalikan Anda semua detail yang tersedia tentang saham yang disebutkan.

misalnya out put akan terlihat seperti di bawah ini:

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

Anda dapat memiliki simbol saham perusahaan Anda di akhir URL ini untuk mendapatkan detailnya:

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

0

Untuk menemukan data grafik menggunakan API data keuangan Google, seseorang harus pergi ke Google seolah-olah mencari istilah pencarian, ketik keuangan ke mesin pencari, dan tautan ke keuangan Google akan muncul. Setelah berada di mesin pencari keuangan Google, ketik nama ticker ke dalam mesin API data keuangan dan hasilnya akan ditampilkan. Namun, perlu dicatat bahwa semua grafik keuangan Google tertunda selama 15 menit, dan paling banyak dapat digunakan untuk pemahaman yang lebih baik tentang sejarah ticker yang lalu, daripada harga saat ini.

Solusi untuk informasi bagan yang tertunda adalah dengan mendapatkan API data keuangan waktu nyata. Contohnya adalah antarmuka barchartondemand yang memiliki informasi kutipan waktu nyata, bersama dengan fitur mendetail lainnya yang mempermudah untuk menemukan bagan yang tepat yang Anda cari. Dengan fitur yang dapat disesuaikan sepenuhnya, dan alat pemrograman khusus untuk informasi perdagangan yang tepat yang Anda butuhkan, alat barchartondemand mengalahkan keuangan Google dengan selisih yang besar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.