VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 11
声望: 0

在on_bar里,记录了order_id = self.buy(long_price, self.trade_amount1)
请问如何在on_trade的回调函数里,确定这个指定的order_id是否有完全成交?

Member
avatar
加入于:
帖子: 4868
声望: 292

on_order会收到委托回报,有status(委托状态)
如果非要在on_trade下判断,可以在on_order缓存order,在on_trade通过TradeData上的orderid去get_order查看委托状态

Member
avatar
加入于:
帖子: 11
声望: 0

xiaohe wrote:

on_order会收到委托回报,有status(委托状态)
如果非要在on_trade下判断,可以在on_order缓存order,在on_trade通过TradeData上的orderid去get_order查看委托状
哦对,是on_order下判断order_id是否成交才对
请问在on_order下,要怎么写status是否完全成交?我在论坛上没有找到案例

Member
avatar
加入于:
帖子: 11
声望: 0

我在on_order里这样写
if order.status == Status.ALLTRADED:
报错:
File "C:\Users\Administrator\strategies\Strategy_Short_term_delta.py", line 357, in on_order
if order.status == Status.ALLTRADED:
NameError: name 'status' is not defined

正确的写法应该是怎样?

Member
avatar
加入于:
帖子: 4868
声望: 292

没在策略头部加载Status类
from vnpy.trader.object import Status

Member
avatar
加入于:
帖子: 11
声望: 0

跑通了,谢谢老师

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】