def getmultiStlMonthParameter(strategyName, sltlist, symbolinfo, K_MIN, parasetlist, folderpath, startmonth, endmonth): colslist = mtf.getColumnsName(True) resultfilesuffix = ' result_multiSLT.csv' # 先生成参数列表 allSltSetList = [] # 这是一个二维的参数列表,每一个元素是一个止损目标的参数dic列表 for slt in sltlist: sltset = [] for t in slt['paralist']: sltset.append({'name': slt['name'], 'sltValue': t}) allSltSetList.append(sltset) finalSltSetList = [] # 二维数据,每个一元素是一个多个止损目标的参数dic组合 for sltpara in allSltSetList[0]: finalSltSetList.append([sltpara]) for i in range(1, len(allSltSetList)): tempset = allSltSetList[i] newset = [] for o in finalSltSetList: for t in tempset: newset.append(o + [t]) finalSltSetList = newset for sltset in finalSltSetList: newfolder = '' for sltp in sltset: newfolder += (sltp['name'] + '_%.3f' % (sltp['sltValue'])) rawdatapath = folderpath + newfolder + '\\' df = mtf.getMonthParameter(strategyName, startmonth, endmonth, symbolinfo, K_MIN, parasetlist, rawdatapath, colslist, resultfilesuffix) filenamehead = ("%s%s_%s_%d_%s_parameter_%s" % (rawdatapath, strategyName, symbolinfo.domain_symbol, K_MIN, endmonth, newfolder)) df.to_csv(filenamehead + '.csv')
def getfrslMonthParameter(strategyName,frsl_dic_list,symbolinfo, K_MIN, parasetlist, folderpath, startmonth, endmonth): colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultFRSL_by_tick.csv' for frsl_dic in frsl_dic_list: rawdatapath = folderpath + "FixRateStopLoss%s\\" % frsl_dic['para_name'] df = mtf.getMonthParameter(strategyName, startmonth, endmonth, symbolinfo, K_MIN, parasetlist, rawdatapath,colslist, resultfilesuffix) filenamehead = ("%s%s_%s_%d_%s_parameter_frsl_%s" % (rawdatapath, strategyName,symbolinfo.domain_symbol, K_MIN, endmonth, frsl_dic['para_name'])) df.to_csv(filenamehead + '.csv')
def getDslMonthParameter(strategyName,dslset,symbolinfo, K_MIN, parasetlist, folderpath, startmonth, endmonth): colslist = mtf.getColumnsName(True) resultfilesuffix = ' resultDSL_by_tick.csv' for dslTarget in dslset: rawdatapath = folderpath + "DynamicStopLoss%s\\" % dslTarget['para_name'] df = mtf.getMonthParameter(strategyName, startmonth, endmonth, symbolinfo, K_MIN, parasetlist, rawdatapath,colslist, resultfilesuffix) filenamehead = ("%s%s_%s_%d_%s_parameter_dsl_%s" % (rawdatapath,strategyName, symbolinfo.domain_symbol, K_MIN, endmonth,dslTarget['para_name'])) df.to_csv(filenamehead + '.csv')
def getownlMonthParameter(strategyName,ownlset,symbolinfo, K_MIN, parasetlist, folderpath, startmonth, endmonth): colslist = mtf.getColumnsName(True) resultfilesuffix = ' resultOWNL_by_tick.csv' for ownlTarget in ownlset: rawdatapath = folderpath + "OnceWinNoLoss%s\\" % ownlTarget['para_name'] df = mtf.getMonthParameter(strategyName, startmonth, endmonth, symbolinfo, K_MIN, parasetlist, rawdatapath,colslist, resultfilesuffix) filenamehead = ("%s%s_%s_%d_%s_parameter_ownl_%s" % (rawdatapath, strategyName,symbolinfo.domain_symbol, K_MIN, endmonth,ownlTarget['para_name'])) df.to_csv(filenamehead + '.csv')
def getownlForward(ownlset,symbol, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet): print ('OWNL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultOWNL_by_tick.csv' for ownlTarget in ownlset: rawdatapath = folderpath + "OnceWinNoLoss" + str(ownlTarget*1000) + '\\' getForward(symbol, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist,resultfilesuffix) print ('OWNL forward finished!')
def getDslForward(dslset,symbol, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet): print ('DSL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultDSL_by_tick.csv' for dslTarget in dslset: rawdatapath = folderpath + "DynamicStopLoss" + str(dslTarget * 1000) + '\\' getForward(symbol, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist,resultfilesuffix) print ('DSL forward finished!')
def getdsl_ownlMonthParameter(strategyName,dsl_ownl_list,symbolinfo, K_MIN, parasetlist, folderpath, startmonth, endmonth): colslist = mtf.getColumnsName(True) resultfilesuffix = ' result_dsl_ownl.csv' for dsl_ownl in dsl_ownl_list: newfolder = ("dsl_%.3f_ownl_%.3f\\" % (dsl_ownl[0], dsl_ownl[1])) rawdatapath = folderpath + newfolder # !!正常:'\\',双止损:填上'\\+双止损目标文件夹\\' df = mtf.getMonthParameter(strategyName, startmonth, endmonth, symbolinfo, K_MIN, parasetlist, rawdatapath,colslist, resultfilesuffix) filenamehead = ("%s%s_%s_%d_%s_parameter_dsl_%.3f_ownl_%.3f" % (rawdatapath,strategyName,symbolinfo.domain_symbol, K_MIN, endmonth,dsl_ownl[0], dsl_ownl[1])) df.to_csv(filenamehead + '.csv')
def getdsl_ownlForward(dsl_ownl_list,symbol, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet): print ('DSL_OWNL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'result_dsl_ownl.csv' for dsl_ownl in dsl_ownl_list: newfolder = ("dsl_%.3f_ownl_%.3f\\" % (dsl_ownl[0], dsl_ownl[1])) rawdatapath = folderpath + newfolder # !!正常:'\\',双止损:填上'\\+双止损目标文件夹\\' getForward(symbol, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist, resultfilesuffix) print ('DSL_OWNL forward finished!')
def getownlForward(strategyName, ownlset, symbolinfo, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet, result_para_dic): print('OWNL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultOWNL_by_tick.csv' indexcolsFlag = True for ownlTarget in ownlset: rawdatapath = folderpath + "OnceWinNoLoss%.1f\\" % (ownlTarget * 1000) getForward(strategyName, symbolinfo, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist, result_para_dic, indexcolsFlag, resultfilesuffix) print('OWNL forward finished!')
def getDslForward(strategyName, dslset, symbolinfo, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet, result_para_dic): print('DSL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultDSL_by_tick.csv' indexcolsFlag = True for dslTarget in dslset: rawdatapath = folderpath + "DynamicStopLoss%.1f\\" % (dslTarget * 1000) getForward(strategyName, symbolinfo, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist, result_para_dic, indexcolsFlag, resultfilesuffix) print('DSL forward finished!')
def gownl_forward(strategyName, para_dic_list, symbolinfo, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet, result_para_dic): print('GOWNL forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'resultGOWNL_by_tick.csv' indexcolsFlag = True for para_dic in para_dic_list: rawdatapath = folderpath + "GOWNL%s\\" % para_dic['para_name'] getForward(strategyName, symbolinfo, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist, result_para_dic, indexcolsFlag, resultfilesuffix) print('GOWNL forward finished!')
def getMultiSltForward(strategyName, sltlist, symbolinfo, K_MIN, parasetlist, folderpath, startdate, enddate, nextmonth, windowsSet, result_para_dic): ''' 混合止损推进 ''' print('multiSLT forward start!') colslist = mtf.getColumnsName(True) resultfilesuffix = 'result_multiSLT.csv' indexcolsFlag = True # 先生成参数列表 allSltSetList = [] # 这是一个二维的参数列表,每一个元素是一个止损目标的参数dic列表 for slt in sltlist: sltset = [] for t in slt['paralist']: sltset.append({ 'name': slt['name'], 'sltValue': t, # t是一个参数字典 'folder': ("%s%s\\" % (slt['folderPrefix'], t['para_name'])), 'fileSuffix': slt['fileSuffix'] }) allSltSetList.append(sltset) finalSltSetList = [] # 二维数据,每个一元素是一个多个止损目标的参数dic组合 for sltpara in allSltSetList[0]: finalSltSetList.append([sltpara]) for i in range(1, len(allSltSetList)): tempset = allSltSetList[i] newset = [] for o in finalSltSetList: for t in tempset: newset.append(o + [t]) finalSltSetList = newset print finalSltSetList for sltset in finalSltSetList: newfolder = '' for sltp in sltset: v = sltp['sltValue'] newfolder += "{}_{} ".format(sltp['name'], v["para_name"]) rawdatapath = folderpath + newfolder + '\\' print("multiSTL Target:%s" % newfolder) getForward(strategyName, symbolinfo, K_MIN, parasetlist, rawdatapath, startdate, enddate, nextmonth, windowsSet, colslist, result_para_dic, indexcolsFlag, resultfilesuffix) print('multiSTL forward finished!')
ownlStep = Parameter.ownlStep_forward winSwitchList = np.arange(Parameter.ownlTargetStart_forward, Parameter.ownltargetEnd_forward, ownlStep) sltlist.append({'name': 'ownl', 'paralist': winSwitchList}) if frsl: frslStep = Parameter.frslStep_forward fixRateList = np.arange(Parameter.frslTargetStart_forward, Parameter.frslTragetEnd_forward, frslStep) sltlist.append({'name': 'frsl', 'paralist': fixRateList}) getmultiStlMonthParameter(strategyName, sltlist, symbolinfo, K_MIN, parasetlist, folderpath, startmonth, newmonth) else: if commonForward: colslist = mtf.getColumnsName(False) resultfilesuffix = ' result.csv' df = mtf.getMonthParameter(strategyName, startmonth, newmonth, symbolinfo, K_MIN, parasetlist, foldername, colslist, resultfilesuffix) filenamehead = ( "%s_%s_%d_%s_parameter_common" % (strategyName, symbolinfo.domain_symbol, K_MIN, newmonth)) df.to_csv(filenamehead + '.csv') if dsl: dslStep = Parameter.dslStep_forward stoplossList = np.arange(Parameter.dslTargetStart_forward, Parameter.dslTargetEnd_forward, dslStep) getDslMonthParameter(strategyName, stoplossList, symbolinfo, K_MIN, parasetlist, folderpath, startmonth, newmonth)
ownl = False dslownl = False dslTarget = -0.022 ownlTarget = 0.009 #============================================================================================================= #newresult = True #!!正常:False,双止损:True if dsl: resultfilesuffix = 'resultDSL_by_tick.csv' # 前面不带空格,正常:result.csv,dsl:resultDSL_by_tick.csv,ownl:resultOWNL_by_tick.csv elif ownl: resultfilesuffix = 'resultOWNL_by_tick.csv' # 前面不带空格,正常:result.csv,dsl:resultDSL_by_tick.csv,ownl:resultOWNL_by_tick.csv elif dslownl: resultfilesuffix = 'result_dsl_ownl.csv' else: resultfilesuffix = 'result.csv' #monthlyretrsuffix = 'monthly_retr_new.csv' # 前面不带下划线,正常:monthly_retr.csv,双止损:monthly_retr_new.csv colslist = mtf.getColumnsName(dsl or ownl or dslownl) # ============================================文件路径======================================================== upperpath = DC.getUpperPath(uppernume=1) resultpath = upperpath + "\\Results\\" foldername = ' '.join( [exchange_id, sec_id, str(K_MIN_SAR), str(K_MIN_MACD)]) #rawdatapath = resultpath + foldername + '\\' parasetlist = pd.read_csv(resultpath + 'MACDParameterSet1.csv') setlist = pd.Series( [str(K_MIN_MACD) + ' '] * parasetlist.shape[0]) #因为HP的文件名跟LW不同,多了一个MACD的周期在前面,要处理一下 parasetlist['Setname'] = setlist.str.cat(parasetlist['Setname'])