[VBA] 5步驟讓你學會 – 大盤歷史資料自動儲存系統
目錄 :
大盤歷史資料自動儲存系統 設計解說
大盤歷史資料自動儲存系統 這一篇是整合前兩篇文章 : 1分鐘教會你 – 爬取大盤及股票即時數據 & 史上最齊全 – 超過30年的大盤歷史資料下載 的數據,利用 VBA 的功能,設計出更有用的 自動化儲存 系統,不必天天浪費時間,從 XQ 抓取大盤歷史資料,來做趨勢的判讀,大大節省了分析時間。
大盤歷史資料自動儲存系統 所需要的工具 :
1. EXCEL ( 32位元版本 ) : 因為 XQ全球贏家 DDE 的功能,只提供 32位元 版本。
2. XQ全球贏家 : XQ全球贏家 提供的資料源,較為豐富,就以它來做介紹,方便大家了解用法。
3. 啟動 VBA : 自 EXCEL工作表 中開啟,其操作方法,請參考 : 開啟 VBA 開發人員工具。
設計概念
☆ 大盤歷史數據 + 今日大盤收盤數據 ===> [ 透過 VBA ] ===> 自動儲成 : 今日大盤歷史數據 ☆
設計佈局
利用 XQ全球贏家 抓取大盤歷史資料
※ 資料抓取 大盤 – 日線圖,時間區間 : 1990 / 01 / 01 ~ 2022 / 01 / 13,操作方法 : 請參考 : 大盤歷史資料下載。
[ 資料數據 ] : 如下圖。
利用 XQ DDE功能 爬取大盤即時數據
※ 資料爬取 大盤 – 當日 : 2022 / 01 / 14 收盤數據,操作方法 : 請參考 : 爬取大盤即時數據。
[ 資料數據 ] : 如下圖。( ※ XQ 選 加權指數,點 : EXCEL輸出 前,將 滑鼠游標 點到 想存放的座標,連結的公式數據,就會以 游標點 為 起始點 顯示。)
[ 操作作法 ] :
◎ 將游標設在工作表 N1 位置,連結資料的 起始點,就會在 N1。( PS. 我是方便操作,位置在哪都可以。)
◎ 注意 : 我只設定連結上面圖表上的欄位。因為其他的,如 : 買進 / 賣出,只針對盤中即時。股票類對大盤沒作用,所以只留上面的。
EXCEL資料公式整理
※ 步驟會繁複些,因為要配合 大盤歷史數據 的數據格式。( PS. 格式一定要正確,不然在分析時,會有誤差。)
[ 操作步驟 ] :
1. 大盤歷史資料 下移4行 : 游標範圍選取 A1 ~ M4 儲存格,按 : 滑鼠右鍵,選 : 插入,選擇 : 現有儲存格下移,按 : 確定。
2. 複製欄位名稱到 A1 ~ M1 : 游標範圍選取 A5 ~ M5 儲存格,按 : Ctrl + C (複製),游標點 A1,按 : Ctrl + V (貼上)。
3. 製作語法連結 : 目前針對可直接語法處理的欄位做設定。( 如 : 時間 / 開盤價 / 最高價 / 最低價 / 收盤價 / 成交量。)
[ 語法製作 ] : 點選 欲製作語法的儲存格,然後在 資料編輯列,撰寫公式。( ※ 注意 : 在資料編輯列撰寫公式,最前頭要加個『 = 』)
★ 交易日 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-TradingDate“)
★ 開盤價 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-Open“)
★ 最高價 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-High“)
★ 最低價 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-Low“)
★ 收盤價 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-Price“) –> 注意 : 不是 Close 喔 !
★ 成交量 : 語法 / =RTD(“xqrtd.rtdserverxqlite”,,”TSE.TW-Open“)/10000 –> 大盤常用 “億” 來介紹成交量,歷史資料也這樣表示,就 /10000,來配合歷史數據。
[ 語法參考 ] : 其他有關DDE的語法參數,請參考 : DDE/RTD 語法參數。
4. 欄位搬移 :
[ 操作步驟 ] :
( 1 ) : 將 A1 儲存格 : 時間,改成 : 加權指數。( PS. 無需賦予公式。)
( 2 ) : 將 漲跌 跟 漲幅% 二整行欄位,插入 E 跟 F 行中間,之後利用 VBA程式,來增加 漲跌 跟 漲幅% 的歷史資料。
[ 作法 ] : 點 Q (漲幅)欄位,按住滑鼠左鍵,拖曳游標到 R (漲跌幅)欄位,選取 Q 跟 R 2整行,然後按滑鼠右鍵,選擇 : 剪下;將游標點到 F 欄位位置(要插入 E 與 F 中間),再點滑鼠右鍵,選擇 : 插入剪下的儲存格,即完成。( 如下圖 )
( 3 ) : 填寫 F5 跟 G5 的欄位名稱 : 漲幅 跟 漲幅%。
[ 作法 ] : 將 F1 跟 G1 儲存格選起,按鍵盤 : Ctrl + C (複製),滑鼠點 F5 儲存格,按鍵盤 : Ctrl + V (貼上)。
( 4 ) : 刪除 代碼 / 商品 / 成交 / 總量 整行。
[ 作法 ] : 將 P Q R S 整行選起,按滑鼠右鍵,選擇 : 刪除。( ※ 昨收 / 內外盤比圖 / 均價,會往前挪移。)
( ★ ) : 最後的 昨收 / 內外盤比圖 / 均價 欄位,當參考用,不列入歷史資料欄位做計算。
PS. 因為 昨收 可以直接從歷史資料讀取。內外盤比圖 與 均價 沒有歷史數據,純粹是當日計算的資料。
開啟 VBA 開發人員工具
※ 開啟方法,請參考 : 開啟 VBA 開發人員工具。
正式啟動 VBA
◎ 啟動 VBA : 執行 Visual Basic,打開 程式編輯 視窗。
◎ 程式編輯視窗,如下圖 :
開啟 VBA 程式 – 插入模組
撰寫 VBA 程式,一般為了方便呼叫公共程序,會以 插入模組 的方式,來編寫程式。
※ VBA 提供 — 三種 插入模組 的方法 :
1. 功能列 — 插入 : 有個 模組 選項。
2. 工具列 — 插入 : 有個 模組 選項。
3. 專案列表內,按滑鼠右鍵,將游標移到 插入 功能選單,會出現 模組 選項。
◎ 插入模組後,該注意事項 :
1. 模組預設名稱 : Module1,可將其更名。更名位置在 屬性列表 : Name 的位置。
2. 強制宣告變數 : VBA 預設 Option Explicit,目的是希望使用者編寫程式時,明確宣告變數名稱;否則在編譯時會發生錯誤。( PS. 可刪除。看個人使用習慣。)
[ 注意 ] : 模組名稱 不要跟 Sub副程式 的名稱相同,以免日後呼叫( Call )副程式( Sub ),會產生錯誤。
編寫第一個 VBA 程式
之前已說明,教學不會從最初階教起,若程式中有引用不懂的公式或參數,可以連結到 VBA 功能 / 語法筆記,看使用方法,在程式中就不再贅述。
所以第一個程式編寫,就直接針對大盤該修補的資料,開始進行。
※ 延續 EXCEL資料公式整理 後的歷史資料 ( 如下圖 ),VBA程式 就根據紅框 4個位置來做資料修補與公式設定。
大盤 漲跌幅 歷史資料修補
※ 漲跌 / 漲幅% 之資料公式 :
☆ 今日漲跌 = 今日收盤價 – 昨日收盤價
☆ 今日漲幅% = 今日漲跌 / 今日收盤價
※ 了解 漲跌 與 漲幅% 儲存格的公式原理,就可以套用在程式上,將所有數據修補完成。
[ 程式碼 / 修補大盤漲跌幅歷史資料 ] :
Option Explicit ' 強制變數宣告
Sub 修補大盤漲跌幅歷史資料()
Dim I As Integer ' Dim 宣告變數 I 為 Integer (整數)
For I = 6 To 8296 ' 迴圈 : 從 6(開始) 到 8296(結束)。
If I = 6 Then ' IF 判斷式
' 因為第一筆(F6)資料,要減掉前一天(1989/12/28) 的收盤價 : 9624.18,才能算出漲跌點數,但歷史數據上F5是欄位,會發生錯誤。
' 所以要先製作判斷第一行的判斷式,才能將歷史資料補齊。
Range("F6") = Range("E6") - 9624.18
Range("G6") = Range("F6") / Range("E6") * 100
Else
Range("F" & I) = Range("E" & I) - Range("E" & I - 1)
Range("G" & I) = Range("F" & I) / Range("E" & I) * 100
End If
Next
End Sub
[ 程式解說 ] :
1. Option Explicit : 強制變數宣告。
◎ 可刪除,不使用。一旦使用,就必須完整宣告所有變數,否則會出現錯誤提醒。
2. Sub : 副程式。
◎ 在模組內,程式包覆在其中,是以 Sub 修補大盤漲跌幅歷史資料( ) 來做程序宣告,End Sub 來結束Sub程序宣告。其中,修補大盤漲跌幅歷史資料 是Sub副程式名稱,用『 ( ) 』來結尾。而一個模組內,可以有多個 Sub … End Sub,利用 Call指令 來互相呼叫。
3. Dim : 宣告變數。
◎ 因為使用 Option Explicit,所以必須對程式中使用的 I 變數做宣告,而 I 變數是用來針對迴圈運用,屬 整數型態,故對 I 變數做 Integer (整數) 宣告。
4. For … Next : 迴圈。用法 : 指定電腦執行重複動作多少次。
◎ For I = 6 To 8296 : 迴圈 — 從 6 (開始) 到 8296 (結束) –> 對應EXCEL(漲跌幅)到填補的資料列數。以 Next 來結束 For指令 的動作。
5. If … Then … Else : 條件判斷式。
◎ 因為需要對第一筆資料做判斷與處理,所以使用 IF指令 來判別 變數 I 是否為 6 (第一筆)。是 : 往下執行,不是 : 就跳到 Else,執行另個程序。最後,以 End If 來結束 If指令 的動作。
[ 注意 ] : 程式解說上的指令語法,都可以直接點選,連結到語法說明,方便了解其使用方法。
[ 補齊 : 大盤歷史資料 — 漲跌 / 漲幅% ] :
◎ 如下圖。大盤漲跌/漲幅%的歷史資料,全補齊。但歷史資料的小數位數與 F2 / G2 當日數據不同,需再做些修整。
[ 修整方式 ] :
1. 點 F 欄位(漲跌),將 F欄資料全部選起,按滑鼠右鍵,選擇 : 儲存格格式,點選 : 數值 類別,修改 : 小數點位數為 1 。( 同當日漲跌資料 : F2 )
2. 點 G 欄位(漲幅%),將 G欄資料全部選起,同上步驟,修改 : 小數點位數為 2。( 同當日漲幅%資料 : G2 )
當日大盤 均線 公式設計
※ 針對大盤 SMA5 ( H2 ) / SMA20 ( I2 ) / SMA60 ( J2 ) 做 — 均線公式設計。
※ 均線 — SMA5 / SMA20 / SMA60 之公式 :
☆ SMA5 = ( 今日收盤價 + 前4日收盤價 ) / 5
☆ SMA20 = ( 今日收盤價 + 前19日收盤價 ) / 20
☆ SMA60 = ( 今日收盤價 + 前59日收盤價 ) / 60
[ 程式碼 / 大盤均線公式設計 ] :
Option Explicit ' 強制變數宣告
Sub 均線公式設計()
Dim lastRow As Integer
lastRow = Range("E5").End(xlDown).Row ' 找出最後一列的位置。( PS. 藉由最後一列,往上抓取收盤價資料,就能算出所需的SMA數據。)
' SMA5 均線 :
[H2] = "=( E2 + SUM( E" & lastRow - 3 & " :E" & lastRow & " )) / 5" ' 將 SMA5 均線公式字串,貼到H2儲存格。
' SMA20 均線 :
[I2] = "=( E2 + SUM( E" & lastRow - 18 & " :E" & lastRow & " )) / 20" ' 將 SMA20 均線公式字串,貼到I2儲存格。
' SMA60 均線 :
[J2] = "=( E2 + SUM( E" & lastRow - 58 & " :E" & lastRow & " )) / 60" ' 將 SMA60 均線公式字串,貼到J2儲存格。
End Sub
[ 程式解說 ] :
1. Option Explicit : 強制變數宣告。
2. Sub : 副程式名稱 : 均線公式設計 。
3. Dim : 宣告變數 lastRow 為整數 : Integer。
4. Range(“E5”).End(xlDown).Row : 這是 Range指令的用法 。End(xlDown) 參數,就是EXCEL的快速鍵 : Ctrl + ↓,Row : 列位置。
※ 意思是 : 點 H5 儲存格,按下 Ctrl + ↓,游標從 H5 往下移動,停止在收盤價最後一列的位置 : E8296。參數 Row = 8296。
★ 主要目的 : 找出最後一列的位置,才能帶進均線公式,計算出SMA5/SMA20/SMA60的平均值。
★ Range指令用法 : 請參考 : VBA語法筆記 – Range/End指令。
5. [H2] = “=( E2 + SUM( E” & lastRow – 3 & ” :E” & lastRow & ” )) / 5″ : 這是 文字組合 的用法。意思是 : 將 公式文字 貼到工作表H2的位置。
※ 工作表 H2 (SMA5) 的 資料編輯列 公式 : =( E2 + SUM( E8293:E8296 )) / 5,這就是由上面的程式,轉換過來的,算出收盤價的5日平均值(SMA5)。
★ 文字組合用法 : 請參考 VBA語法筆記 – 文字組合。
6. SMA20 / SMA60 : 同步驟5,參考數值修改,即可。
7. 將 H I J 整行欄位的數值,全修改 : 小數點位數為 2。
當日大盤 成交量 公式設計
※ 針對大盤 MA5 ( J2 ) / MA10 ( K2 ) 做 — 成交量公式設計。
※ 成交量 — MA5 / MA10 之公式 :
☆ MA5 = ( 今日收盤價 + 前4日成交量 ) / 5
☆ MA10 = ( 今日收盤價 + 前9日成交量 ) / 10
[ 程式碼 / 大盤成交量公式設計 ] :
Option Explicit
Sub 成交量公式設計()
Dim lastRow As Integer
lastRow = Range("K5").End(xlDown).Row ' 找出最後一列的位置。( PS. 藉由最後一列,往上抓取成交量資料,就能算出所需的MA數據。)
' MA5均量:
[L2] = "=( K2 + SUM( K" & lastRow - 3 & " :K" & lastRow & " )) / 5" ' 將成交量-MA5均量公式字串,貼到L2儲存格。
' MA10均量:
[M2] = "=( K2 + SUM( K" & lastRow - 8 & " :K" & lastRow & " )) / 10" ' 將成交量-MA10均量公式字串,貼到M2儲存格。
End Sub
[ 程式解說 ] :
◎ 成交量 跟 均線 的程式相同,不多贅述。
※ 將 L 與 M 整行欄位的數值,全修改 : 小數點位數為 2。
當日大盤 KD指標 公式設計
※ 針對大盤 K(9,3) ( L2 ) / D(9,3) ( M2 ) 做成 — KD指標公式設計。
★ 首先要先了解 KD指標的 K值、D值,是怎麼來的。計算公式,如下 :
※ EXCEL 最高值 / 最低值 之公式 : 以 K( 9 , 3 ) 為例 —
☆ 最高值 = MAX ( 最高價 – 最近9日內(含今日)的數據 )。
☆ 最低值 = MIN ( 最低價 – 最近9日內(含今日)的數據 )。
※ 為了驗證 KD值 的正確與否,在工作表 S2 / T2 / U2 儲存格,增加 RSV / HIGH(最高值) / LOW(最低值) 參考值,方便於查證。
[ 程式碼 / 修整KD指標歷史資料 ] : 將歷史資料的K值/D值百分比符號去掉,方便未來的計算,避免錯誤。
Option Explicit ' 強制變數宣告
Sub 修整KD指標歷史資料()
Dim I As Integer ' Dim 宣告變數 I 為 Integer (整數)
For I = 6 To 8296 ' 迴圈 -- 從 6 (開始) 到 8296 (結束) --> 對應EXCEL(漲跌幅)到填補的資料列數。
Range("N" & I) = Range("N" & I) * 100
Range("O" & I) = Range("O" & I) * 100
Next
End Sub
※ 程式執行完畢,必須將 N 與 O 整行欄位的數值,全修改 : 小數點位數為 2,才會呈現下圖的資料型態。
[ 程式碼 / KD指標公式設計 ]
Option Explicit
Sub KD指標公式設計()
Dim lastRow As Integer
lastRow = Range("E5").End(xlDown).Row ' 找出最後一列的位置。( PS. 藉由最後一列,往上抓取最高/最低值資料,就能算出所需的最高/最低值。)
[T2] = "=MAX(C2, C" & lastRow - 7 & ":C" & lastRow & ")" ' 以今天最高價跟前8天比較,抓出最高值 的公式
[U2] = "=MIN(D2, D" & lastRow - 7 & ":D" & lastRow & ")" ' 以今天最低價跟前8天比較,抓出最低值 的公式
' RSV值 :
[S2] = "=((E2-U2)/(T2-U2))*100" ' 將RSV值公式字串,貼到S2儲存格。
' K值 :
[N2] = "=1/3*S2+2/3*N" & lastRow ' 將K值公式字串,貼到N2儲存格。
' D值
[O2] = "=1/3*N2+2/3*O" & lastRow ' 將D值公式字串,貼到O2儲存格。
End Sub
[ 程式解說 ] :
※ [ N2 ] / [ O2 ] / [ S2 ] / [ T2 ] / [ U2 ] 皆以 文字組合 的方式,將 文字公式 轉貼到工作表儲存格,來計算出當前的數值。
儲存當日大盤資料
※ 所有數據皆以完成,剩下最後一個步驟;將當日資料複製到歷史資料儲存,便大功告成。
[ 程式碼 / 儲存大盤當日資料 ] :
Option Explicit
Sub 儲存大盤當日資料()
Range("A2:O2").Select ' 選取 A2 ~ O2 的儲存格 -- Select : 選取指令。
Selection.Copy ' COPY選取資料。
Range("A5").End(xlDown).Offset(1).Select ' 游標移動到 A5 往下到最後一列的下一列 ( Offset(1) )。
Selection.PasteSpecial Paste:=xlPasteValues ' 複製成數值 ( xlPasteValues ) -- 參數用法。
End Sub
[ 程式解說 ] :
1. Range(“A2:O2”).Select : 儲存格 — Select : 選取指令。
2. Selection.Copy : Selection 指的是 Range(“A2:O2”).Select 選取的資料,使用 Copy指令 來複製。
3. Range(“A5”).End(xlDown).Offset(1).Select : 跟 .Row 的用法不同,Select 是選取,使用 Offset(1) 參數,來控制游標位置。
※ 意思是 : 將游標移到A行最後一列的下一列 ( 準備貼上新資料的新列 )。
4. Selection.PasteSpecial Paste:=xlPasteValues : 在游標選取的位置,貼上複製的數值資料( 使用 xlPasteValues 參數 )。
( PS. 為何要轉換成 『 數值 』儲存,不直接上公式 ? 那是因為隔天開盤後,你剛剛貼上的公式資料,就會跟著一起變,所以必須改成 數值 來儲存。)
製作 : 按鈕 – 儲存大盤當日資料
※ 為了節省時間,避免手動的錯誤,所以將所有的步驟,整合在一個程序裡,利用『 按鈕 』來控制,達到自動儲存的目的。
※『 按鈕 』在此程式,不是必須的。其製作方法,請參考 : VBA功能筆記 – 按鈕製作,故不在此贅述。
製作 : 開啟檔案 – 自動執行程式
※ 想自動執行儲存動作,VBA 有二種方法 :
1. 運用 ThisWorkbook 的程序功能 : 可以設定開啟 活頁簿,自動執行程序內指令。
2. 設計時間控制程序 : 檔案開啟期間,可以設定 時間,來控制何時啟動執行指令。
[ 運用 ThisWorkbook 的程序功能 ] : 這篇以此功能,來作範例。
A. 專案列表 — 雙擊 ThisWorkbook ( 活頁簿 ) : 開啟程式編輯功能。
B. 中間 — 物件選單 : 預設 : ( 一般 ),點選下拉式選單 : 選擇 Workbook。
C. 右邊 — 程序選單 : 點選物件 Workbook 後,會出現程序選項 : 選擇 Open。
D. 設定好 Open 程序,會自動出現下列程序指令 : Private Sub Workbook_Open() … End Sub。
[ Open 程序用法 ] :
※ 當此活頁簿( 大盤歷史資料自動儲存系統 ) 打開 ( Open ),會自動執行程序內指令。
◎ 既然如此,只要在程序中,加入 Call 指令,呼叫 Sub 儲存大盤當日資料 副程式,就會執行自動儲存的動作。
[ 程式碼 / 開啟活頁簿 ]
Private Sub Workbook_Open()
Call 儲存大盤當日資料
Call 均線公式設計
Call 成交量公式設計
Call KD指標公式設計
End Sub
[ 程式解說 ] :
※ Call : 藉由 Call指令 將 每日收盤後的 均線 / KD指標 / 成交量,更新一次。
★ 最後,再以 Call 儲存大盤當日資料 指令來呼叫 / 執行 Sub 儲存大盤當日資料 副程式,完成儲存當日資料的動作。
設定 : 工作排程器
天天手動儲存,擔心某天忘了採取動作,導致數據錯誤。這時就可利用 Windows 本身提供的 工作排程器,來設定每日行程,讓電腦自動執行,既省事、又準確且避免錯誤發生,大大節省了設計者的工作時間。
[ 工作排程器 設定步驟 ] :
1. 利用 Windows 的 搜尋 功能 : 搜尋 — 工作排程器。( 我目前使用的系統 : WIN 11,其他版本也適用。)
2. 進入 工作行程器 ( 如下圖 ),執行 : 建立基本工作。
3. 建立基本工作 : 設定 工作名稱,按 : 下一步。
4. 工作觸發程序 : 設定 每天 ( 代表每天 : 1次 ),按 : 下一步。
5. 建立基本工作精靈 : 目前時間 — 盤中 2022/01/17 下午 12 : 43。預計收盤後 — 下午 2點,儲存大盤資料。
※ 設定開始時間 — 調整為 : 2022/ 1/17 下午 02 : 00 : 00,每隔 : 一天 實施,再按 : 下一步。( PS. 收盤時間,可自行調整,只要是收盤後,即可。)
6. 設定執行動作 : 設定 啟動程式,按 : 下一步。
7. 設定啟動程式 : 進入設定畫面,點選 : 瀏覽,找到存放 大盤歷史資料自動儲存系統 的檔案位置,點選 : 大盤歷史資料自動儲存系統 後,再按 : 開始。
8. 設定好檔案位置,啟動程式系統會自動連結設定檔案(如下圖),按 : 下一步。
9. 最後出現摘要,顯示剛剛設定的所有動作資料,確定無誤,按 : 完成,即大功告成。( PS. 下圖藍框內的核准鈕 : 不勾選。)
10. 確定 工作排程器程式庫 : 裡面多了 大盤歷史資料自動儲存系統,下次執行時間 : 2022/1/17 下午 02 : 00 : 00,代表設定完成。
[ 自動執行結果 ] :
★ 執行時間 : 2022/1/17 下午 02 : 00 : 00,程式自動將今日收盤資料 ( A2 : O2 ),複製到 8298列 存放。
注意事項
※ 這個程式寫到這,算是OK,可執行的,但還是有不足的地方,需要注意。
1. 沒有防呆 : 若你閒得無聊,一直打開程式,系統就會一直複製資料到大盤歷史資料。
☆ 意思是 : 同日期的資料,會出現一堆,到時你就必須手動將重複的資料刪除,才不會出錯。
2. 收盤後 ~ 下午2點前要關閉程式 : 程式於下午 1 : 30 收盤後關閉。因為工作排程器設定 : 下午2點 啟動 — 大盤自動儲存系統;此時程式若是開啟中,就不會進行複製動作。
3. 每天重啟程式 : 早上 XQ系統 會有更新動作。若程式沒關,公式儲存格可能會接收不到資料,出現 N/A 的情況,這時就必須重開程式,才會正常。
4. 均線(SMA) & 成交量(MA) 資料於2點儲存後,會出現問題 : 因為儲存資料後,均線 & 成交量的參考位置,會有變動,顯示的資料,會不正確;但隔天大盤開盤後,便恢復正常。若想避免這樣的錯誤,可以使用時間來控制,如同大盤開盤前,要重新啟動一般。
[ 注意 ] : 開啟步驟 — XQ 先開,再開 EXCEL。
結論
這款 大盤歷史資料自動儲存系統,運用了VBA程式,看似複雜,寫了一堆資料、貼了一堆圖片,但這都只是很簡單、基本的運用。若完全沒碰過VBA,藉由分段的寫法,參照著語法跟公式的用法,應該也能了解其中的概念。
其實寫程式,就像堆積木,都是由一小塊、一小塊堆疊出來,變成超大型物件;只要基礎概念通了,慢慢就能綜合運用,設計出高水準的程式。
希望這程式對您有幫助,下一篇預計寫 : 抓取大盤成份股即時數據,希望大家會喜歡 !
非常感謝您看到最後,若在閱讀的過程中,有任何疑問,歡迎您利用左下角 Messenger 直接提問或寫信給我,我會盡快回覆您,最後感謝您的閱讀,感恩 !
( PS. 如果喜歡 股小白 的文章,歡迎到 股小白臉書粉絲頁 點讚,衝人氣,目前不定期分析大盤趨勢,將來會有 每日公報 : 分析並公布跑分的個股資料,讓大家作為投資參考。 )
關 聯 文 章
- 大盤數據 及股票資料擷取是研究股市歷史脈動的必要程序,這可藉由EXCEL的表格設計,程式的撰寫,再透過DDE串接券商的資料源,就能針對財經數據做進一步的匯整與運算分析,大大節省許多抓取資料的時間,讓分析工作能更順利的進行。
- 大盤歷史資料 是研究大盤歷史脈動,最重要的數據。該如何下載長達30年的歷史數據 ? 資料下載後的相關問題,該如何解決 ? 才能更簡單且全面性的運用回測方式,來找出績效最好的交易模式,這就是分析股市,必須注意的地方。
3. 5步驟讓你學會 – 大盤歷史資料自動儲存系統
- 大盤歷史資料自動儲存系統 整合了大盤歷史資料與當日收盤數據,利用VBA的功能,搭配語法公式跟程序指令,來加以整合、運算,以達成自動化儲存資料的目的,從此不必再天天浪費時間,從頭爬取大盤歷史資料,來做趨勢的判讀,大大節省了分析時間。
★ 這三篇文章,資料互相關聯,有興趣學習的朋友,請依照文章順序及內文的操作步驟,一步步完成,就能順利架起 大盤歷史資料自動儲存系統。
V B A 資 源
- EXCEL & VBA功能 筆記 : 將針對文章中所使用的 EXCEL 及 VBA公式 / 工具操作 / 巨集設定 / 控制項的運用,做個整合記錄,方便大家在學習當下的參考與使用。
- VBA 提供相當多的指令用法,VBA指令 彙整筆記,將會陸續記錄 VBA文章 中,所用過的 VBA指令,方便學員們對照運用。
- 語法就是程式的文法。 使用者要與電腦溝通,就必須遵守這些規則。VBA程式語法 筆記 : 將針對 VBA文章 中所使用的 VBA程式語法,做個整合記錄,方便大家在學習當下參考與使用。