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

1:使用如下代码,会存在重复发单的情况,可能是程序还未接收到成交回报,就再次发单了,如何避免这类情况呢?王老师指导,万分感激!

def on_tick(self, tick: TickData):

        self.cancel_all()
        self.bg_x.update_tick(tick)
        self.price = tick.last_price

        if self.pos > 0:
            if tick.last_price < self.long_stop:
                self.sell(tick.last_price*0.9, abs(self.pos))
                self.write_log(f"策略名称:15号策略  {tick.datetime}  多头平仓:{abs(self.pos)}手  {tick.last_price*0.9}  备注:保命出场")


        elif self.pos < 0:
            if tick.last_price > self.short_stop:
                self.cover(tick.last_price*1.2, abs(self.pos))
                self.write_log(f"策略名称:15号策略  {tick.datetime}  空头平仓:{abs(self.pos)}手  {tick.last_price*1.2}  备注:保命出场")
        self.put_event()
Member
avatar
加入于:
帖子: 4622
声望: 284

发单的话,只要满足你设定的条件就会发出。但是你平仓应该不会存在开一手平两手的,如果想降低发单次数可以改用停止单试试看。

Member
avatar
加入于:
帖子: 251
声望: 3

xiaohe wrote:

发单的话,只要满足你设定的条件就会发出。但是你平仓应该不会存在开一手平两手的,如果想降低发单次数可以改用停止单试试看。

老师您好,我交易的是外盘A50,外盘是净持仓制度,经测试,在平仓的时候,on_tick函数中,未收到on_trade成交回报,1秒钟内,反向开仓三十多手。

Member
avatar
加入于:
帖子: 4622
声望: 284

可参考此帖试试看

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

沪公网安备 31011502017034号

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