COCO研究院

 找回密碼
 註冊
搜索
查看: 87330|回復: 115

[API] 群益 API 2.13.9 C# 實作

  [複製鏈接]
發表於 17-11-30 12:21 | 顯示全部樓層 |閱讀模式
與 2.13.7 C# 實作相較本版多了兩個新的feature :
1. 委託回報的顯示可以用委託狀態來篩選(全部, 已成交,  已取消, 可取消)
2. 分K圖的更新頻率提高為每秒一次

在程式碼的部分, 停損單與分線圖部分做了比較大幅度的修改, 不像前一版那麼冗贅  
此外, 這一版在出廠前做了比較久的測試,
edge condition 考慮的比較週到
小bug 應該是比前面幾版少很多

附件為 原始程式碼

建議最好是用VS 2017 來開啟編譯
其中有許多用來協助了解API behavior 及 Debug  的Message, 我大都沒有拿掉
如果要go production, 您可自行將其comment掉

MyOrderMaster 2.13.9.zip (3.57 MB, 下載次數: 215, 售價: 150 金錢)

評分

參與人數 3金錢 +6 收起 理由
085ned + 2 感謝分享
nobu + 2 感謝分享
TrendRover + 2 感謝分享

查看全部評分

發表於 18-11-23 15:50 | 顯示全部樓層
編譯時會出現兩個問題,應該是群益API改版還沒反應更新。

在 MainForm.cs 內下述兩個 method 新增 int nDate 參數即可正常編譯執行。

// Change: add nDate parameter
private void OnReceiveHistoryTicks(short sMarketNo, short sStockIdx, int nPtr, int nDate, int nTimehms, int nTimemillismicros, int nBid, int nAsk, int nClose, int nQty, int nSimulate)
{}


// Change: add nDate parameter
private void OnReceiveTicks(short sMarketNo, short sStockIdx, int nPtr, int nDate, int nTimehms, int nTimemillismicros, int nBid, int nAsk, int nClose, int nQty, int nSimulate)
{}

評分

參與人數 1金錢 +2 收起 理由
cukie + 2 感謝分享

查看全部評分

回復 支持 0 反對 1

使用道具 舉報

 樓主| 發表於 21-9-15 19:31 | 顯示全部樓層
本帖最後由 alexliou 於 21-9-15 19:33 編輯
ethanpgk 發表於 21-9-13 22:18
Alex大,小弟對您的MyOrderMaster感到很崇拜,無奈金幣不夠,是否有其他回饋及分享方式呢?可用LINE PAY或轉帳 ...

群益API元件 已經update 到 2.13.31版了    這版的MyOrderMaster out of date 很久
不需要再download了, 下載了也無法拿來測試練習





 樓主| 發表於 18-1-23 19:24 | 顯示全部樓層
向前邁進一小步
recording.7z (469.72 KB, 下載次數: 694)


評分

參與人數 1金錢 +2 收起 理由
solo + 2 按一個讚

查看全部評分

回復 支持 5 反對 0

使用道具 舉報

發表於 18-1-10 21:24 | 顯示全部樓層
大大您好

小弟非常欣賞你的作品與分享精神
自己剛好最近也在寫下單機的部份
但是技術還不太純熟,想參考高手的程式碼
無奈論壇權限太低,沒金幣可以購買
是否可以改以新台幣支持呢 ?

若可以的話,麻煩請聯絡我
cory8249@gmail.com
感謝
回復 支持 3 反對 0

使用道具 舉報

 樓主| 發表於 18-3-3 13:16 | 顯示全部樓層
jerry 發表於 18-3-3 12:22
大大可以請您分享需要用到那些參考文件把API 報價灌到MC嗎?
另外您前面有提到一樣是5秒才傳一次DATA 嗎?

其實  我寫這個 External Data Feed 的發想是看到 futures.io(原BigMike) 論壇上的一篇討論而觸發的

