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

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

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

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
加入于:
帖子: 59
声望: 4

留个爪,mark一下

Member
avatar
加入于:
帖子: 58
声望: 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) 不可以吗?

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

StopOrderStatus.WAITING这个停止单状态一直报错,原vnpy有定义吗?还是需要写函数获取?

Member
avatar
加入于:
帖子: 5053
声望: 304

有,请问是不是升级了导致import不成功

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

xiaohe wrote:

有,请问是不是升级了导致import不成功

你好,使用最新的vntrader 导致判断 if stop_order.status == StopOrderStatus.TRIGGERED:
既不报错也不运行到下面的代码

description

import:

description

请问如何解决 ,谢谢!

Member
avatar
加入于:
帖子: 5053
声望: 304

可以改成剥离后的路径vnpy_ctastrategy.base试试看

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

沪公网安备 31011502017034号

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