本文整理匯總了Python中EventEngine.DyEvent.data['paramGroupNo']方法的典型用法代碼示例。如果您正苦於以下問題:Python DyEvent.data['paramGroupNo']方法的具體用法?Python DyEvent.data['paramGroupNo']怎麽用?Python DyEvent.data['paramGroupNo']使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類EventEngine.DyEvent
的用法示例。
在下文中一共展示了DyEvent.data['paramGroupNo']方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _backTestingParamGroups
# 需要導入模塊: from EventEngine import DyEvent [as 別名]
# 或者: from EventEngine.DyEvent import data['paramGroupNo'] [as 別名]
def _backTestingParamGroups(self):
"""
類似於窗口推進方式回測參數組合
"""
if not (self._paramGroups or self._runningBackTestingParamGroups):
self._eventEngine.put(DyEvent(DyEventType.finish))
return True
while len(self._runningBackTestingParamGroups) < self._paramGroupNbr:
if not self._paramGroups:
break
self._paramGroupCount += 1
self._info.print("開始回測策略: {0}, 參數組合: {1}...".format(self._strategyCls.chName, self._paramGroupCount), DyLogData.ind)
""" 開始一個參數組合的回測 """
# pop one param group
param = self._paramGroups.pop(0)
# it's one new running paramGroup
self._runningBackTestingParamGroups[self._paramGroupCount] = []
# notify Ui to create new param group widget for strategy
event = DyEvent(DyEventType.newStockStrategyBackTestingParam)
event.data['class'] = self._strategyCls
event.data['param'] = {'groupNo': self._paramGroupCount, 'data': param}
self._eventEngine.put(event)
""" 開始一個參數組合的多個周期回測 """
# 分成@self._periodNbr個周期,通過子進程並行運行
stepSize = (len(self._tradeDays) + self._periodNbr - 1)//self._periodNbr
if stepSize == 0: return False
for i in range(0, len(self._tradeDays), stepSize):
# period
tradeDays_ = self._tradeDays[i:i + stepSize]
# notify Ui to create new period widget for strategy
event = DyEvent(DyEventType.newStockStrategyBackTestingPeriod)
event.data['class'] = self._strategyCls
event.data['paramGroupNo'] = self._paramGroupCount
event.data['period'] = [tradeDays_[0], tradeDays_[-1]]
self._eventEngine.put(event)
sleep(1) # !!!sleep so that UI windows can be created firstly.
# it's one new running period for one new paramGroup
self._runningBackTestingParamGroups[self._paramGroupCount].append(event.data['period'])
# create subprocess for processing each period
reqData = DyStockBackTestingStrategyReqData(self._strategyCls, tradeDays_, self._settings, param, self._testedStocks, self._paramGroupCount)
self._proxy.startBackTesting(reqData)
return True