作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,首先,我能够使用 TWS API 成功下单。然而,据我所知,为此我需要在后台运行 TWS 桌面版。但我需要在我的远程服务器上运行它。所以我用了 3rd party API called IBeam并在远程服务器中使用它创建了一个网关。现在它运行良好,可以处理我从 Interactive Brokers 请求的 GET 请求。
现在,我想在 Interactive Broker 中下订单,使用 API 请求并找到 this doc通过 IB。但是,对我来说,我不清楚每个参数的含义,所以到现在为止我都被困住了。即,从文档中,我需要使用请求正文将 POST 请求发送到 https://localhost:5000/v1/api/iserver/account/{accountId}/orders(IB 网关在 localhost:5000 中运行)
{
"orders": [
{
"acctId": "string",
"conid": 0,
"secType": "secType = 265598:STK",
"cOID": "string",
"parentId": "string",
"orderType": "string",
"listingExchange": "string",
"isSingleGroup": true,
"outsideRTH": true,
"price": 0,
"auxPrice": null,
"side": "string",
"ticker": "string",
"tif": "string",
"referrer": "QuickTrade",
"quantity": 0,
"fxQty": 0,
"useAdaptive": true,
"isCcyConv": true,
"allocationMethod": "string",
"strategy": "string",
"strategyParameters": {}
}
]
}
根据我从 TWS API 了解到的信息,这是下订单所需的所有信息:
contract = Contract()
contract.symbol = "AAPL"
contract.secType = "STK"
contract.exchange = "SMART"
contract.currency = "USD"
contract.primaryExchange = "NASDAQ"
order = Order()
order.action = "BUY"
order.totalQuantity = 10
order.orderType = "MKT"
如果你能帮我提供一个示例代码来使用 Ineteractive Broker 的 REST API 下类似的订单,那就太好了
最佳答案
我找到了 this article有助于下订单。
即,这是您可以用来下订单的示例请求
{
"orders": [
{
"acctId": "DU4299134",
"conid": 8314,
"secType": "8314:STK",
"cOId": "testAlgoOrder",
"orderType": "LMT",
"price": 142,
"side": "BUY",
"tif": "DAY",
"quantity": 1,
"strategy": "Adaptive",
"strategyParameters": {"adaptivePriority": "Normal" }
}
]
}
您可以使用这些 URL 来查找有关策略的更多信息,
url = f"https://localhost:5000/v1/api/iserver/contract/{conid}/algos"
url_more_info = f"https://localhost:5000/v1/api/iserver/contract/{conid}/algos?addDescription=1&addParams=1&algos={algos}"
此外,当您像上面那样下订单时,IBKR 会要求您确认订单,您可以通过以下方式确认
url = f"https://localhost:5000/v1/api/iserver/reply/{replyid}"
data = '''{
"confirmed": true
}'''
response = requests.post(url, data=data, headers=headers, verify='path to .pem file')
请注意,如前所述here,您在向IBKR发送POST请求时必须使用正确的 header 。 .
关于python - 使用 API 请求在盈透证券下订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69005509/
我是一名优秀的程序员,十分优秀!