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

我用的是5分钟的k线进行回测发现的一些问题

大概描述下: 比如我现在已经有多单一手,当时间在9:10 的时候满足我平仓的条件,触发平仓,但是没有成交。然后在9:15 又触发我另外一个平仓条件,但是也是没有立刻成交。 在9:20 分的时候,我在on_trade 函数下看到打印的两个成交记录。此时self.pos 变成了-1。 这个是不是有问题啊?

第一,我没有下空单, 第二 即使我平仓了两次,但是第二次平仓应该是在我第一次平仓后看下当前的仓位,没有仓位,硬生生的减了1.

求高人指点下

Member
avatar
加入于:
帖子: 716
声望: 63

在回测时使用self.pos来管理仓位的,采用净仓位模式来近似。在实盘则采用的是交易所的规则。所以在两次平仓后仓位就为-1了。在策略中每次收到5分钟k线回报时,首先应该先cancel_all(),把所有未成交的订单全部撤掉,然后再进行下一轮的操作,这样就不会在9:20时成交9:10的订单了。

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

郭易燔 wrote:

在回测时使用self.pos来管理仓位的,采用净仓位模式来近似。在实盘则采用的是交易所的规则。所以在两次平仓后仓位就为-1了。在策略中每次收到5分钟k线回报时,首先应该先cancel_all(),把所有未成交的订单全部撤掉,然后再进行下一轮的操作,这样就不会在9:20时成交9:10的订单了。

也就是说,实盘不会有问题。会报一个仓位不足,回测的时候,当根k线没有成交,就取消order。 但是有新问题?比如我下单之后,就是允许等上15分钟,如果15分钟内没成交的话,就会有别的平仓指令并存的情况。

Member
avatar
加入于:
帖子: 716
声望: 63

下单后会返回orderid,可以用这个订单号来指定订单进行撤单。可以考虑写个计数器,以五分钟k线等15分钟的话就是计算3次的时候撤指定的单。

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

好的

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

沪公网安备 31011502017034号

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