https://futures.io/ninjatrader-p ... er-ninjatrader.html

原先我想去試用 NinjaTrader
但 Ninja 沒有免費的台指期DataFeed可用
就搜尋到上面那篇 自製DataFeed 的討論
轉念一想  如果Ninja 可以這樣做  MC應該也可以

回復 支持 2 反對 0

使用道具 舉報

發表於 18-1-22 09:18 | 顯示全部樓層
終於存到能買的錢了,謝謝分享

評分

參與人數 1金錢 +2 收起 理由
cukie + 2 按一個讚

查看全部評分

回復 支持 2 反對 0

使用道具 舉報

 樓主| 發表於 18-1-5 16:34 | 顯示全部樓層
alexliou 發表於 18-1-5 10:15
仔細研究了TWS 的API Log 後
發現IB 也有傳送Tick級的資料
只是我用的是 paper account, 又沒訂閱付費資料 ...

經測試之後
確定可以把Tick級的資料
利用IB接口  灌進QM裡去

評分

參與人數 3金錢 +6 收起 理由
pazival01 + 2 感謝分享
solo + 2
cukie + 2 太強了

查看全部評分

回復 支持 2 反對 0

使用道具 舉報

發表於 18-2-24 10:45 | 顯示全部樓層
ram 發表於 18-2-17 14:31
這個10檔報價確實是從群益的主機收來的!
但看影片中一開始回補Tick刷DDE的速度飛快,
就如所判斷一定不可 ...

2018/02/22群益2.13.11版的API
已經有說明
9.海外報價:海期、海選報價新增最佳十檔功能

該不會是在這版上看到我的提示加進去的吧!


評分

參與人數 1金錢 +2 收起 理由
cukie + 2 感謝分享

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

 樓主| 發表於 18-3-11 06:48 | 顯示全部樓層
alexliou 發表於 18-3-11 06:25
MC 的 IB datafeed 是透過 TWS 向 IB 索取資料
TWS 在收到資料後, 再 pass 給 IB datafeed
MC  IB datafe ...

所謂的想像力是指
從TWS Detail API Log中, 我們可以看到 request message 與 response message 跑來跑去
這是TWS 的Input 與 Output
TWS 的 Internal Process 只能由 可觀察到的I與O去推斷

回復 支持 1 反對 0

使用道具 舉報

 樓主| 發表於 18-3-11 06:25 | 顯示全部樓層
jerry 發表於 18-3-11 00:19
大大所以您是自己寫一個DATA FEED 直接給MC 還是給IB的 TWS DATA FEED 透過他給MC?

謝謝您分享 ...

MC 的 IB datafeed 是透過 TWS 向 IB 索取資料
TWS 在收到資料後, 再 pass 給 IB datafeed
MC <---> IB datafeed <---> TWS <---> IB

我寫的datafeed(我稱它為IBridge), 是取代TWS 來與IB datafeed 溝通
因為它使用的是群益的API, 自然最右邊的 Broker 就從 IB 變成了 Capital
MC <---> IB datafeed <---> IBridge <---> Broker

這個app 要處理的是與IB datafeed, Broker之間的 communication

與Broker 之間的溝通看券商API的使用說明就可以清楚了解

與IB datafeed 之間的溝通, 就需研究原先TWS 的 Detail API Log,
看TWS 與 IB datafeed 之間傳遞了甚麼樣的訊息,
可以參考的Documentation 是 IB 的API Guide, 再加上一點想像力
回復 支持 1 反對 0

使用道具 舉報

發表於 17-11-30 12:36 | 顯示全部樓層
大大動作好快,2.13.9這麼快就實做出來了,感謝分享
發表於 17-11-30 14:01 | 顯示全部樓層
感謝 alexliou 大大分享
該認真學C# 了
 樓主| 發表於 17-11-30 16:14 | 顯示全部樓層
