量化交易策略

為什麼信號的差異被稱為位置,它在回測中意味著什麼?

  • January 26, 2016

我正在嘗試學習回測 101。我發現這個範例非常簡單,但我不太了解其中的一些術語。我了解移動平均算法,它是衡量趨勢或平滑圖表。但它的程式碼,作者說# Take the difference of the signals in order to generate actual trading orders我不明白這是什麼意思?因為從程式碼來看,它將signals介於兩者之間01為什麼它需要再次區分?

這是 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

因為這positions將用於實際的回測。

在這種情況下,我的理解是,該信號表明您想持有股份(信號為 1)或不持有股份(信號為零)。因此,獲取 diff 將告訴您是要買入(信號 0 到 1,diff 為 1)、賣出(信號 1 到 0,diff 為 -1)還是什麼都不做(信號保持在 0 或保持在 1,diff 為零)。

引用自:https://quant.stackexchange.com/questions/22924