我用的是1.4版本,一直用新版,这次穿透式监管也只是升级了ctpgateway。老版本大家都没碰到这种情况吗?
总是隔上十来次交易就来一次这种bug,这次是两个品种的self.pos同时出现多一倍的情况。没有全程人工盯盘,我一直没有抓住现场。就是ctpengine里的这点代码,怎么就出错呢?
def processTradeEvent(self, event):
"""处理成交推送"""
trade = event.dict_['data']
if trade.vtOrderID in self.orderStrategyDict:
strategy = self.orderStrategyDict[trade.vtOrderID]
# 计算策略持仓
if trade.direction == DIRECTION_LONG:
strategy.pos += trade.volume
else:
strategy.pos -= trade.volume
self.callStrategyFunc(strategy, strategy.onTrade, trade)
# 更新持仓缓存数据
if trade.vtSymbol in self.tickStrategyDict:
posBuffer = self.posBufferDict.get(trade.vtSymbol, None)
if not posBuffer:
posBuffer = PositionBuffer()
posBuffer.vtSymbol = trade.vtSymbol
self.posBufferDict[trade.vtSymbol] = posBuffer
posBuffer.updateTradeData(trade)
#----------------------------------------------------------------------
self.pos应该是在策略收到成交回报后才会更新,如果策略收到成交回报以后,发生onsession disconnected的状况,是不是恢复连接后策略会再收到一次成交回报导致self.pos增加一倍呢?
请问2.02版本里说“加回了对mongdodb数据库的支持”,那么在回测和交易时可以“选择”采用来自mongodb的数据吗?
之前花了很多精力让数据可以自动维护都是基于之前的mongdodb数据库,而且里面还有很多数据,一下子不能用了很麻烦。
已经用VNPY实盘两年多了,一直闭门造车,只关注测略算法方面,是vnpy的受益者,还在用着1.X的版本,一直还跑的不错。今天突然接到通知说要来看穿式监管,看了下期货公司的通知,好像要补充动态链接库来进行信息采集和认证等步骤。不知道交易员大佬们怎么处理这个问题呢?是(1)统一打补丁?还是(2)发一个开源补丁,让使用者以自编客户端身份自己去认证?不知道第一个选项,是不是需要交易员承担额外成本呢?这个选择对于将来vnpy的发展应该是更有利的。使用者成员也可以考虑进行适当的支持。
还有个问题,之前的维恩的派是不是不用了啊?好像之前的账户登不上去了。