交易
回測日內交易策略,如何處理點差?
我目前正在開發一個基於規則和算法買賣股票的日間交易應用程序,它現在可能每天買賣 100 支股票。
我正在嘗試回測我的策略,但我不知道如何處理買賣價差。例如,如果我在回測中假設我可以以目前價格購買,我可能會得到一個有偏見的結果,因為以最新價格購買假設有人仍然願意以該價格出售,但情況可能並非如此。
這裡有什麼最佳實踐嗎?我的一個大問題是我無法訪問每個數據點的歷史訂單深度,所以我不知道要價和出價。以下是我考慮過的幾個選項(用於購買股票):
- 使用最新價格(在現實世界中,我可能無法以這個價格購買)
- 計算股票交易之間的平均變動,並將其添加到最新價格並使用它。
如果我可以訪問訂單深度:
- 使用目前出價(如果該出價的數量遠小於我的數量怎麼辦?)
- 使用要價和出價的平均值(應該給出一個好的值,假設下一個價格的一半時間是目前要價,一半時間是出價?)
如果不使用深度數據,最佳近似值將是波動性和流動性的函式。重量取決於您的尺寸。如果不走這麼遠,最簡單的方法是等待價格通過您的價格高於 x% 進行交易。這假設您的頭寸規模事先已針對該工具的流動性進行了調整。
我建議進行前向測試。
假設您的購買和銷售不會影響市場。這是一個錯誤,但卻是一個有意識的錯誤。只要你保持小,它就會保持小。
然後你可以做的是模擬實際執行策略。我不僅要小心隨機選擇日期或時間段來執行模擬,還要定義你想要代表的市場條件。牛市/熊市 - 中斷、季度、年度等。
如果您的方法和假設在前向測試中倖存下來,那是比回溯測試更有力的證明。無論進行多麼仔細的回測,您總是最終(以某種方式)在用於創建假設的相同數據上驗證您的假設——這是最常見和最危險的科學失誤(恕我直言)。