vn.py官网
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 84
声望: 1

调试能看到,开仓了14手,平仓了14手,但是后面还是不停收到平仓的消息,可能是什么问题?
下面是打印出来的trade消息,同一个时间的平仓消息不停的接收到。
datetime,orderid,tradeid,direction,offset,price,volume
2010-06-07 11:25:00+08:06,1,1,Direction.SHORT,Offset.OPEN,4020.4,14.0
2010-07-16 09:00:00+08:06,2,2,Direction.LONG,Offset.CLOSE,4063.4,14.0
2010-07-16 09:00:00+08:06,3,3,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,4,4,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,5,5,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,6,6,Direction.LONG,Offset.CLOSE,4058.0,14.0

Member
avatar
加入于:
帖子: 2748
声望: 189
  1. 建议先升级到最新版;
  2. 不知道具体打印语句和策略逻辑,请问是在on_trade下打印的吗?
Member
avatar
加入于:
帖子: 84
声望: 1

问题比较奇怪,我是跑的日线策略,之前小时,15分钟策略都没有这个问题,不知道是不是这个原因。

我是在on_trade里面打印的。

Member
avatar
加入于:
帖子: 84
声望: 1

我查看了一下这里的K线,有一个隔日跳空。就是说价格跳过了之前的止损线,后面的那些重复的平仓单,是不是追单导致的啊?算不算是一个bug

Member
avatar
加入于:
帖子: 84
声望: 1

这种情况重复出现,下面的7.16号,11,17号都出现了。这应该和策略没关系吧
datetime,orderid,tradeid,direction,offset,price,volume
2010-06-07 11:25:00+08:06,1,1,Direction.SHORT,Offset.OPEN,4020.4,14.0
2010-07-16 09:00:00+08:06,2,2,Direction.LONG,Offset.CLOSE,4063.4,14.0
2010-07-16 09:00:00+08:06,3,3,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,4,4,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,5,5,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-16 09:00:00+08:06,6,6,Direction.LONG,Offset.CLOSE,4058.0,14.0
2010-07-20 13:35:00+08:06,7,7,Direction.LONG,Offset.OPEN,4185.6,31.0
2010-08-23 09:15:00+08:06,8,8,Direction.SHORT,Offset.CLOSE,4273.6,31.0
2010-08-23 09:25:00+08:06,9,9,Direction.SHORT,Offset.CLOSE,4258.0,31.0
2010-09-06 09:00:00+08:06,10,10,Direction.LONG,Offset.OPEN,4471.0,56.0
2010-09-09 09:25:00+08:06,11,11,Direction.SHORT,Offset.CLOSE,4350.8,56.0
2010-11-05 09:00:00+08:06,12,12,Direction.LONG,Offset.OPEN,4650.0,22.0
2010-11-17 09:00:00+08:06,13,13,Direction.SHORT,Offset.CLOSE,4512.2,22.0
2010-11-17 09:00:00+08:06,14,14,Direction.SHORT,Offset.CLOSE,4526.4,22.0
2010-11-17 09:00:00+08:06,15,15,Direction.SHORT,Offset.CLOSE,4529.0,22.0
2010-11-17 09:00:00+08:06,16,16,Direction.SHORT,Offset.CLOSE,4529.0,22.0
2010-12-20 09:00:00+08:06,17,17,Direction.LONG,Offset.OPEN,4819.0,40.0
2010-12-27 09:00:00+08:06,18,18,Direction.SHORT,Offset.CLOSE,4722.4,40.0
2011-01-10 09:05:00+08:06,19,19,Direction.LONG,Offset.OPEN,4840.0,69.0
2011-02-21 09:00:00+08:06,20,20,Direction.SHORT,Offset.CLOSE,4974.0,69.0
2011-03-02 09:10:00+08:06,21,21,Direction.SHORT,Offset.OPEN,4800.4,25.0
2011-03-29 10:55:00+08:06,22,22,Direction.LONG,Offset.CLOSE,4800.8,25.0
2011-03-29 11:00:00+08:06,23,23,Direction.LONG,Offset.CLOSE,4808.8,25.0
2011-03-29 11:25:00+08:06,24,24,Direction.LONG,Offset.CLOSE,4819.8,25.0
2011-04-08 11:10:00+08:06,25,25,Direction.LONG,Offset.OPEN,4903.6,38.0

Member
avatar
加入于:
帖子: 2748
声望: 189

止损和追单行为不就是写在策略里的吗?
不清楚具体打印语句和策略逻辑,可能还是要自己对应策略和行情排查了。
同一时间出现重复的追单指令很有可能就是策略逻辑的问题,比如说示例策略里的逻辑,仓位为0时,空信号做空。成交以后,策略仓位小于0,满足止损条件时,下多单平仓(正常情况下,该根K线只推送一次,那只可能平这一次)。如果交易逻辑于示例策略不同,那还是请自行排查一下。

Member
avatar
加入于:
帖子: 84
声望: 1

是的,开仓已经平仓是写在策略里面的,在on_trade和on_bar函数里面。逻辑上应该是没问题的,调试了半天,没找到原因。

Member
avatar
加入于:
帖子: 84
声望: 1

我在template下面这个send_order函数上设置断点,在策略的on_order和on_trade上也设置了断点,,奇怪的是send_order程序没有跑到这里,但是on_order上不停的收到好几个止损的挂单,说明不是我的策略发出的挂止损单的信号。不知道是哪里发出来的?
def send_order(
self,
direction: Direction,
offset: Offset,
price: float,
volume: float,
stop: bool = False,
lock: bool = False
):
"""
Send a new order.
"""
if self.trading:
vt_orderids = self.cta_engine.send_order(
self, direction, offset, price, volume, stop, lock
)
return vt_orderids
else:
return []

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

沪公网安备 31011502017034号