Estoy tratando de aprender Backtesting 101. He encontrado este ejemplo que es muy simple pero no acabo de entender algunos de los términos. Entiendo Promedio móvil algoritmo que es para medir las tendencias o alisar el gráfico. Pero el código, el autor dijo # Take the difference of the signals in order to generate actual trading orders
que no estoy tranquilo entender lo que esto significa? Porque desde el código de la signals
va a ser entre 0
y 1
¿por qué necesita o se diff de nuevo?
Aquí está el código en Python Pandas
def generate_signals(self):
# Create DataFrame and initialise signal series to zero
signals = pd.DataFrame(index=self.bars.index)
signals['signal'] = 0
# Create the short/long simple moving averages
signals['short_mavg'] = pd.rolling_mean(bars['Adj Close'], self.short_window, min_periods=1)
signals['long_mavg'] = pd.rolling_mean(bars['Adj Close'], self.long_window, min_periods=1)
# When the short SMA exceeds the long SMA, set the ‘signals' Series to 1 (else 0)
signals['signal'][self.short_window:] = np.where(signals['short_mavg' [self.short_window:] > signals['long_mavg'][self.short_window:], 1, 0)
# Take the difference of the signals in order to generate actual trading orders
signals['positions'] = signals['signal'].diff()
return signals
Porque se ve que positions
va a ser utilizado en el backtesting.