自製Excel股票資料表

自製Excel股票資料表

撰文:馬澤祺 欄名:投資棋盤

大市反彈了幾天,昨天又在歐債危機升溫及匯豐中國PMI數據放緩之下急插。上周筆者指出,除非經濟前景出現明顯改變,否則仍可以22500點作為支持並趁低吸納。昨日公布的中國匯豐PMI初值回落51.1的十個月低位,而倫敦研究機構Markit數據指歐元區5月份製造業及服務業活動增長速度放緩至 7個月新低,無疑為全球經濟添上不明朗因素,但要判斷經濟會否「硬著陸」,相信仍是言之過早。

在經濟仍能持穩的前題下,隨著恆指逐漸逼近22500點分界線,中長線策略的風險回報率已達較吸引的程度;但對講究市場動力的短線投機者,則仍需等候大市完成低位的整固,發出反彈訊號,才有較高的值搏率。

筆者接連兩期介紹了使用網上試算表取得股票報價並制作一覽表的方法,但有不少朋友指辦公室中最常用的是Microsoft Excel,希望能介紹一下以Excel製作股票報價的方法。

秘技取Yahoo! Finance資料

事實上,Excel雖然沒有內置股價功能,對財經界人士而言可謂一大缺憾,但其整體功能性仍明顯優於免費的網上試算表,且更容易結合其他程序及資料庫系統等進行高階的應用,對於有心研究系統化交易的投資者而言,仍是值得花上時間去學習的工具。在Excel中要取得股票資料,可以採用Bloomberg或Reuters等報價系統提供的動態資料交換(DDE)功能,但這類系統價格甚高,對一般投資者而言,為了報價而訂購這些專業系統,無疑是「殺雞用牛刀」。

幸好,Yahoo!有提供免費報價,而我們透過Excel的VBA功能,便可編寫出股價報價表函數;筆者在文末附上參考檔,初階用家可下載並摸索使用,至於進階用家則可以將函數抄到自己的試算表使用,甚或改進程式增加功能等。

在解說這個Excel函數之前,我們先得瞭解Yahoo!以.csv檔案形式傳回的文本報價表。

先舉一個實例,讀者們可以在網址列輸入:

http://finance.yahoo.com/d/quotes.csv?s=0001.HK+0013.HK+0005.HK&f=snl1ohg

結果應該會彈出純文字式的表格或是直接彈出Excel的表格,而表格內則有長實(00001)、和黃(00013)及匯豐(00005)的一些資料。

回看剛剛輸入的URL,其中,”http://finance.yahoo.com/d/quotes.csv?”是基本的部份,用以向 Yahoo!查詢股票資料,不能改變的。而緊接著”s=0001.HK+0013.HK+0005.HK”的一段,則是”s=”然後接上「長實+和黃+匯豐」的股票編號,而我們亦可以換上其他本地或外地股份,甚或商品期貨和指數的代號等(有關代號,則需要在Yahoo!裏面尋找)。至於最後面的一串”&f=snl1ohg”,其實是指明表格那些欄目,而這一串參數則分別代表了stockcode(s), name(n), last price(l1), open price(o), day high(h)及day low(g)六個欄目,至於其他可用的欄目,則列於附件中的第二版工作紙上。

至於Excel的部份,筆者在試算表中編寫了一個”sq()”的函數。SQ()函數有兩個參數,分別是存放股票編號的儲存格範圍,以及存有欄目選項的儲存格範圍。在附上的試算表中,函數sq()分別放了在B9格及B32,前者的參數為(B10:B28, C9:M9),後者則為(B33:B41, C32:I32);函數傳回的表格將放在函數右下角開始的範圍,因此,最佳的用法就是將股票編號放在函數下方,而欄目選項則放在右方,作為表格的標題。

在這個表格中,使用者可改動股份編號及欄目,其中,欄目的代碼可參考第二版的代碼表;筆者於下期文章將解說函數的VBA內容,對程式編寫有認識的讀者們可以自行修改並創造適合自己使用的函數。

附件連結:stock.xls
http://www.xun6.com/file/04352f110/stock.xls.html

註:由於自訂函數使用了巨集功能,部份停止了巨集功能讀者,可能需要修改設定,改為「容許巨集執行」方能應用這個程式。

3 則留言:

匿名 說...

你好...怎樣下DOWNLOAD 你的附件(stock.xls)?

匿名 說...

what is ”sq()”的函數 ??
I don't understand

匿名 說...

請問附件還可以提供嗎?