コード例 #1
0
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')
コード例 #2
0
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')
コード例 #3
0
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')
コード例 #4
0
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')
コード例 #5
0
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!')
コード例 #6
0
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!')
コード例 #7
0
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')
コード例 #8
0
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!')
コード例 #9
0
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!')
コード例 #10
0
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!')
コード例 #11
0
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!')
コード例 #12
0
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!')
コード例 #13
0
            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)
コード例 #14
0
    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'])