如何通过盈透证券(Interactive Brokers) REST API提交交易下单请求
实现步骤及示例代码
首先你需要先确认两个必填前置信息:
- 你的IB账户ID(格式通常为U+数字,例如U1234567)
- 交易标的的合约ID(conid),美股AAPL的固定conid为265598,你也可以通过网关的证券搜索接口查询其他标的的conid。
你之前用TWS API提交的AAPL市价买单,对应REST API的Python示例代码如下:
import requests # 配置信息 ACCOUNT_ID = "你的IB账户ID" GATEWAY_BASE_URL = "https://localhost:5000/v1/api" # 关闭自签名证书警告 requests.packages.urllib3.disable_warnings() # 构造下单请求体 order_payload = { "orders": [ { "acctId": ACCOUNT_ID, "conid": 265598, # AAPL美股的合约ID "orderType": "MKT", # 市价单 "side": "BUY", # 买入方向 "quantity": 10, # 买入10股 "tif": "DAY", # 订单当日有效 "outsideRTH": False, # 不允许盘前盘后交易 "referrer": "QuickTrade" } ] } # 发起下单请求 response = requests.post( url=f"{GATEWAY_BASE_URL}/iserver/account/{ACCOUNT_ID}/orders", json=order_payload, verify=False # IBeam网关使用自签名证书,需要跳过校验 ) # 输出返回结果 print("响应状态码:", response.status_code) print("响应内容:", response.json())
关键参数对应说明
你之前TWS API的参数和REST API参数对应关系如下:
- TWS的合约相关参数(symbol、secType、exchange等)对应REST API的
conid:REST API无需单独传合约代码、交易类型、交易所等信息,只要传唯一的合约ID即可 order.action对应side:取值为BUY/SELL对应买入/卖出order.totalQuantity对应quantity:下单数量order.orderType对应orderType:订单类型,市价单填MKT,限价单填LMT即可
如果提交后返回需要确认订单的提示,调用订单确认接口提交确认即可完成下单。
内容的提问来源于stack exchange,提问作者Wenuka
相关产品推荐
相关产品推荐

