數據
如何在 Google Finance API 中查詢道瓊斯指數和標準普爾 500 指數的值?
道瓊斯和標準普爾 500 的查詢將導致錯誤:
- http://www.google.com/finance/historical?q=.INX&startdate=May+11%2c+2015&enddate=May+17%2c+2016&output=csv
- http://www.google.com/finance/historical?q=DJIA&startdate=May+11%2c+2015&enddate=May+17%2c+2016&output=csv
雖然對 Apple 的查詢會成功:
這不是您想听到的,但大多數免費網站都存在許可問題,並且顯示的 S&P 和 DJI 下載連結有限或沒有。我建議您改用 quantdl 或 stooq。
以下是一些 stooq 下載連結:
大疆:
https://stooq.com/q/d/l/?s=^dji&i=d
標準普爾:
https://stooq.com/q/d/l/?s=^spx&i=d
但是,您確實需要在使用數據之前對其進行清理。標準普爾的數據一直追溯到 1789 年,而 DJI 可以追溯到 1896 年,所以我什至不知道這是否可能……我不會相信任何網站上 1960 年之前的任何數據。
wsj 網站可讓您下載 DJI 的 csv 數據。如果您稍微玩一下,您可以找出 url 查詢來開始下載。您可以使用 Powershell 使下載程序化(注意:此腳本還使用雅虎財務目前可用的 csv 下載方法訪問股票報價)(注意:雅虎查詢的程式碼記錄在此處:http://www. canbike.org/information-technology/yahoo-finance-url-download-to-a-csv-file.html)
#script follows cls Function Get-LastFriday { $djiDate = [DateTime]::Now while ($djiDate.DayOfWeek -ne "Friday") { $djiDate= [DateTime]::Now.AddDays(-1) } return $djiDate } #prototype: 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