3.97K 浏览
0

代码大致如下:

target_pos1 = TargetPosTask(api,"SHFE.au2102")
position1 = api.get_position("SHFE.au2102")
.....
if position1.pos_long == 0  and position1.pos_short == 0 and 开仓条件
	target_pos1.set_target_volue(-1)
原意是判断如果当前没有持仓的时候,再开空单,通过挂模拟盘发现,有时会出现持仓也开单的情况,如图所示

<img src="https://www.shinnytech.com/wp-content/uploads/anspress-temp/26d0757e98605b29dca8aa071c523e78fb833793_3754.png" />

从上面图中可以看到,开仓的时间分别是09.07 21:59:51    09.07 23:02:15    09.08 09:00:01  平仓是手动一起平的,时间:10:30:45

开仓时间间隔很远,不会是因为开单过快导致的。而且早上打印空单持仓量也能得到结果3
print("======当前多单持仓量=",position1.pos_long,"   空单持仓量=",position1.pos_short)
打印结果:
======当前多单持仓量= 0    空单持仓量= 3 

请问,是什么原因导致重复开单的,谢谢? 


ringo 已回答的问题 2020年9月8日
0

你的图挂了,看你程序有没有跨交易日重启,如果没重启的话是可能导致pos字段计算错误

ringo 发表新评论 2020年9月8日

跨交易日重启? 这要怎么理解? 是早盘前重启? 夜盘前重启? 还是过了24点重启? 我这边是一直挂着,没有重启过,有没有实现这种重启的方法? 指教下,谢谢。