python - IB API:检查是否在交易中或有未结订单
问题描述
在交互式经纪人 API 中,我如何检查是否已经有未平仓订单,或者我是否正在为 python 中的特定合约进行交易。网上好像找不到答案
非常感谢
解决方案
我相信只要您试图将未结订单打印在里面,我就找到了答案
openOrder() 函数直接取自文档
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.order import *
import threading
import time
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
def nextValidId(self, orderId):
self.nextValidId = orderId
self.start()
def start(self):
self.reqAllOpenOrders()
def openOrder(self, orderId, contract: Contract, order: Order,
orderState):
super().openOrder(orderId, contract, order, orderState)
print("OpenOrder. PermId: ", order.permId, "ClientId:", order.clientId, " OrderId:", orderId,
"Account:", order.account, "Symbol:", contract.symbol, "SecType:", contract.secType,
"Exchange:", contract.exchange, "Action:", order.action, "OrderType:", order.orderType,
"TotalQty:", order.totalQuantity, "CashQty:", order.cashQty,
"LmtPrice:", order.lmtPrice, "AuxPrice:", order.auxPrice, "Status:", orderState.status)
def run_loop():
app.run()
app = IBapi()
app.connect('127.0.0.1', 7497, 123)
# Start the socket in a thread
api_thread = threading.Thread(target=run_loop, daemon=True)
api_thread.start()
time.sleep(3)
app.disconnect()
推荐阅读
- python - 在 tensorflow/keras 中加载自定义数据集
- if-statement - 如何限制单元格中的最大值?
- javafx - (JavaFX) 如何根据输入的有效性更改文本字段中文本的颜色?
- python - 计算特定值在列中出现的次数
- optimization - 为什么我没有得到正确的答案
- handlebars.js - Handlbars - 我可以将某些助手限制在其他助手中吗?
- javascript - 我可以重新加载加载了 .load 的页面吗?
- r - 合并列,按值对齐,值不匹配时填充 NA
- actionscript-3 - 如何使用键盘单击有声音的按钮
- ruby-on-rails - 如何在 Ruby 中构建目录名称作为键和文件名作为值的哈希?