alexliou 發表於 17-11-30 12:21

群益 API 2.13.9 C# 實作

與 2.13.7 C# 實作相較本版多了兩個新的feature :
1. 委託回報的顯示可以用委託狀態來篩選(全部, 已成交,已取消, 可取消)
2. 分K圖的更新頻率提高為每秒一次

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

附件為 原始程式碼

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


Gnimnek 發表於 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)
{}

alexliou 發表於 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了, 下載了也無法拿來測試練習





alexliou 發表於 18-1-23 19:24

向前邁進一小步



cory8249 發表於 18-1-10 21:24

大大您好

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

若可以的話,麻煩請聯絡我
cory8249@gmail.com
感謝

alexliou 發表於 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-programming/37350-creating-data-feed-connection-provider-ninjatrader.html

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

slowmocross 發表於 18-1-22 09:18

終於存到能買的錢了,謝謝分享

alexliou 發表於 18-1-5 16:34

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

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

ram 發表於 18-2-24 10:45

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

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

該不會是在這版上看到我的提示加進去的吧! {:4_90:}


alexliou 發表於 18-3-11 06:48

alexliou 發表於 18-3-11 06:25
MC 的 IB datafeed 是透過 TWS 向 IB 索取資料
TWS 在收到資料後, 再 pass 給 IB datafeed
MCIB datafe ...

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

alexliou 發表於 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, 再加上一點想像力

relinjan 發表於 17-11-30 12:36

大大動作好快,2.13.9這麼快就實做出來了,感謝分享

jam741 發表於 17-11-30 14:01

感謝 alexliou 大大分享
該認真學C# 了

alexliou 發表於 17-11-30 16:14

kuolung 發表於 17-11-30 15:55
在 win 10 中,用 vs 2017 改為 x64 版,重新編譯後,可以執行,但是收不到 報價
看到下面的訊息是連線成功 ...

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

alexliou 發表於 17-11-30 16:21

本帖最後由 alexliou 於 17-11-30 16:24 編輯

alexliou 發表於 17-11-30 16:14
報價連線並沒有亮綠燈
表示並未連線報價server
取得帳號資訊後
應該還要出現回報連線成功報價連線成功
這些訊息才對








cukie 發表於 17-11-30 19:00

太強了 感謝{:4_151:}

pazival01 發表於 17-11-30 23:04

2.13.5版跟2.13.7板我都有買, 程式真的蠻簡潔的, 不錯用

對會用C#的很好修改. thanks.

wujack 發表於 17-12-1 13:49

好貴呀。新人慢慢賺錢

alexliou 發表於 17-12-1 21:11

kuolung 發表於 17-12-1 19:33
附上元件 x64 32 都有

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

其它有download的網友, 有出現同樣情形的嗎?

alexliou 發表於 17-12-2 10:15

kuolung 發表於 17-12-2 09:11
可能是沒有安裝 下單的憑證 我測試的電腦沒下單 所以沒憑證

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


clif 發表於 17-12-4 08:51

感謝改版與分享....

weigpx 發表於 17-12-23 21:44

好厲害喔,謝謝分享

alexliou 發表於 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, ...

有這方面經驗的大大, 要不要來指點一下?

rainlala 發表於 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檔


alexliou 發表於 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來作為中介而非直接連上主機

頁: [1] 2 3 4 5 6 7 8
查看完整版本: 群益 API 2.13.9 C# 實作