Esempio n. 1
0
                                  )
    
    # Update shadow trades
    new_st_df = shadow_trades.append({'Date'     :tradeDate,
                                      'signal'   :y_validate[0],
                                      'gainAhead':0.000,
                                      'Close'    :feat_df.Close[lastRow-1]}
                                      ,ignore_index=True
                                      )
    
    new_st_df['gainAhead'] = ct.gainAhead(new_st_df.Close)
    
    # save updated shadow trades
    dSet.save_csv(system_directory,
                  system_name,
                  'OOS_Equity',
                  'dbd', 
                  new_st_df
                  )

    # Load TMS Part 1
    tms1 = dSet.read_csv(system_directory,
                         system_name,
                         'TMS_Part1',
                         'dbd'
                         )
    
    # Update TMS-Part 1 data with latest date
    sst = tms1.append({'Date'      :tradeDate,
                       'signal'    :y_validate[0],
                       'gainAhead' :0,
                       'Close'     :feat_df.Close[lastRow-1]}
            sst1.iloc[i - 1, sst1.columns.get_loc('maxEquity')])
        #sst1.drawdown[i] = (sst1.maxEquity[i]-sst1.equity[i]) / sst1.maxEquity[i]
        sst1.iloc[i, sst1.columns.get_loc('drawdown')] = (
            sst1.iloc[i, sst1.columns.get_loc('maxEquity')] -
            sst1.iloc[i, sst1.columns.get_loc('equity')]
        ) / sst1.iloc[i, sst1.columns.get_loc('maxEquity')]
        #sst1.maxDD[i] = max(sst1.drawdown[i],sst1.maxDD[i-1])
        sst1.iloc[i, sst1.columns.get_loc('maxDD')] = max(
            sst1.iloc[i, sst1.columns.get_loc('drawdown')],
            sst1.iloc[i - 1, sst1.columns.get_loc('maxDD')])

    # Show a few items
    print(sst1.tail(2))
    sst1.reset_index(level='Date', inplace=True)

    dSet.save_csv(system_directory, system_name, 'TMS_Part2', 'dbd', sst1)

    plot_tms = sst1.set_index(pd.DatetimeIndex(sst1['Date']))
    plot_tms = plot_tms.drop('Date', axis=1)

    # Plot the equity curve and drawdown
    plotIt.plot_equity_drawdown(issue, plot_tms)

    #    plot_tms = sst1.set_index(pd.DatetimeIndex(sst1['Date']))
    #    plot_tms=plot_tms.drop('Date', axis=1)
    #    plotTitle = "Equity curve for  " + issue
    #    plotIt.plot_v1(plot_tms['equity'][:-2], plotTitle)
    #    plotTitle = "Drawdown for  " + issue
    #    plotIt.plot_v1(plot_tms['drawdown'][:-2], plotTitle)
    #    plt.show()
Esempio n. 3
0
          'EndDate',
          'Model',
          'Rows',
          'beLongCount',
          'Features',
          'FeatureCount',
          'Train-Accuracy',
          'Train-Precision',
          'Train-RMC',
          'Train-RF',
          'Train-NPV',
          'Train-MCC',
          'Train-EV',
          'Test-Accuracy',
          'Test-Precision',
          'Test-RMC',
          'Test-RF',
          'Test-NPV',
          'Test-MCC',
          'Test-EV',
         ]]
 #print(df)
 
 # Save results
 dSet.save_csv(system_directory,
               system_name,
               'IS_Equity',
               'new', 
               df
               )
 
    print('Total value of Losses:  %.2f' % tradeLossesValue)
    #(Win % x Average Win Size) – (Loss % x Average Loss Size)
    print('Expectancy:  %.2f' %
          ((tradeWins / numberTrades) * (tradeWinsValue / tradeWins) -
           (tradeLosses / numberTrades) * (tradeLossesValue / tradeLosses)))
    print("Fixed trade size: ", fixedTradeDollars)

    # Sharpe ratio...probably not correct math
    #import math
    #print(np.mean(tradeGainDollars))
    #print(np.std(tradeGainDollars))
    #print(math.sqrt(numberTradeDays)*(np.mean(tradeGainDollars)/np.std(tradeGainDollars)))

    ####  end  ####
    ####  end and save Shadow trades  ####
    df_to_save = tradesDataFull[['valBeLong', 'gainAhead', 'Close']].copy()
    df_to_save.reset_index(level=df_to_save.index.names, inplace=True)
    df_to_save.columns = ['Date', 'signal', 'gainAhead', 'Close']
    #print(df_to_save)
    dSet.save_csv(system_directory, system_name, 'OOS_Equity', 'new',
                  df_to_save)

    dSet.save_csv(system_directory, system_name, 'OOS_Equity', 'dbd',
                  df_to_save)

#    print(df_to_save.tail(10))
#
#    print('********************************************************')
#    print('\n********************************************************')
#    print('\n********************************************************\n\n\n\n')