量化交易策略
為什麼信號的差異被稱為位置,它在回測中意味著什麼?
我正在嘗試學習回測 101。我發現這個範例非常簡單,但我不太了解其中的一些術語。我了解移動平均算法,它是衡量趨勢或平滑圖表。但它的程式碼,作者說
# Take the difference of the signals in order to generate actual trading orders
我不明白這是什麼意思?因為從程式碼來看,它將signals
介於兩者之間0
,1
為什麼它需要再次區分?這是 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 為零)。