Yahoo股市API
API 地址
https://query1.finance.yahoo.com/v8/finance/chart/<股票名>?metrics=<價格形式>[,<價格形式>]*&interval=<單位區間>&range=<索取期間>
註:[...]*表可重複0次以上
參數
- 股票名,格式如:
- 美國股票代號
- 「臺灣股票代號」.TW,例0050.TW
- 價格形式,以下為舉例:
- Date 日期
- High 最高價
- Low 最低價
- Open 開盤價
- Close 收盤價
- Volume 成交量
- 單位區間:一筆資料的單位,格式為「數字+時間單位」,時間單位如:
- m:分
- h:小時
- d:日
- wk:週
- mo:月
- 索取範圍:
- 資料蒐羅的時間範圍(比如近3月等等),格式如上。
- ytd:年初迄今
- max:最大值
案例
用 curl 索取臺股臺積電(2330)的近3日資料,存到a.txt:
curl "https://query1.finance.yahoo.com/v8/finance/chart/2330.TW?metrics=Date,High,Low,Open,Close,Volume&interval=1d&range=3d" > a.txt
輸出結果:
{"chart":{"result":[{"meta":{"currency":"TWD","symbol":"2330.TW","exchangeName":"TAI","instrumentType":"EQUITY","firstTradeDate":946947600,"regularMarketTime":1688707805,"gmtoffset":28800,"timezone":"CST","exchangeTimezoneName":"Asia/Taipei","regularMarketPrice":565.0,"chartPreviousClose":582.0,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"CST","start":1688691600,"end":1688691600,"gmtoffset":28800},"regular":{"timezone":"CST","start":1688691600,"end":1688707800,"gmtoffset":28800},"post":{"timezone":"CST","start":1688707800,"end":1688707800,"gmtoffset":28800}},"dataGranularity":"1d","range":"3d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1688518800,1688605200,1688691600],"indicators":{"quote":[{"low":[579.0,565.0,563.0],"close":[582.0,565.0,565.0],"open":[589.0,573.0,565.0],"high":[589.0,574.0,572.0],"volume":[14913592,28564891,18796190]}],"adjclose":[{"adjclose":[582.0,565.0,565.0]}]}}],"error":null}}
我們需要排整齊,以利閱讀,使用 js-beautify排齊,輸出到a_tidy.txt:
js-beautify a.txt > a_tidy.txt
結果:
{ "chart": { "result": [{ "meta": { "currency": "TWD", "symbol": "2330.TW", "exchangeName": "TAI", "instrumentType": "EQUITY", "firstTradeDate": 946947600, "regularMarketTime": 1688707805, "gmtoffset": 28800, "timezone": "CST", "exchangeTimezoneName": "Asia/Taipei", "regularMarketPrice": 565.0, "chartPreviousClose": 582.0, "priceHint": 2, "currentTradingPeriod": { "pre": { "timezone": "CST", "start": 1688691600, "end": 1688691600, "gmtoffset": 28800 }, "regular": { "timezone": "CST", "start": 1688691600, "end": 1688707800, "gmtoffset": 28800 }, "post": { "timezone": "CST", "start": 1688707800, "end": 1688707800, "gmtoffset": 28800 } }, "dataGranularity": "1d", "range": "3d", "validRanges": ["1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max"] }, "timestamp": [1688518800, 1688605200, 1688691600], "indicators": { "quote": [{ "low": [579.0, 565.0, 563.0], "close": [582.0, 565.0, 565.0], "open": [589.0, 573.0, 565.0], "high": [589.0, 574.0, 572.0], "volume": [14913592, 28564891, 18796190] }], "adjclose": [{ "adjclose": [582.0, 565.0, 565.0] }] } }], "error": null } }