修改策略显示模块,增加“强行初始化”。
This commit is contained in:
parent
00701b0f5e
commit
414e319529
@ -177,6 +177,33 @@ class CtaEngine(object):
|
|||||||
else:
|
else:
|
||||||
self.writeCtaLog(u'委托单({0}不存在'.format(vtOrderID))
|
self.writeCtaLog(u'委托单({0}不存在'.format(vtOrderID))
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
def cancelOrders(self, symbol, offset=EMPTY_STRING):
|
||||||
|
"""撤销所有单"""
|
||||||
|
# Symbol参数:指定合约的撤单;
|
||||||
|
# OFFSET参数:指定Offset的撤单,缺省不填写时,为所有
|
||||||
|
|
||||||
|
l = self.mainEngine.getAllWorkingOrders()
|
||||||
|
|
||||||
|
self.writeCtaLog(u'撤销所有订单,数量:{0}'.format(len(l)))
|
||||||
|
|
||||||
|
for order in l:
|
||||||
|
if offset == EMPTY_STRING:
|
||||||
|
offsetCond = True
|
||||||
|
else:
|
||||||
|
offsetCond = order.offset == offset
|
||||||
|
|
||||||
|
if order.symbol == symbol and offsetCond:
|
||||||
|
req = VtCancelOrderReq()
|
||||||
|
req.symbol = order.symbol
|
||||||
|
req.exchange = order.exchange
|
||||||
|
req.frontID = order.frontID
|
||||||
|
req.sessionID = order.sessionID
|
||||||
|
req.orderID = order.orderID
|
||||||
|
self.writeCtaLog(u'撤单:{0}/{1},{2}{3}手'
|
||||||
|
.format(order.symbol, order.orderID, order.offset, order.totalVolume-order.tradedVolume))
|
||||||
|
self.mainEngine.cancelOrder(req, order.gatewayName)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
def sendStopOrder(self, vtSymbol, orderType, price, volume, strategy):
|
def sendStopOrder(self, vtSymbol, orderType, price, volume, strategy):
|
||||||
"""发停止单(本地实现)"""
|
"""发停止单(本地实现)"""
|
||||||
@ -302,6 +329,8 @@ class CtaEngine(object):
|
|||||||
# 1.获取事件的Order数据
|
# 1.获取事件的Order数据
|
||||||
order = event.dict_['data']
|
order = event.dict_['data']
|
||||||
|
|
||||||
|
# order.vtOrderID 在gateway中,已经格式化为 gatewayName.vtOrderID
|
||||||
|
|
||||||
# 2.判断order是否在映射字典中
|
# 2.判断order是否在映射字典中
|
||||||
if order.vtOrderID in self.orderStrategyDict:
|
if order.vtOrderID in self.orderStrategyDict:
|
||||||
# 3.提取对应的策略
|
# 3.提取对应的策略
|
||||||
@ -478,13 +507,13 @@ class CtaEngine(object):
|
|||||||
self.writeCtaLog(u'%s的交易合约%s无法找到' %(name, strategy.vtSymbol))
|
self.writeCtaLog(u'%s的交易合约%s无法找到' %(name, strategy.vtSymbol))
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def initStrategy(self, name):
|
def initStrategy(self, name, force = False):
|
||||||
"""初始化策略"""
|
"""初始化策略"""
|
||||||
if name in self.strategyDict:
|
if name in self.strategyDict:
|
||||||
strategy = self.strategyDict[name]
|
strategy = self.strategyDict[name]
|
||||||
|
|
||||||
if not strategy.inited:
|
if not strategy.inited or force == True:
|
||||||
strategy.onInit()
|
strategy.onInit(force=force)
|
||||||
strategy.inited = True
|
strategy.inited = True
|
||||||
else:
|
else:
|
||||||
self.writeCtaLog(u'请勿重复初始化策略实例:%s' %name)
|
self.writeCtaLog(u'请勿重复初始化策略实例:%s' %name)
|
||||||
|
@ -88,14 +88,18 @@ class CtaStrategyManager(QtGui.QGroupBox):
|
|||||||
buttonInit = QtGui.QPushButton(u'初始化')
|
buttonInit = QtGui.QPushButton(u'初始化')
|
||||||
buttonStart = QtGui.QPushButton(u'启动')
|
buttonStart = QtGui.QPushButton(u'启动')
|
||||||
buttonStop = QtGui.QPushButton(u'停止')
|
buttonStop = QtGui.QPushButton(u'停止')
|
||||||
|
buttonInitForce = QtGui.QPushButton(u'强制初始化')
|
||||||
buttonInit.clicked.connect(self.init)
|
buttonInit.clicked.connect(self.init)
|
||||||
buttonStart.clicked.connect(self.start)
|
buttonStart.clicked.connect(self.start)
|
||||||
buttonStop.clicked.connect(self.stop)
|
buttonStop.clicked.connect(self.stop)
|
||||||
|
buttonInitForce.clicked.connect(self.initForce)
|
||||||
|
|
||||||
hbox1 = QtGui.QHBoxLayout()
|
hbox1 = QtGui.QHBoxLayout()
|
||||||
hbox1.addWidget(buttonInit)
|
hbox1.addWidget(buttonInit)
|
||||||
hbox1.addWidget(buttonStart)
|
hbox1.addWidget(buttonStart)
|
||||||
hbox1.addWidget(buttonStop)
|
hbox1.addWidget(buttonStop)
|
||||||
|
hbox1.addWidget(buttonInitForce)
|
||||||
|
|
||||||
hbox1.addStretch()
|
hbox1.addStretch()
|
||||||
|
|
||||||
hbox2 = QtGui.QHBoxLayout()
|
hbox2 = QtGui.QHBoxLayout()
|
||||||
@ -133,6 +137,11 @@ class CtaStrategyManager(QtGui.QGroupBox):
|
|||||||
"""初始化策略"""
|
"""初始化策略"""
|
||||||
self.ctaEngine.initStrategy(self.name)
|
self.ctaEngine.initStrategy(self.name)
|
||||||
|
|
||||||
|
def initForce(self):
|
||||||
|
|
||||||
|
"""强制初始化策略"""
|
||||||
|
self.ctaEngine.initStrategy(self.name,force = True)
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def start(self):
|
def start(self):
|
||||||
"""启动策略"""
|
"""启动策略"""
|
||||||
|
Loading…
Reference in New Issue
Block a user