元大期貨【行情API】詳細講解

在開始之前如果你尚未安裝【行情API】的同學請到前一篇【元大期貨API開發前準備】,先把行情API安裝完,測試沒問題再回到這篇。

解壓縮【行情API】後看到QuoteTest.sln將他開啟。

啟動visual studio後看到右側的【方案總管】,選擇【檢視程式碼】。

第一步:登入

先從登入按鈕開始閱讀程式碼,如下圖中的“button_login_Click”的function。

在function中看見”LoginFn1“與”LoginFn2“兩個function,是執行登入使用,API中會拆分成兩個function主要原因是來區分T盤與T+1盤的報價。

實際在登入的所使用的API物件是“axYuantaQuote1”,調用裡面的方法“SetMktLogon”,依序填入“帳號”、”密碼”、”報價主機IP”、”報價主機port”、”1(T盤)或2(T+1盤)”、最後setMap填0即可。

以上兩個“LoginFn1″與”LoginFn2”內容,我們沿用即可不需要修改,之後開新專案程式碼照抄即可。

登入function搞定之後,即可正常登入,接下來就要收執行登入後的訊息,找到到“axYuantaQuote1_OnMktStatusChange”,function後可以看下圖內容。

來細看一下“button1_Click”內容,“axYuantaQuote1.AddMktReg”是用來訂閱報價的function,填入資訊依序為

textBox_sym.Text.Trim() = TXFB3 (商品代號)
comboBox_UpdateMode.Text.Substring(0, 1) = 4 (收報價的模式:4代表快照與即時報價)
iType= 1 (T盤=1、T+1盤=2)
SetMap = 0 (固定填0)

“RegErrCode” 的值,代表是訂閱報價是否訂閱成功,若有問題可以看值是多少在參照手冊做修正。

第三步:收報價

  “axYuantaQuote1_OnGetMktAll”的function,是傳進報價的地方,可以看下方圖片各個變數,自行各取所需。

bestBuyPri 最佳一檔買價,bestBuyQty最佳一檔買量
bestSellPri 最佳一檔賣價,bestSellQty最佳一檔賣量

上方已經介紹完API實際運作所需要的function,最後再來講如何初始化API,因為demo的程式碼是用winform寫的所以初始化埋在比較深的地方。


打開Form1.Designer.cs

找到上面這一段程式碼,注意看到
this.axYuantaQuote1.OnGetMktAll += new AxYuantaQuoteLib._DYuantaQuoteEvents_OnGetMktAllEventHandler(this.axYuantaQuote1_OnGetMktAll);
這一段程式碼是採用event方式來做報價傳遞,若不熟event可以上網google一下C#教學文章”委派”、”事件”。

this.axYuantaQuote1.OnMktStatusChange += new AxYuantaQuoteLib._DYuantaQuoteEvents_OnMktStatusChangeEventHandler(this.axYuantaQuote1_OnMktStatusChange);
這是回傳登入狀態的事件

this.axYuantaQuote1.OnRegError += new AxYuantaQuoteLib._DYuantaQuoteEvents_OnRegErrorEventHandler(this.axYuantaQuote1_OnRegError);
這是回傳註冊商品狀態的事件

最後這邊做個結論,以上已經完整介紹行情API的所有細節,報價API本身比較單純資料只有單一方向,比較好控制資料流,實作過程中可以嘗試自己開發儲存報價或製作K線等等功能來增加實戰經驗,未來在開發整套交易系統這是必經之路,下一篇會講解交易下單API,會比報價API還要難上許多,務必將報價API的實作練習做紮實,如何練習報價API可以給你兩個方案,第一種依照目前的範例程式直接新增儲存報價功能與K線功能,第二種方式是自己創新的專案從頭來過,這是一個非常棒的練習,各位同學加油~!。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *