5 votos

¿Cómo se puede hacer una consulta a la API de Google Finance para obtener los valores del Dow Jones y S&P 500?

0 votos

Lo más probable es que tenga algo que ver con la codificación Unicode del "." delante de los dos símbolos.

0 votos

Gracias @Forgottenscience pero DJIA no tiene prefijo ".".

4voto

lilac Puntos 34

Esto no es algo que quieras escuchar, pero la mayoría de los sitios web gratuitos tienen problemas de licencia y muestran enlaces de descarga limitados o inexistentes para S&P y DJI. Te recomiendo que uses quantdl o stooq en su lugar.

Aquí tienes algunos enlaces de descarga de stooq:

DJI:

https://stooq.com/q/d/l/?s=^dji&i=d

S&P:

https://stooq.com/q/d/l/?s=^spx&i=d

Sin embargo, necesitas limpiar los datos antes de usarlos. Los datos de S&P se remontan a 1789 y los de DJI a 1896, así que ni siquiera sé si es posible... No confiaría en ningún dato anterior a 1960 en ningún sitio web.

2voto

Janning Puntos 570

El sitio web de wsj le permite descargar datos csv para DJI. Si juegas un poco, puedes averiguar la consulta de url para iniciar una descarga. Luego, puedes usar Powershell para hacer la descarga programática (nota: este script también accede a comillas de bolsa de yahoo finance utilizando su método de descarga csv actualmente disponible) (Nota: los códigos para la consulta de yahoo están documentados aquí: http://www.canbike.org/information-technology/yahoo-finance-url-download-to-a-csv-file.html)

#script sigue

cls

Function Get-LastFriday
{

    $djiDate = [DateTime]::Now

    while ($djiDate.DayOfWeek -ne "Friday")
    {

        $djiDate= [DateTime]::Now.AddDays(-1)

    }

    return $djiDate
}

#prototipo: quotes.wsj.com/index/DJIA/historical-prices/download?MOD_VIEW=page&num_rows=1&range_days=1&startDate=08/20/2016&endDate=08/20/2016

$djiDate = Get-LastFriday

$startDate = $endDate = ([String]$djiDate.Month) + "/" +  ([String]$djiDate.Day) + "/" + ([String]$djiDate.Year) 
$uri = "quotes.wsj.com/index/DJIA/historical-prices/download?MOD_VIEW=page&num_rows=1&range_"+$startDate+"&endDate="+$endDate

Invoke-WebRequest -Uri $uri -OutFile "C:\Users\xxxx\Desktop\dji.csv"
Import-Csv -Header Date, Open, High, Low, Close -LiteralPath "C:\Users\bill\Desktop\dji.csv" | Out-GridView

Invoke-WebRequest -Uri "http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,VWIAX,VMMXX,VWELX,DODGX&f=nsl1d1t1p&e=.csv" -OutFile "C:\Users\xxxx\Desktop\q.csv"
Import-Csv -Header Name, Symbol, 'Last Trade', 'Trade Date', 'Last Trade Time', p -LiteralPath "C:\Users\bill\Desktop\q.csv" | Out-GridView

2voto

Edward Hughes Puntos 1492

El símbolo para DJIA es ".DJI" (sin las comillas pero con el punto inicial) https://www.google.com/finance/historical?q=.DJI&startdate=Jun+01%2C+2017&output=txt

El símbolo para NASDAQ es ".IXIC" (sin las comillas pero con el punto inicial) https://www.google.com/finance/historical?q=.IXIC&startdate=Jun+01%2C+2017&output=txt

El símbolo para S&P500 es ".INX" (sin las comillas pero con el punto inicial) https://www.google.com/finance/historical?q=.INX&startdate=Jun+01%2C+2017&output=txt

2voto

user52137 Puntos 1

Si haces referencia a estos nombres de índice reales, funciona

INDEXSP:.INX INDEXDJX:.DJI

1voto

Amod Gokhale Puntos 26

Pandas DataReader (biblioteca separada de Pandas) funciona con Yahoo finance (no con google finance).

Instalación: pip install pandas_datareader

Código: Solo tengo que ejecutar lo siguiente para obtener los datos del SPX entre 2010 y 2015 y funciona:

introducir descripción de la imagen aquí

Este enlace aquí tiene una lista actualizada de proveedores de datos admitidos (Yahoo no está allí en este momento, pero el código sigue funcionando como se muestra arriba y devuelve buenos datos).

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X