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))
示例#2
0
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))
示例#4
0
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))
示例#5
0
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))
示例#6
0
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))
示例#7
0
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))