如何使用交互式经纪商的API关闭公开交易



所有

我正在尝试使用交互式代理API 编写一些代码

我使用交互式经纪人的API打开了一个交易,现在让我们说,在它盈利后,我想出售它

我需要用Python编写哪些代码才能卖出空仓。并不是在它的位置上再开一个头寸,但我强调——卖出未平仓的头寸。

我的代码如下:

def make_order(self):
# create a contract for the ES futures
contract = Future(symbol='ES', exchange='CME', currency='USD', lastTradeDateOrContractMonth='202303')
# place a market order to buy or sell contract of ES
order = MarketOrder(action=self.position, totalQuantity=1)
trade = self.ib.placeOrder(contract, order)
print(trade.orderStatus.status)
return order

**

  • 然后我这样调用这个函数:

**

contract = InteractiveAPI(ib, duration, interval, position, stop_price_fake)
order_trade = contract.make_order()
ib.closeTrade(order_trade)  # **This line doesn't work**

如果有人知道如何修复代码中的最后一行,我将不胜感激。

非常感谢大家。

解决方案只是朝着相反的方向开一笔新交易,这就是销售的方式。

例如,如果一开始我购买(BUY),然后再出售,我们将执行如下代码所示的sell命令。

contract = InteractiveAPI(ib, duration, interval, 'SELL')
contract.make_order()  # Sell the trade

如果你想使用交易而不是头寸的概念,那么你必须每天在内部跟踪执行情况(reqExecutions)。除此之外,IB只知道职位。通过orderRef实现分离策略。

最新更新