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不熟,無聊小小測試一下...
|