【C# 群益 API 開發教學】期貨演算法交易訊號檢查,比較商品價格差異

【C# 群益 API 開發教學】期貨演算法交易訊號檢查,比較商品價格差異 #CH4

群益 API 是利用自己開發的程式,結合群益 API 在群益券商下單的一種方式,通常是做程式交易下單,或是單純讀取報價也行。

這個章節是比較兩個期貨商品的價格差異,如果差異值過大,則會顯示交易訊號。
價格可選擇成交價及最佳 5 檔。

此範例教學是我看群益 API 的範例,再重新做出我要的程式交易功能。

如果需要實際操作才好學習的話,在最後我會提供原始碼範例下載連結,可以在自己電腦執行看看。

我在寫程式碼時盡量把註解說明清楚一點,這樣可以幫助想學習的人看懂一些,完整的功能還是要看官方的文件和範例喔。

* 重要提醒 *

在往下看之前,我還是先提醒一下,我設計的介面是為了教學而簡單設計的,給大家學習參考如何寫程式而已。
我的操作不代表交易建議,請勿當作交易依據。

執行結果影片

講解程式碼之前,先來看一下我錄製的執行影片。

我設定的演算法是:

商品 A 是 [大台指期] [成交價] 減掉 商品 B [小台指期][成交價] 的差異值 [大於] 參數 [0]

然後按「測試訊號」,程式就會檢查價格差異,當符合條件時,就會顯示在「訊號」區。

前置作業

群益 API 官網範例下載位置: 群益 API

此篇文章的內容是接續上一篇文章繼續說明,在上一篇裡面,我們完成了取得商品報價、Tick、最佳 5 檔即時報價功能。

在開始執行演算法訊號之前,需要在「帳號設定」輸入群益帳號及密碼,以利報價直接使用,不用每次都輸入。

* 資安重要提醒 *

儲存的帳號密碼只會放在程式執行相同目錄,不會往外傳,造成密碼外洩 (擔心者可自行檢查程式碼)。
已儲存過帳號密碼的程式目錄,請勿傳給其他人,以免檔案中帳號密碼外洩。

期貨演算法交易設計介面

打開 VS 之後,可以照我的畫面,拉出這個設計檢視。

期貨演算法交易訊號檢查

上面紅色字是控制項與 ID,好方便以下程式碼對應。

拉出 2 個期貨商品及價格下拉。
「比較」的下拉項目是 >, <, = (大於、小於、等於)
下拉的內容會在 Form_Load 裡面去填入項目。
參數就是自定義數值。

程式處理邏輯說明

畫面上的下拉設定範例,可以這樣下:

商品 A 是 [大台指期] [成交價] 減掉 商品 B [小台指期][成交價] 的差異值 [大於] 參數 [0]

設定好演算法條件後,執行「測試訊號」,
程式會檢查即時成交價有價格差異的時候,就會顯示在右下角的訊號區。

在價格的選項裡面除了 [成交價] 可以選之外,還有委託的 [最佳 5 檔] 可以選。

左下角的訊息就顯示與群益 API 串接的回應資訊。

程式碼說明

閱讀前提醒一下,我只會將重點語法拿出來講解喔,想要看完整程式碼及操作的話,可以到文末下載範例來看。

Form_Load 初始化動作

在初始化動作裡面主要有加入下拉項目、宣告群益 API 回應事件。

群益 API 國內報價連線

這個語法會放在「測試訊號」的動作裡面。

要取得報價之前,需要先連線,等待連線成功的回應之後。才能繼續下一步。

等待報價連線回應事件

當群益回傳代碼 3003 為連線成功,就可以訂閱商品。

取得商品資訊

這裡要同時訂閱商品A與商品B,但這裡的訂閱,主要是取得群益的 bstrMarketNo 與 nStockIdx 兩個參數,這是要讓 Tick 與 Best5 使用的。

訂閱 Tick & Best5

這裡才是向群益 API 訂閱 Tick 與 Best5 的語法,當訂閱之後,就要等待事件回應來取得即時價格。
等待事件為 OnNotifyTicks 及 OnNotifyBest5。

Tick 回傳事件

將最新價格寫入演算法比較物件裡面,如果價格有更新,再執行 TestSignal(); 檢查演算法邏輯。

Best5 回傳事件

這一段比較長,但邏輯都一樣,只是檢查委買 1 ~ 5 和委賣 1 ~ 5 是否有最新價格,有的話,再呼叫 TestSignal(); 檢查演算法邏輯。

檢查演算法邏輯

這裡是整個演算法檢查的邏輯,前面都是在搜集資料而已,但這裡的邏輯也很簡單,就是兩個商品的價格相減而已。
相減後的值跟自行參數做大於、小於或等於的比較。
如果比較成立,就在畫面上的「訊號」輸出文字。

重要的程式碼我就貼上來講解一下,剩下基本運作的程式碼再自己下載範例來看喔。

重點整理

  1. 再次提醒一下,這教學主要以程式碼講解為主,並不是買賣建議喔。
  2. 設計演算法交易畫面,可選擇兩個商品的價格。
  3. 同時訂閱兩個商品的價格,取得 Tick 與 Best5。
  4. 將兩個商品價格寫入演算法物件。
  5. 當價格異動時,就檢查演算法物件是否成立條件。
  6. 請不要問我什麼樣的參數是最好的,因為我沒在下單交易。

範例下載

此範例包含前篇文章範例內容,連結 GitHub 下載範例

下一篇教學文章

相關學習文章

如果你在學習上有不懂的地方,可以參考專業諮詢或線上家教服務,我想辨法解決你的問題
如果文章內容有錯誤的地方,幫我在下方留言通知我一下,謝謝
喜歡我的文章,請幫我在上方綠色拍手圖示按 5 下,也歡迎按月贊助,鼓勵我繼續創作,謝謝

加入社團一起討論

One thought on “【C# 群益 API 開發教學】期貨演算法交易訊號檢查,比較商品價格差異 #CH4

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

1 × one =