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

第一次使用TargetPosTemplate来处理开平仓,使用tick数据,策略类继承了TargetPosTemplate,并按注释要求在onTick回调函数里面加了super(GridStrategy, self).onTick(tick),策略可以跑起来,但导出回测记录,却只有开仓记录没有平仓记录,目标仓位为0系统是通过开反向仓位实现的。请问是哪个地方出了问题呀?

class GridInDayMStrategy(TargetPosTemplate):
...
def init(self, ctaEngine, setting):
"""Constructor"""
super(GridInDayMStrategy, self).init(ctaEngine, setting)
...
def onTick(self, tick):
super(GridStrategy, self).onTick(tick)
...
self.setTargetPos( self.fixedSize)

Administrator
avatar
加入于:
帖子: 4028
声望: 221

TargetPosTemplate是给分钟级别以上的K线类策略用的,并不适合tick级别的策略。

主要原因是策略的委托状态机维护,依赖于委托数据的推送,而行情推送的频率如果高于委托数据推送,就可能导致状态异常,所以分钟级别OK。

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

谢谢,那我还是基于原模版写代码好了

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