当前位置: 首页 > 知识库问答 >
问题:

使用API请求在Interactive Brokers中下单

谢墨竹
2023-03-14

首先,首先,我成功地使用TWS应用编程接口下了订单。然而,据我所知,为此,我需要在后台运行TWS桌面版本。但是我需要在我的远程服务器上运行这个。所以我使用了一个名为IBeam的第三方应用编程接口,并在远程服务器上创建了一个使用它的网关。现在它运行良好,可以满足我从互动代理处请求的GET请求。

现在,我想在Interactive Broker中下一个订单,使用API请求,并通过IB找到了这个文档。然而,对于我来说,不清楚每个参数的含义,所以到目前为止,我仍然无法确定。也就是说,从文档中,我需要向https://localhost:5000/v1/api/iserver/account/{accountId}/orders(IB gateway在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的示例代码放置类似的订单,那将是非常好的

共有1个答案

鲁旭
2023-03-14

我发现这篇文章在下订单的过程中很有帮助。

也就是说,这是一个示例请求,您可以使用它下订单

{
  "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')

请注意,当您向IBKR发送POST请求时,必须使用正确的标题,如下所述。

 类似资料:
  • 我试图编写这段代码,通过一个api从openweathermap.org请求这些信息,并尝试打印当前时间的温度和位置。 大部分代码都是我在互联网上找到的一些技巧的混合。 现在我得到了这个错误,我被卡住了。有人能帮助我再次走上正确的道路吗? 这是我的密码: 所以url是这样的:http://api.openweathermap.org/data/2.5/weather?zip=3032,nl 我得到

  • 我正在用Spotify搜索API编程。为了在我的网页上显示结果,我使用PHP和JSON格式的API。

  • 问题内容: 请求是一个非常不错的库。我想用它来下载大文件。问题是不可能将整个文件保留在内存中,我需要分块读取它。这是以下代码的问题 由于某种原因,它无法按这种方式工作。仍将响应加载到内存中,然后再将其保存到文件中。 更新 如果你需要一个小型客户端,可以从FTP下载大文件,则可以在此处找到它。它支持多线程和重新连接(它确实监视连接),还可以为下载任务调整套接字参数。 问题答案: 使用以下流代码,无论

  • 在我的php文件中,我有以下内容来创建一个带有FPDF库的PDF: 但是请求是响应这个,而不是打开一个保存对话框来保存我的PDF。 %PDF-1.3 3 0 obj<>endobj 4 0 obj<>stream x 3 R@2π35 W(çR qπw 3 t04多30 pispéz*[(hx·ääää+çó)·(j*dé7 w endstream endobj 1 0 obj /xobject<

  • ps.似乎(line83)可以发出这个请求,但我不确定是否可以发出这个请求 Android SDK: https://github.com/paypal/paypal-android-sdk/blob/master/sampleapp-kotlin/src/main/java/com/paypal/example/paypalandroidsdkexample/sampleactivity.kt

  • 问题内容: 这是我的代码: 这使我可以访问csv文件。我尝试了其他方法来处理下载: 这将给csv文件一个字符串: 这将打印第一行并返回错误:_csv.Error:在未引用的字段中看到换行符 这将在每行中打印一个字母,并且不会打印出整个内容: 我的问题是:在这种情况下读取CSV文件的最有效方法是什么。以及如何下载。 谢谢 问题答案: 这应该有助于: 输出样本: 答案相关的问题: 使用此功能将csv加