kuolung 發表於 17-11-30 15:55
在 win 10 中,用 vs 2017 改為 x64 版,重新編譯後,可以執行,但是收不到 報價
看到下面的訊息是連線成功 ...

報價連線並沒有亮綠燈
表示並未連線報價server

 樓主| 發表於 17-11-30 16:21 | 顯示全部樓層
本帖最後由 alexliou 於 17-11-30 16:24 編輯
alexliou 發表於 17-11-30 16:14
報價連線並沒有亮綠燈
表示並未連線報價server

取得帳號資訊後
應該還要出現回報連線成功報價連線成功
這些訊息才對 擷取1.PNG

擷取.PNG






發表於 17-11-30 19:00 | 顯示全部樓層
太強了 感謝
發表於 17-11-30 23:04 | 顯示全部樓層
2.13.5版跟2.13.7板我都有買, 程式真的蠻簡潔的, 不錯用

對會用C#的很好修改. thanks.
發表於 17-12-1 13:49 | 顯示全部樓層
好貴呀。新人慢慢賺錢
 樓主| 發表於 17-12-1 21:11 | 顯示全部樓層
kuolung 發表於 17-12-1 19:33
附上元件 x64 32 都有

我用的元件和你用的是一樣的
但我重製不出你所出現的狀況
(我嘗試用另一台電腦去download, 並reinstall你所附的元件, 然後重新Compile)

其它有download的網友, 有出現同樣情形的嗎?
 樓主| 發表於 17-12-2 10:15 | 顯示全部樓層
kuolung 發表於 17-12-2 09:11
可能是沒有安裝 下單的憑證 我測試的電腦沒下單 所以沒憑證

that's the answer.讀取憑證失敗, login 不成功


發表於 17-12-4 08:51 | 顯示全部樓層
感謝改版與分享....
發表於 17-12-23 21:44 | 顯示全部樓層
好厲害喔,謝謝分享
 樓主| 發表於 17-12-26 12:55 | 顯示全部樓層
本帖最後由 alexliou 於 17-12-26 13:37 編輯

possible extended usage of this program:
add server socket features and make it become a fake IB TWS instance  
then it may be used as a datafeed and broker plugin for other trading platform such as Multicharts, NinjaTrader, ...

有這方面經驗的大大, 要不要來指點一下?
發表於 17-12-27 19:07 | 顯示全部樓層
alexliou 發表於 17-12-26 12:55
possible extended usage of this program:
add server socket features and make it become a fake IB TWS ...

IB: Interactive Borker
TWS: Trade Work Station他家的專用交易系統
早期IB的API,法規的關係,需要你同時打開TWS才能使用
沒記錯的話,以前群益也一樣,實際上是透過策略王SK2.EXE下單,那時策略王還是2.0

IB的API比群益優的地方,就是他呼叫函式可以塞個自訂的ID進去,群益你還要管理他的Reply Data,有可能遲到,後發先至,甚至不見了。
但是,IB如果你交易的佣金不夠多,則只給你每秒100個message (event),這樣,其實訂閱幾個symbol的book就滿了。因為國外很多是Level 2行情報價,有買賣各10檔


 樓主| 發表於 17-12-27 19:38 | 顯示全部樓層
rainlala 發表於 17-12-27 19:07
IB: Interactive Borker
TWS: Trade Work Station他家的專用交易系統
早期IB的API,法規的關係,需要你同 ...

MC 和 NT都有內建 IB的DataFeed和Broker PlugIn
其功能都是透過TWS而進行
我的意思是可以把這個程式改一改
假裝成TWS
那麼 MC和NT 就可以透過這個程式(既是資料源又是下單機)來接收資料與下單
但資料的來源和下單的對象不是IB
而是Capital 或是其他券商(用其它的API)

選擇IB TWS 的原因是因為 IB的API 比較特別
它是透過Local PC上的TWS來作為中介  而非直接連上主機

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-21 22:16

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |