Пример #1
0
    # set trade date
    tradeDate = tradeDate.strftime('%Y-%m-%d')
    print(tradeDate)

    # get first/last row
    df_start_date = temp_raw_df.Date[0]
    lastRow = temp_raw_df.shape[0]
    df_end_date = temp_raw_df.Date[lastRow-1]
    
    feat_df = dSet.set_date_range(temp_raw_df, df_start_date, df_end_date)
    # Resolve any NA's for now
    feat_df.fillna(method='ffill', inplace=True)
    
    #set beLong level
    beLongThreshold = 0.000
    feat_df = ct.setTarget(temp_raw_df, "Long", beLongThreshold)

    # Adding features with new day
    input_dict = sysUtil.get_dict(system_directory, 'input_dict')
    feat_df = featureGen.generate_features(feat_df, input_dict)
    feat_df = transf.normalizer(feat_df, 'Volume', 50)
    
    col_vals = [k for k,v in feature_dict.items() if v == 'Drop']
    to_drop = ['Open','High','Low', 'gainAhead', 'Close', 'Volume', 'AdjClose', 'beLong']
    for x in to_drop:
        col_vals.append(x)
    model_data = dSet.drop_columns(feat_df, col_vals)
    
    # Retrieve model
    best_model_name = "SVM"
    best_model_segment = "segment-0"
    isOosDates = timeUtil.is_oos_data_split(issue, pivotDate, is_oos_ratio,
                                            oos_months, segments)
    dataLoadStartDate = isOosDates[0]
    is_start_date = isOosDates[1]
    oos_start_date = isOosDates[2]
    is_months = isOosDates[3]
    is_end_date = isOosDates[4]
    oos_end_date = isOosDates[5]

    #load data
    dataSet = dSet.read_issue_data(issue)
    dataSet = dSet.set_date_range(dataSet, dataLoadStartDate, pivotDate)

    #set beLong level
    beLongThreshold = 0.0
    dataSet = ct.setTarget(dataSet, "Long", beLongThreshold)

    #    def stationarity_tests(s_df, signal, issue):
    #        print("=============================================================")
    #        adf_test(s_df, signal, issue)
    #        hurst_setup(s_df[signal][:], issue)
    #        print("========================================")

    for i in range(segments):
        modelData = dSet.set_date_range(dataSet, is_start_date, is_end_date)
        print("\n\n\nIN SAMPLE")
        # Stationarity tests
        stationarity_tests(modelData, 'Close', issue)
        stationarity_tests(modelData, 'beLong', issue)
        #print_beLongs(modelData)
        if doPlot:
    print(new_data_df.tail(2))

    # get first row
    df_start_date = new_data_df.Date[0]

    # get last row
    lastRow = new_data_df.shape[0]
    df_end_date = new_data_df.Date[lastRow - 1]

    feat_df = dSet.set_date_range(new_data_df, df_start_date, df_end_date)
    # Resolve any NA's for now
    feat_df.fillna(method='ffill', inplace=True)

    #set beLong level
    beLongThreshold = 0.000
    feat_df = ct.setTarget(new_data_df, "Long", beLongThreshold)

    print(feat_df.tail(2))

    # Adding features with new day
    input_dict = sysUtil.get_dict(system_directory, 'input_dict')

    feat_df = featureGen.generate_features(feat_df, input_dict)
    feat_df = transf.normalizer(feat_df, 'Volume', 50)

    col_vals = [k for k, v in feature_dict.items() if v == 'Drop']
    to_drop = [
        'Open', 'High', 'Low', 'gainAhead', 'Close', 'Volume', 'AdjClose',
        'beLong'
    ]
    for x in to_drop: