vantage finances api google-api google-finance quandl

api - finances - alpha vantage



Alternativa a Google Finance Api (5)

Quería usar la API de Google Finance para obtener datos sobre la compañía, pero esta API está en desuso desde el 26 de junio de 2011

¿Qué utiliza como API gratuita para obtener datos de stock en tiempo real?


Actualizando respuesta un poco

1. Prueba Here

Para principiantes, puede intentar obtener una salida JSON de la consulta, como

https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo

NO intente Yahoo Finance API (está DEPRICADO o NO ESTÁ DISPONIBLE AHORA).

Para los principiantes, puede generar un CSV con una simple llamada a la API:

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

(Esto generará y guardará un CSV para AAPL, GOOG y MSFT)

Tenga en cuenta que debe agregar el formato a la cadena de consulta ( f=.. ). Para una visión general de todos los formatos vea esta página .

Para más ejemplos, visite esta página .

Para datos basados ​​en XML y JSON , puede hacer lo siguiente:

No use YQL (Yahoo Query Language) **

Por ejemplo:

http://developer.yahoo.com/yql/console/?q=select%20*%20from%20yahoo.finance .quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22 MSFT%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env

2. Utilizar el servicio web.

Por ejemplo, para obtener todas las cotizaciones de acciones en XML :

http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote

Para obtener todas las cotizaciones de acciones en JSON , simplemente agregue format=JSON al final de la URL:

http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json

Alternativas:

1. 1Forge APIs financieras

  • Las tarifas en tiempo real para unos 40 pares de divisas están disponibles here .

2. API de contenido financiero

3. Abrir los tipos de cambio

4. API de Oanda

5. API de XE

6. API de Xignite

7. currencylayer API

8. Otra API discutida en programmableWeb


Seguí la respuesta principal y comencé a buscar en Yahoo Finance. Se puede acceder a su API de diferentes maneras, pero encontré una buena referencia para obtener información sobre acciones como CSV aquí: http://www.jarloo.com/

Usando eso escribí este guión. No soy realmente un tipo rubí, pero esto podría ayudarte a hackear algo juntos. Todavía no he encontrado nombres de variables para todos los campos que yahoo ofrece, así que puedes completarlos si los necesitas.

Aquí está el uso

TICKERS_SP500 = "GICS,CIK,MMM,ABT,ABBV,ACN,ACE,ACT,ADBE,ADT,AES,AET,AFL,AMG,A,GAS,APD,ARG,AKAM,AA,ALXN,ATI,ALLE,ADS,ALL,ALTR,MO,AMZN,AEE,AAL,AEP,AXP,AIG,AMT,AMP,ABC,AME,AMGN,APH,APC,ADI,AON,APA,AIV,AAPL,AMAT,ADM,AIZ,T,ADSK,ADP,AN,AZO,AVGO,AVB,AVY,BHI,BLL,BAC,BK,BCR,BAX,BBT,BDX,BBBY,BBY,BIIB,BLK,HRB,BA,BWA,BXP,BSX,BMY,BRCM,BFB,CHRW,CA,CVC,COG,CAM,CPB,COF,CAH,HSIC,KMX,CCL,CAT,CBG,CBS,CELG,CNP,CTL,CERN,CF,SCHW,CHK,CVX,CMG,CB,CI,XEC,CINF,CTAS,CSCO,C,CTXS,CLX,CME,CMS,COH,KO,CCE,CTSH,CL,CMA,CSC,CAG,COP,CNX,ED,STZ,GLW,COST,CCI,CSX,CMI,CVS,DHI,DHR,DRI,DVA,DE,DLPH,DAL,XRAY,DVN,DO,DTV,DFS,DG,DLTR,D,DOV,DOW,DPS,DTE,DD,DUK,DNB,ETFC,EMN,ETN,EBAY,ECL,EIX,EW,EA,EMC,EMR,ENDP,ESV,ETR,EOG,EQT,EFX,EQIX,EQR,ESS,EL,ES,EXC,EXPE,EXPD,ESRX,XOM,FFIV,FB,FDO,FAST,FDX,FIS,FITB,FSLR,FE,FISV,FLIR,FLS,FLR,FMC,FTI,F,FOSL,BEN,FCX,FTR,GME,GCI,GPS,GRMN,GD,GE,GGP,GIS,GM,GPC,GNW,GILD,GS,GT,GOOG,GWW,HAL,HBI,HOG,HAR,HRS,HIG,HAS,HCA,HCP,HCN,HP,HES,HPQ,HD,HON,HRL,HSP,HST,HCBK,HUM,HBAN,ITW,IR,TEG,INTC,ICE,IBM,IP,IPG,IFF,INTU,ISRG,IVZ,IRM,JEC,JNJ,JCI,JOY,JPM,JNPR,KSU,K,KEY,GMCR,KMB,KIM,KMI,KLAC,KSS,KRFT,KR,LB,LLL,LH,LRCX,LM,LEG,LEN,LVLT,LUK,LLY,LNC,LLTC,LMT,L,LO,LOW,LYB,MTB,MAC,M,MNK,MRO,MPC,MAR,MMC,MLM,MAS,MA,MAT,MKC,MCD,MHFI,MCK,MJN,MWV,MDT,MRK,MET,KORS,MCHP,MU,MSFT,MHK,TAP,MDLZ,MON,MNST,MCO,MS,MOS,MSI,MUR,MYL,NDAQ,NOV,NAVI,NTAP,NFLX,NWL,NFX,NEM,NWSA,NEE,NLSN,NKE,NI,NE,NBL,JWN,NSC,NTRS,NOC,NRG,NUE,NVDA,ORLY,OXY,OMC,OKE,ORCL,OI,PCAR,PLL,PH,PDCO,PAYX,PNR,PBCT,POM,PEP,PKI,PRGO,PFE,PCG,PM,PSX,PNW,PXD,PBI,PCL,PNC,RL,PPG,PPL,PX,PCP,PCLN,PFG,PG,PGR,PLD,PRU,PEG,PSA,PHM,PVH,QEP,PWR,QCOM,DGX,RRC,RTN,RHT,REGN,RF,RSG,RAI,RHI,ROK,COL,ROP,ROST,RCL,R,CRM,SNDK,SCG,SLB,SNI,STX,SEE,SRE,SHW,SIAL,SPG,SWKS,SLG,SJM,SNA,SO,LUV,SWN,SE,STJ,SWK,SPLS,SBUX,HOT,STT,SRCL,SYK,STI,SYMC,SYY,TROW,TGT,TEL,TE,THC,TDC,TSO,TXN,TXT,HSY,TRV,TMO,TIF,TWX,TWC,TJX,TMK,TSS,TSCO,RIG,TRIP,FOXA,TSN,TYC,USB,UA,UNP,UNH,UPS,URI,UTX,UHS,UNM,URBN,VFC,VLO,VAR,VTR,VRSN,VZ,VRTX,VIAB,V,VNO,VMC,WMT,WBA,DIS,WM,WAT,ANTM,WFC,WDC,WU,WY,WHR,WFM,WMB,WIN,WEC,WYN,WYNN,XEL,XRX,XLNX,XL,XYL,YHOO,YUM,ZMH,ZION,ZTS,SAIC,AP" AllData = loadStockInfo(TICKERS_SP500, allParameters()) SpecificData = loadStockInfo("GOOG,CIK", "ask,dps")

