2015年1月4日 星期日

甚樣在Yahoo下載股票報價

以下用0005代號為例子,有兩種的報價方法如下。

1) 查詢現價:http://download.finance.yahoo.com/d/quotes.csv?s=0005.HK&f=sl1d1t1c1ohgv&e=.csv
輸出結果:
"0005.HK",74.00,"1/2/2015","2:59am",0.00,73.60,74.10,73.50,8614012

2) 查詢過往(天/週/月)的價位:http://real-chart.finance.yahoo.com/table.csv?s=0005.HK&a=11&b=31&c=2000&d=00&e=3&f=2015&g=d&ignore=.csv
輸出結果(由2000年12月31日至2015年1月3日 以"日報價"顯示):
Date,Open,High,Low,Close,Volume,Adj Close
2015-01-02,73.60,74.10,73.50,74.00,8614000,74.00
2015-01-01,74.00,74.00,74.00,74.00,000,74.00
...{多條記錄}

以上的link的解釋:
符號 ? 前的網址是不用更改。
符號 s= 是股價代號。例如:s=0005.HK 就是"匯豐控股" s=%5EHSI是恆生指數=^HSI 而%5E=^符號
符號 & 是分隔符號暫可不用理會。
符號 f= 在1)的意思是輸出的格式(format),而輸出的樣式是"sl1d1t1c1ohgv",將它分析如下
s = 代號(Symbol)、
l1 = 前收市價(Last Trade)、
d1 = 日期(Last Trade Date)、
t1 = 時間(Last Trade Time)、
c1 = 調整後的收市價(Change)、
o = 開市價(Open)、
h = 最高(Day's High)、
g = 最底(Day's Low)、
v = 成交量(Volume)
最後輸出的格式:"0005.HK",74.00,"1/2/2015","2:59am",0.00,73.60,74.10,73.50,8614012

符號 e= 是extension,可以不用理會。例如 e=.csv
符號 a= 是開始日期的月份。但它的數字是由0-11,1月=0, 2月=1...12月=11。所以如果是輸入12月就要輸入a=11而不是a=12。
符號 b= 是開始日期的日子。這個可以直接輸入。例如31日就輸入b=31。
符號 c= 是開始日期的年份。這個可以直接輸入。例如2000年就輸入c=2000。
符號 d= 是結束日期的月份。但它的數字是由0-11,1月=0, 2月=1...12月=11。所以如果是輸入1月就要輸入d=0而不是d=1。
符號 e= 是結束日期的日子。這個可以直接輸入。例如3日就輸入e=3。
符號 f= 是結束日期的年份。這個可以直接輸入。例如2015年就輸入f=2015。
符號 g= 是輸出記錄的類型。d=每天 w=每週 m=每月 v=派息記錄
符號 ignore= 可以不理會。

1)的方法還可以輸入多過一個的代碼,例如我想睇 0005,3888及2628 (s=0005.HK+3888.HK+2628.HK) 輸入如下:
http://download.finance.yahoo.com/d/quotes.csv?s=0005.HK+3888.HK+2628.HK&f=sl1d1t1c1ohgv&e=.csv
輸出結果:
"0005.HK",74.00,"1/2/2015","2:59am",0.00,73.60,74.10,73.50,8614012
"3888.HK",15.50,"1/2/2015","2:59am",+0.10,15.44,15.70,15.42,3184000
"2628.HK",31.40,"1/2/2015","2:59am",+0.95,30.50,31.50,30.25,54783380

以下是2)的另一例子。代號3888 開始日期由2007年10月25日至2014年2月30日 顯示每月記錄。
http://real-chart.finance.yahoo.com/table.csv?s=3888.HK&a=09&b=25&c=2007&d=01&e=30&f=2014&g=m&ignore=.csv