元大API即時行情串接(四)


為了取得即時的報價,更詳細的raw data,除了可以方便我們做股票、期貨等金融商品的分析。最重要的是,可以用來做自動下單、高頻交易、隨到隨撮等的用途。

本篇雖然是接續著第三篇元大API即時行情串接(三),但我們要來介紹的是當元大API改版時,我們要如何去進行更新。本篇主要對2020/11/13所更新的2.1.2.7版作介紹,未來可能會有不同的牽動與更新步驟。

事情是這樣的,本週六我收到了一封手機簡訊,是元大寄過來的通知信:


大體上就是元大API版本有了重大的更新,需要客戶在自己的客戶端進行更新,否則可能無法運作或出錯。

那當然,事不宜遲,我們得趕緊來進行更新了。

順帶一提,如果先前並未建立相關的元大API串接的人,想了解的話也歡迎回過頭從本系列第一篇元大API即時行情串接(一)開始參考如何開始,並實現相關功能。



準備工作

首先我們得先去元大期貨官方網站去下載必要元件:

基本上我們只需要下載元大國內行情API的第一項國內行情API元件及說明文件(權限需額外申請)的項目,我們可以看到版本是2.1.2.7:


下載下來後,會發現是一個壓縮檔包著另一個壓縮檔…,裡面其實就是完整的註冊元件所需目錄(QAPI)以及一個操作說明:




解除註冊舊元件

我們打開當初註冊舊版元件的所在目錄:


裡面會有兩個預寫好的bat批次檔指令,需要使用系統管理員身分來執行,其主要的解除註冊對象是如圖方框中的ocx檔:


我們其實可以打開這兩個bat批次檔看看裡面存放哪些指令:

uninstall_ytocx.bat
=> regsvr32 -u C:\Yuanta\QAPI\YuantaQuote_v2.1.2.6.ocx



uninstall_YuantaQuote.bat
=> regsvr32 -u YuantaQuote_v2.1.2.6.ocx

兩者差別只在於目標對象的絕對路徑與相對路徑的差異。因為是透過右鍵選單的以系統管理員身分執行功能來解除安裝(預設開啟的根目錄會在C:\WINDOWS\system32),所以我們可以選擇第一個bat批次檔uninstall_ytocx.bat(與圖片箭頭所指向不同),來避免路徑問題。

或者也能自行以系統管理員身分開啟CMD命令提示字元視窗,指向到目標目錄後,執行批次檔或是自行輸入指令。

解除註冊成功後,會出現以下情況,請確保到這個步驟沒問題:



註冊新元件

基本上,註冊新元件的步驟就跟在當初註冊舊元件時的步驟一樣。

我們把新目錄(QAPI)解壓縮出來後取代原本的舊目錄,結構如下:


註冊與解註冊都一樣有包含兩個bat批次檔在其中:

install_ytocx.bat
=> regsvr32 C:\Yuanta\QAPI\YuantaQuote_v2.1.2.7.ocx



install_YuantaQuote.bat
=> regsvr32 YuantaQuote_v2.1.2.7.ocx

做法也類似,我們可以如下圖的指示來執行:


註冊成功後,會如以下提示:


編譯程式

再來我們需要重新編譯一次專案程式,避免連結時出錯。

先確認剛剛新註冊的COM元件有沒有成功讀取,我們可以透過Visual Studio 2019上方菜單欄"工具(T)"->"選擇工具箱項目(X)"選項開啟

如果能夠在COM元件欄位中找到下圖所指的元件,基本上就沒問題:

另一個確認方法其實更直觀,只需要編譯成功,以及能正確執行編譯後產生的執行檔,就代表能正確連結到元大行情API元件。

若未成功註冊,在編譯時可能會出現以下狀況,直接跟出現類別未登入的例外:


結論

基本上,任何的網路服務的版本更新,以及相關訊息的釋出,我們都要去特別關注,避免服務的使用中斷。本次元大行情API的更新只需要重新註冊新元件,並不需要進行其他改動,比方說模組或函式的調用等等,相對來說簡單,很快就能處理與維護完成。

沒有留言:

張貼留言