vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 187
声望: 39

再也不用担心重复下单啦,😁😁😁

只提供下单细粒度控制相关的代码

from vnpy.app.cta_strategy.base import StopOrderStatus
    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        self.long_stop_orderids = []       #多开活动停止单ID列表
    #------------------------------------------------------------------------------------
    def on_tick(self, tick: TickData):
        #提供多开下单基于委托ID的细粒度控制,其他方向下单相似
        if not self.pos:
            if not self.long_stop_orderids :
                stop_orderid= self.buy(tick.last_price,self.fixed_size,True)
                if stop_orderid:
                    self.long_stop_orderids.extend(stop_orderid)
    #------------------------------------------------------------------------------------
    def on_stop_order(self, stop_order: StopOrder):
        """
        收到停止单回报
        """
        #委托列表删除停止单ID
        if stop_order.status != StopOrderStatus.WAITING:
            if stop_order.stop_orderid in self.long_stop_orderids:
                self.long_stop_orderids .remove(stop_order.stop_orderid)
Member
avatar
加入于:
帖子: 25
声望: 1

留个爪,mark一下

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

上弦之月 wrote:

再也不用担心重复下单啦,😁😁😁

只提供下单细粒度控制相关的代码

from vnpy.app.cta_strategy.base import StopOrderStatus
    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        self.long_stop_orderids = []       #多开活动停止单ID列表
    #------------------------------------------------------------------------------------
    def on_tick(self, tick: TickData):
        #提供多开下单基于委托ID的细粒度控制,其他方向下单相似
        if not self.pos:
            if not self.long_stop_orderids :
                stop_orderid= self.buy(tick.last_price,self.fixed_size,True)
                if stop_orderid:
                    self.long_stop_orderids.extend(stop_orderid)
    #------------------------------------------------------------------------------------
    def on_stop_order(self, stop_order: StopOrder):
        """
        收到停止单回报
        """
        #委托列表删除停止单ID
        if stop_order.status != StopOrderStatus.WAITING:
            if stop_order.stop_orderid in self.long_stop_orderids:
                self.long_stop_orderids .remove(stop_order.stop_orderid)

月总请问一下,为什么最后还有extend 一下呢? 当 self.long_stop_orderids 为空的时候,直接 令 self.long_stop_orderids = self.buy(tick.last_price,self.fixed_size,True) 不可以吗?

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

沪公网安备 31011502017034号