def OnTimer(context, timerid) :

if timerid == timer_order : # 如果触发卖开认沽委托订单定时器 iIsOrderRejected = False # 是否是废单判断 iIsCanCancel = False # 是否可撤 status_list = GetOrderStatus(g.order_SKPut_table, g.UID_SKPut) # 委托订单状态列表 if 33 in status_list : # 判断是否是废单 iIsOrderRejected = True # 是废单 else : iIsOrderRejected = False # 不是废单 if (33 not in status_list) and (32 not in status_list) : # 判断是否是可撤单 iIsCanCancel = True # 是可撤单 else : iIsCanCancel = False # 不是可撤单 if g.traded_SKPut_volumesum < g.lot : # 如果委托订单没有全部成交 if iIsOrderRejected == False : # 如果之前的卖开认沽委托订单是废单,则重新下单 g.UID_SKPut = QuickInsertOrder(context.myacc, \ g.code_put, 'sell', 'open', g.open_price_type, g.lot) # 如果不是废单 elif iIsCanCancel == True : # 同时是可撤单,则撤单成功后重新发送委托单 g.UID_SKPut_CO = context.myacc.CancelOrder(context.myacc.GetOrder(g.UID_SKPut)) # 撤单 if g.UID_SKPut_CO == True : # 如果撤单成功,则重新下达委托订单 g.UID_SKPut = QuickInsertOrder(context.myacc, \ g.code_put, 'sell', 'open', g.open_price_type, g.lot) else : # 如果委托订单全部成交 KillTimer(timer_order) # 销毁定时器