所有
我正在尝试使用交互式代理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实现分离策略。