Backtesting S&P 500 futures (ES) long-only 1 day hold strategy

I am going to backtest the following strategy from @Dburgh in python:

First we import the basic packages: pandas and numpy for time series manipulation and quandl for retrieving data:

import numpy as np
import pandas as pd
import quandl

Then we need to obtain daily data for ES futures from Quandl:

sp500_daily = quandl.get("CHRIS/CME_ES1", 
                         start_date="2000-1-1", 
                         end_date="2016-10-1")
sp500_daily.columns=['Open', 'High', 'Low', 'Close', 
                     'Change', 'Settle', 'Volume', 
                     'Open Interest']

Since the algorithm logic is pretty simple, we can backtest using a vectored approach instead of an event driven loop:

multiplier=50

# close[0] <= close[9] && 
# low[0] <= low[1] && 
# low[3] <= high[6] && 
# volume[0] <= volume[1]
signal = ((sp500_daily.Close <= sp500_daily.shift(9).Close) & 
          (sp500_daily.Low <= sp500_daily.shift(1).Low) & 
          (sp500_daily.shift(3).Low <= sp500_daily.shift(6).High) & 
          (sp500_daily.Volume <= sp500_daily.shift(1).Volume))
# hold time 1 day        
profits=(signal*multiplier*(sp500_daily.shift(-1).Close-sp500_daily.Close))
returns=(signal*(-1+sp500_daily.shift(-1).Close/sp500_daily.Close))

Now we can plot the cumulative returns:

profits.cumsum().plot()

And this is what we get:

Want to know the hitrate of this strategy? Around 60%

len(profits[profits>0])/signal.sum()

Sharpe ratio? Near 1

np.sqrt(252) * (np.mean(returns)) / np.std(returns)