def runSimpleParallel(): start = datetime.now() print( "run simple | start: %s -------------------------------------------" % start) setConfig() optimize.runParallel() #并行优化,返回回测结果 report = optimize.runParallel() report.sort_values(by='sharpeRatio', ascending=False, inplace=True) # 将结果保存成csv report.to_csv('opt_RB88.csv') end = datetime.now() print("run simple | end: %s | expire: %s -----------------------------" % (end, end - start))
def runMemoryParallel(pardir=None, cache=False, test_run=None): settings = import_setting(pardir) start = datetime.now() print("run memory | start: %s -------------------------------------------" % start) pre_params = {} folder_name = os.path.join(os.getcwd(),"opt_result",datetime.now().strftime('%y%m%d%H%M%S')) if not os.path.isdir(folder_name): os.makedirs(folder_name) for idx, setting in enumerate(settings["OPT_TASK"]): for method, params in setting.items(): params.update(pre_params) root = f"opt_memory_{idx}" if cache else None setConfig(params, root,settings["STRATEGYCLASS"],settings["ENGINESETTING"]) report = optimize.runParallel() if settings["OPT_TARGET"] in report.columns: report.sort_values(by = settings["OPT_TARGET"], ascending=False, inplace=True) report.to_csv(f"{folder_name}/opt_{idx}_{method}.csv") func = STR_FUNC_PAIR[method] for param_name in params: pick = func(report, param_name) pre_params.update({param_name: [pick]}) end = datetime.now() print("run memory | end: %s | expire: %s -----------------------------" % (end, end - start))
def runMemoryParallel(self, cpu_counts=None): start = datetime.now() print( "run memory | start: %s -------------------------------------------" % start) pre_params = {} for idx, setting in enumerate(self.optTask): for method, params in setting.items(): params.update(pre_params) # self.initOptimize(params, f"opt_memory_{idx}") self.initOptimize(params) report = optimize.runParallel(process=cpu_counts) report.sort_values(by=self.optTarget, ascending=False, inplace=True) # 保存路径设置 report = self.savePerformance(report, method, idx, start) # 选取最优参数进行下一次优化 pickDict = self.optFunc(method, report, params) pre_params.update(pickDict) end = datetime.now() print( "run memory | end: %s | expire: %s -----------------------------" % (end, end - start))
def runMemoryParallel(): start = datetime.now() print("run memory | start: %s " % start) setConfig("OptMemo_{0}".format(symbolName[:symbolName.find(':')])) report = optimize.runParallel() print(report) end = datetime.now() print("run memory | end: %s | expire: %s " % (end, end - start))
def runSimpleParallel(): start = datetime.now() fprint("run simple | start: %s " % start) setConfig() report = optimize.runParallel() print(report) end = datetime.now() fprint("run simple | end: %s | expire: %s " % (end, end - start))
def runMemoryParallel(): start = datetime.now() fprint("run memory | start: %s " % start) setConfig("test-memory-parallel") report = optimize.runParallel() print(report) end = datetime.now() fprint("run memory | end: %s | expire: %s " % (end, end - start))
def runSimpleParallel(): start = datetime.now() print( "run simple | start: %s -------------------------------------------" % start) setConfig() # optimize.runParallel() 并行优化,返回回测结果 report = optimize.runParallel() print(report) report.sort_values(by='sharpeRatio', ascending=False, inplace=True) # 将结果保存成csv file_name = 'opt-' + start.strftime("%m-%d-%H-%M") + '.csv' report.to_csv(file_name) # 记录保存在一个与开始时间关联的csv文件 # report.to_csv('opt_IF88.csv') # 这一行的问题是,csv文件如果没关闭,整个优化结果都会丢失 end = datetime.now() print("run simple | end: %s | expire: %s -----------------------------" % (end, end - start))