loadStockInfo devuelve un hash, de modo que SpecificData ["GOOG"] ["name"] es "Google Inc."

Por último, el código real para ejecutar que ...

require ''net/http'' # Jack Franzen & Garin Bedian # Based on http://www.jarloo.com/yahoo_finance/ $parametersData = Hash[[ ["symbol", ["s", "Symbol"]], ["ask", ["a", "Ask"]], ["divYield", ["y", "Dividend Yield"]], ["bid", ["b", "Bid"]], ["dps", ["d", "Dividend per Share"]], #["noname", ["b2", "Ask (Realtime)"]], #["noname", ["r1", "Dividend Pay Date"]], #["noname", ["b3", "Bid (Realtime)"]], #["noname", ["q", "Ex-Dividend Date"]], #["noname", ["p", "Previous Close"]], #["noname", ["o", "Open"]], #["noname", ["c1", "Change"]], #["noname", ["d1", "Last Trade Date"]], #["noname", ["c", "Change & Percent Change"]], #["noname", ["d2", "Trade Date"]], #["noname", ["c6", "Change (Realtime)"]], #["noname", ["t1", "Last Trade Time"]], #["noname", ["k2", "Change Percent (Realtime)"]], #["noname", ["p2", "Change in Percent"]], #["noname", ["c8", "After Hours Change (Realtime)"]], #["noname", ["m5", "Change From 200 Day Moving Average"]], #["noname", ["c3", "Commission"]], #["noname", ["m6", "Percent Change From 200 Day Moving Average"]], #["noname", ["g", "Day’s Low"]], #["noname", ["m7", "Change From 50 Day Moving Average"]], #["noname", ["h", "Day’s High"]], #["noname", ["m8", "Percent Change From 50 Day Moving Average"]], #["noname", ["k1", "Last Trade (Realtime) With Time"]], #["noname", ["m3", "50 Day Moving Average"]], #["noname", ["l", "Last Trade (With Time)"]], #["noname", ["m4", "200 Day Moving Average"]], #["noname", ["l1", "Last Trade (Price Only)"]], #["noname", ["t8", "1 yr Target Price"]], #["noname", ["w1", "Day’s Value Change"]], #["noname", ["g1", "Holdings Gain Percent"]], #["noname", ["w4", "Day’s Value Change (Realtime)"]], #["noname", ["g3", "Annualized Gain"]], #["noname", ["p1", "Price Paid"]], #["noname", ["g4", "Holdings Gain"]], #["noname", ["m", "Day’s Range"]], #["noname", ["g5", "Holdings Gain Percent (Realtime)"]], #["noname", ["m2", "Day’s Range (Realtime)"]], #["noname", ["g6", "Holdings Gain (Realtime)"]], #["noname", ["k", "52 Week High"]], #["noname", ["v", "More Info"]], #["noname", ["j", "52 week Low"]], #["noname", ["j1", "Market Capitalization"]], #["noname", ["j5", "Change From 52 Week Low"]], #["noname", ["j3", "Market Cap (Realtime)"]], #["noname", ["k4", "Change From 52 week High"]], #["noname", ["f6", "Float Shares"]], #["noname", ["j6", "Percent Change From 52 week Low"]], ["name", ["n", "Company Name"]], #["noname", ["k5", "Percent Change From 52 week High"]], #["noname", ["n4", "Notes"]], #["noname", ["w", "52 week Range"]], #["noname", ["s1", "Shares Owned"]], #["noname", ["x", "Stock Exchange"]], #["noname", ["j2", "Shares Outstanding"]], #["noname", ["v", "Volume"]], #["noname", ["a5", "Ask Size"]], #["noname", ["b6", "Bid Size"]], #["noname", ["k3", "Last Trade Size"]], #["noname", ["t7", "Ticker Trend"]], #["noname", ["a2", "Average Daily Volume"]], #["noname", ["t6", "Trade Links"]], #["noname", ["i5", "Order Book (Realtime)"]], #["noname", ["l2", "High Limit"]], #["noname", ["e", "Earnings per Share"]], #["noname", ["l3", "Low Limit"]], #["noname", ["e7", "EPS Estimate Current Year"]], #["noname", ["v1", "Holdings Value"]], #["noname", ["e8", "EPS Estimate Next Year"]], #["noname", ["v7", "Holdings Value (Realtime)"]], #["noname", ["e9", "EPS Estimate Next Quarter"]], #["noname", ["s6", "evenue"]], #["noname", ["b4", "Book Value"]], #["noname", ["j4", "EBITDA"]], #["noname", ["p5", "Price / Sales"]], #["noname", ["p6", "Price / Book"]], #["noname", ["r", "P/E Ratio"]], #["noname", ["r2", "P/E Ratio (Realtime)"]], #["noname", ["r5", "PEG Ratio"]], #["noname", ["r6", "Price / EPS Estimate Current Year"]], #["noname", ["r7", "Price / EPS Estimate Next Year"]], #["noname", ["s7", "Short Ratio"] ]] def replaceCommas(data) s = "" inQuote = false data.split("").each do |a| if a==''"'' inQuote = !inQuote s += ''"'' elsif !inQuote && a == "," s += "#" else s += a end end return s end def allParameters() s = "" $parametersData.keys.each do |i| s = s + i + "," end return s end def prepareParameters(parametersText) pt = parametersText.split(",") if !pt.include? ''symbol''; pt.push("symbol"); end; if !pt.include? ''name''; pt.push("name"); end; p = [] pt.each do |i| p.push([i, $parametersData[i][0]]) end return p end def prepareURL(tickers, parameters) urlParameters = "" parameters.each do |i| urlParameters += i[1] end s = "http://download.finance.yahoo.com/d/quotes.csv?" s = s + "s=" + tickers + "&" s = s + "f=" + urlParameters return URI(s) end def loadStockInfo(tickers, parametersRaw) parameters = prepareParameters(parametersRaw) url = prepareURL(tickers, parameters) data = Net::HTTP.get(url) data = replaceCommas(data) h = CSVtoObject(data, parameters) logStockObjects(h, true) end #parse csv def printCodes(substring, length) a = data.index(substring) b = data.byteslice(a, 10) puts "printing codes of string: " puts b puts b.split('''').map(&:ord).to_s end def CSVtoObject(data, parameters) rawData = [] lineBreaks = data.split(10.chr) lineBreaks.each_index do |i| rawData.push(lineBreaks[i].split("#")) end #puts "Found " + rawData.length.to_s + " Stocks" #puts " w/ " + rawData[0].length.to_s + " Fields" h = Hash.new("MainHash") rawData.each_index do |i| o = Hash.new("StockObject"+i.to_s) #puts "parsing object" + rawData[i][0] rawData[i].each_index do |n| #puts "parsing parameter" + n.to_s + " " +parameters[n][0] o[ parameters[n][0] ] = rawData[i][n].gsub!(/^/"|/"?$/, '''') end h[o["symbol"]] = o; end return h end def logStockObjects(h, concise) h.keys.each do |i| if concise puts "(" + h[i]["symbol"] + ")/t/t" + h[i]["name"] else puts "" puts h[i]["name"] h[i].keys.each do |p| puts " " + $parametersData[p][1] + " : " + h[i][p].to_s end end end end


Si aún está buscando utilizar Google Finance para sus datos, puede verificar esto.

Hace poco necesité probar si los datos de SGX son realmente recuperables a través de Google Finance (y, por supuesto, tuve el mismo problema que usted)


Yo sugeriría usar la API de desarrollador de TradeKing . Es muy bueno y de uso gratuito. Todo lo que se requiere es que tenga una cuenta con ellos y que yo sepa, no tiene que llevar un saldo ... solo para registrarse.