利用Yahoo Finance下載台股的歷史股價並用EXCEL製作股票K線圖2/2

上回我們在 利用Yahoo Finance下載台股的歷史股價並用EXCEL製作股票K線圖1/2的這篇文章裡進行了 Yahoo Finance 在EXCEL上的延伸應用,最後也提到在每次開啟EXCEL自動更新來源資料時,日期排序會變成由古至今排列的問題,至於要怎麼解決呢?無法解決就用程式來解決囉~~

解決的方法是利用程式在開啟EXCEL檔並執行完自動更新後,再自動執行我們寫好的巨集程式,做法如下:

首先開啟Visual Basic 編輯器~

1

建立一個程序~程式碼如下(可以利用錄製巨集的方式來建立)

Sub OrderByDate()
    Columns("A:A").Select
    Range("A1:G1499").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        SortMethod:=xlStroke, DataOption1:=xlSortNormal
End Sub

2

在Sheet1工作表中(我們股價資料存放的工作表)建立一個事件,這裡我是用工作表的Change事件,至於為什麼要用這個事件,因為在自動更新完成後會造成EXCEL工作表資料的變動,所以在這個事件下來呼叫上面我們建立的程序,程式碼如下:

Private Sub Worksheet_Change(ByVal Target As Range)
    Call OrderByDate
End Sub

3

到這裡程式便完成了,你可以試著將EXCEL存檔並重新開啟試試,如此一來,每當我們開啟工作表,並完成自動更新資料來源後,再執行我們的自訂的程序,股價日期便會依從古至今排序,圖表也會跟著更新,這樣才是符合我們的需求~

總結:

我們只要利用 Yahoo Finance 下載某一隻股票的歷史股價資料檔(csv),然後把舊的覆蓋掉,開啟我們做好的Excel檔,就可以得到最新的股票歷史資料與圖表分析了,但除了呈現股票K線圖外,還能有什樣的分析應用呢?大家都很聰明,應該都想到了吧,記得告訴我啊~~~

在〈利用Yahoo Finance下載台股的歷史股價並用EXCEL製作股票K線圖2/2〉中有 9 則留言

  1. YAHOO Finance的股價好像跟正確的股價不一樣耶…

    如台積電(2330)
    2001年1月的月收盤價

    Yahoo Fianance上是63.03元 (還權為27.73)
    正確股價是105.5元 (還權為31.62)

    不知道這是為什麼??

    [回應]

    回覆
  2. 版大您好

    最近正嘗試以excel建立個人化的分析工具
    感謝版大這篇分享
    受益良多
    有幾過問題請教版大
    1.從yahoo finance 所下載的 history data似乎未updata至最近日
    ex:2009/05/04
    譬如 我嘗試下載鴻海(2317)
    data內容只包含2000/1月~2006/11月
    請問如何下載到完整的data? 有其他的來源嗎?
    2.若製作多頁時(ex: sheet-1 2002中鋼 ; sheet-2 2317鴻海…..)
    應如何修正您所提供的程式碼?

    打擾您了

    謝謝

    [回應]

    LuSoft 回覆.

    1.他的股價時間不是runtime的,是會有一些delay
    2.可能有時間上的限制,或者你可以試看看Google finance
    3.這個可能你得自己研究看看囉~

    [回應]

    回覆
  3. 請問版主:
    EXCEL縮放有限制,最大只能放大到400%
    資料一多,這樣的K線圖會看不清楚
    有沒有其他方法(如捲軸或是巨集)
    將K線圖橫移或是局部放大???

    LuSot:或許可以試著將取得資料的日期區間縮短~~

    [回應]

    回覆
  4. 請問
    我要在 “利用Yahoo Finance下載台股的歷史股價並用EXCEL製作股票K線圖” 的結果圖上, 加上註明, 那些日期是我的買點或賣點, 應該如何做??

    LuSoft:在圖表上加註記好像不可行?

    [回應]

    回覆

發佈留言