Interactive Broker Python API 開發的Notes #4
返轉頭
20180329, 20180404, 20180530
關於contract同 Order
=================
首先要講下啲基本野,要落到一張單,除左價錢,買入定賣出,數量外,買乜都係其中一個必須既,而由於IB可以交易既品種實在太多太多,
肯定唔會話好似牛牛果啲咁比個number佢當symbol就搞掂,
EClient 個落單method placeOrder食三粒參數,id, Contract 同Order,id就係order id,呢度先講Contract。
如果啲廣告阻住晒,可以熄左佢:
Contract呢度係個Abstract Class 去代表交易合約,更準確來講,有啲平台會叫做instrument,所以去問TWS攞料,落單都要整個Contract Object掟過去,
要創建一個Contract Object本身好簡單,最基本元素就包括 symbol, security type, currency 仲有 exchange,
某啲instrument要多啲料,同埋個type亦有好多種,例如期權要包括到期日,股票期權既security type是OPT,而商品期貨的期權係「期貨期權」(意即期貨的期權),
type係FOP,仲有CFD果類外圍野既symbol可能唔清楚,
去查找一個contract object 所以用到的fields最直接方法係向TWS或者佢product search果度查。
IB本身都有解譯,不過佢無廣東話版本,用既例子亦唔夠本地化。
所以呢度用5仔同國指(國企指數期貨)講一次:
首先,就當果啲product已經加入左個monitor list,5仔可以打個5字選stock..., 而國指(大期)符號係 HHI.HK(就咁用HHI是找不到的)
向要查詢果隻野right click 會好多野出來,選Financial Instrument Info > Description
之後會彈出下面咁樣既Box:
如是者,5仔既Contract Object應該係咁:
contract = Contract()
contract.symbol = "5"
contract.secType = "STK"
contract.currency = "HKD"
contract.exchange = "SEHK"
-----------------------------------------------------------------
Contract就係得咁多野,跟住講Order。
一個簡單的Order都係無乜野的,其中action, orderType, totalQuantity, lmtPrice 呢四個必須,而transmit可以set True會直接送出去,
如果False會向TWS見到個order,但未發過去。
order = Order()
order.action = "BUY"
order.orderType = "LMT"
order.totalQuantity = 400
order.lmtPrice = 72.0
order.transmit = True
返轉頭