VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 38
声望: 2

请教写法,如果触发平仓,例如: sell(self.price, self.pos, stop=True)或者cover(self.price, self.pos, stop = True) 的话,并且交易成功了。那么这个条件如何掉用?

尝试过在on_trade下, 写

    if trade.offset == trade.offset.CLOSE:
        self.target_pos = 0

不知道这么写对不对,请教高人如何写。想达到的效果是 如果触发了平仓,那么........

原因是用target_pos的写法,但是target_pos有时候会部分成交,但是 系统中target_pos没用更新到最新仓位,导致部分平仓后,又把仓位加回去了。

或者有什么更高级的写法解决这个问题吗?

Member
avatar
加入于:
帖子: 5527
声望: 334

没理解你的意思,target_pos需要自己维护

Member
avatar
加入于:
帖子: 38
声望: 2

linhertz wrote:

请教写法,如果触发平仓,例如: sell(self.price, self.pos, stop=True)或者cover(self.price, self.pos, stop = True) 的话,并且交易成功了。那么这个条件如何掉用?

尝试过在on_trade下, 写

    if trade.offset == trade.offset.CLOSE:
        self.target_pos = 0


不知道这么写对不对,请教高人如何写。想达到的效果是 如果触发了平仓,那么........

原因是用target_pos的写法,但是target_pos有时候会部分成交,但是 系统中target_pos没用更新到最新仓位,导致部分平仓后,又把仓位加回去了。

或者有什么更高级的写法解决这个问题吗?

是要自己维护,我是想写,如果触发了平仓,那么target_pos = 0

这个如果触发了平仓,不知道咋写

Member
avatar
加入于:
帖子: 5527
声望: 334

CtaTemplate和TargetPosTemplate不是一个东西
本地停止单是在CtaTemplate里面调用的,CtaTemplate主动调用委托函数发出委托
TargetPosTemplate通过设定target_pos底层自动调用委托函数发出委托

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

沪公网安备 31011502017034号

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