nes 發表於 17-12-28 16:29

API(TwsSocketClient.dll)可以連TWS或IB Gateway

連線時API先送出版本號開始,
這裏例舉到註冊行情,代碼有問題的狀況
(1)
API --> TWS : "46" (告知TWS目前API版本為 46)
API <-- TWS : "76" (TWS回應API版本為 76)

(2)
API --> TWS : "0" (API告知TWS使用ClientID 0)
API <-- TWS : "20171228 14:42:17 TST" (TWS回應API連線時間為 20171228 14:42:17 TST)
API <-- TWS : "15" - MANAGED_ACCTS
API <-- TWS : "1" - 版本 1
API <-- TWS : "DU229332" - accountsList為DU229332

API <-- TWS : "4" - ERR_MSG
API <-- TWS : "2" - 版本 2
API <-- TWS : "-1" - 訊息代碼(版本 2開始才有)
API <-- TWS : "2104" - errorCode 2104
API <-- TWS : "市場數據連接正常:usfuture"

API <-- TWS : "4" - ERR_MSG
API <-- TWS : "2" - 版本 2
API <-- TWS : "-1" - 訊息代碼 -1
API <-- TWS : "2104" - errorCode 2104
API <-- TWS : "市場數據連接正常:usfarm"

API <-- TWS : "4" - ERR_MSG
API <-- TWS : "2" - 版本 2
API <-- TWS : "-1" - 訊息代碼 -1
API <-- TWS : "2106" - errorCode 2106
API <-- TWS : "HMDS 數據連接正常:cashhmds

API <-- TWS : "" 市場數據訊息通知結束

(3)
API --> TWS : "1" REQ_MKT_DATA (API註冊行情)
API --> TWS : "8" 版本 8
API --> TWS : "1" tickerId 1
API --> TWS : "EUR.USD" symbol
API --> TWS : "CASH" secType
API --> TWS : "" expiry為空
API --> TWS : "0" strike
API --> TWS : "" right為空
API --> TWS : "0" multiplier (srv v15版以上)
API --> TWS : "IDEALPRO" exchange
API --> TWS : "EUR" primaryExchange (srv v14版以上)
API --> TWS : "USD" currency
API --> TWS : "" localSymbol (srv v2版以上)
API --> TWS : "0" underComp 0 - false, 1 - true
API --> TWS : "mdoff,100,101,104,105,106,107,165,221,225,233,236,258" genericTicks
API --> TWS : "0" snapshot 0 - false, 1 - true

API <-- TWS : "4" - ERR_MSG
API <-- TWS : "2" - 版本 2
API <-- TWS : "1" - 訊息代碼 1
API <-- TWS : "200" - errorCode 200
API <-- TWS : "#207區域的價值無效"

對TWS不熟,無聊小小測試一下...

alexliou 發表於 17-12-28 18:21

的確, 了解API Client 與 TWS 溝通的 Protocal 是撰寫這個fake TWS的第一步
MC 中的 IB Datafeed 就是一個API Client
下單的部分我還不敢確定

Wow, API的版本是46, 看來您用 IB API很久了呢

alexliou 發表於 17-12-29 13:00

kuolung 發表於 17-12-29 12:14
我也想幫忙,但是,我沒有 ib 的帳號

可以申請paper account沒有任何obligation

我前幾天申請了一個
正在研究中

IB API的網路資源還滿多的
official site 的documentation 也很清楚

alexliou 發表於 17-12-29 13:14

kuolung 發表於 17-12-29 12:14
我也想幫忙,但是,我沒有 ib 的帳號

這個工程和你要寫的Amibroker Data PlugIn 有點類似
看網路上的說明Amibroker有提供 Open API 讓你自己寫程式把資料灌進去
MC 也有API 但索費不貲 個人交易者幾乎不可能買來使用
所以只能從它內建的DataFeed provider 著手

alexliou 發表於 17-12-29 16:07

kuolung 發表於 17-12-29 13:55
Amibroker data pluging 我已經寫好了,用群益的 api 可以即時,也可以回補資料 ,
只是昨天,群益的 api ...

MC如果只是要吃資料的話
用它的Universal DDE就可以了
只是沒法回補或DDE可能緩或漏

alexliou 發表於 17-12-29 16:13

這樣的程式 我記得WLDTW2008大大寫過一個
叫IBSim我有試用過 可以收資料與下單

alexliou 發表於 18-1-2 16:26

kuolung 發表於 17-12-29 18:46
要 收資料
可回補
可下單


利用IB 的資料接口來作為Tick 級的DataPlugin 應該是不可行了
IB本身只提供5秒的RealTime Bar Data
MC 的IB 接口是利用估計法, 根據O-H-L-C的變化,把Bar分解為Tick, 也沒有成交量

ygh516 發表於 18-1-4 11:38

已購買,希望能夠快速學習使用哦

alexliou 發表於 18-1-5 10:15

本帖最後由 alexliou 於 18-1-5 11:10 編輯

alexliou 發表於 18-1-2 16:26
利用IB 的資料接口來作為Tick 級的DataPlugin 應該是不可行了
IB本身只提供5秒的RealTime Bar Data
MC 的 ...
仔細研究了TWS 的API Log 後
發現IB 也有傳送Tick級的資料
只是我用的是 paper account, 又沒訂閱付費資料所以有很多資料是看不見的

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

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

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

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

大大您好

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

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

alexliou 發表於 18-1-11 10:30

cory8249 發表於 18-1-10 21:24
大大您好

小弟非常欣賞你的作品與分享精神


你只要再得到2Coco就夠
不用浪費新台幣了

cory8249 發表於 18-1-12 22:38

本帖最後由 cory8249 於 18-1-12 22:43 編輯

alexliou 發表於 18-1-11 10:30
你只要再得到2Coco就夠
不用浪費新台幣了
有不認識的善心人士送我 100多金幣剛好夠錢買大大的程式了 {:4_82:}

我自己是有接報價,全部存到資料庫,分析完後輸出
目前想來寫下單機這塊,就可以結合自己的訊號餵給下單機
若有興趣也可以交流看看



j202036 發表於 18-1-17 12:11

請教一下台指 早盤 開盤 最高 最低 好像都是用包含夜盤的資料,有方式可以顯示早盤的資料就好,不考慮夜盤?謝謝。

justin121 發表於 18-1-17 23:48

大大好,有意購買,可惜金錢不足,要集非常久,請問是否有其他的購買方式,現金亦可,感恩
頁: 1 [2] 3 4 5 6 7 8
查看完整版本: 群益 API 2.13.9 C# 實作