模擬

沒有訂單簿數據的滑點建模

  • August 15, 2020

我正在建構一個投資組合模擬器,並尋找使其更“現實”的方法。例如,提供股息再投資的選項,包括資本利得稅、佣金/費用(目前固定)等。但是,關於滑點/延遲,我想製作一個更具動態性的模型。你有過建模滑點的經驗嗎?例如,作為交易量和波動率的函式(已經嵌入 OHLCV 數據中)而不是使用訂單簿進行點差?

謝謝你的指導:)

我將假設通過分析“滑點”意味著交易成本。

分析延遲

首先,我要說分析延遲問題非常困難。您可能甚至不知道您的策略將位於何處:託管?不是科羅拉多但在附近?您也不知道您的算法對信號的響應速度有多快:毫秒?微商?納米?例如,在共享伺服器上託管交易技術軟體的 CME 有時可以實現 100-300 微秒範圍內的響應時間。我知道人們創建的其他軟體可以在毫秒範圍內響應。

除了(也許)比較不同的軟體或代理之外,我不會深入分析延遲。

估計買賣價差

分析滑點似乎沒有希望,但事實並非如此。有一些關於從每日收盤或 OHLCV 數據估計買賣價差的優秀論文。

卷 (1984)

首先,您可以使用Roll (1984)關於買賣價差的工作,並將價差估計為 $ \sqrt{-\textrm{cov}(r_t,r_{t-1})} $ .

張、Mykland 和 Aït-Sahalia (2005)

您還可以查看Zhang、Mykland 和 Aït-Sahalia 的 (2005) TSRV 工作,該工作估計了變異數,但必須糾正由買賣反彈引起的“微觀結構雜訊污染”。他們有一個減法校正:他們調整後的“快速規模”估計器 $ \frac{\bar{n}_k}{n-\bar{n}k}\sum{i=1}^n r_i^2 $ . 您可以將其用作類似於 $ 2c^2 $ 在 Roll 的模型中。

科溫和舒爾茨 (2012)

另一種方法是使用Corwin 和 Schultz (2012) 的方法從 OHLCV 數據中估計波動率和買賣價差。他們的方法涉及更多,但背後有一些經濟推理:他們假設高價可能在要約時執行,而低價可能在要約時執行。

然後他們會觀察一天和兩天的高點和低點。他們估計了從低到高的每日平均每日“對數回報”平方( $ \log(H_t/L_t) $ ) 以及從兩天低點到高點的兩天“對數回報”的平方。 $$ \begin{align} \hat\beta &= \frac{1}{n/2}\sum_{j=1}^{n/2}\sum_{i=2j-1}^{2j} [\log(H_i/L_i)]^2, \ \hat\gamma &= \frac{1}{n/2}\sum_{j=1}^{n/2} \left[\log\left(\frac{\max(H_{2j-1},H_{2j})}{\min(L_{2j-1},L_{2j})}\right)\right]^2. \end{align} $$ 這讓他們可以求解方程組,因為變異數隨時間線性變化,而買賣價差被假定在兩天內保持不變: $$ \begin{align} \beta &= 2k_1\sigma^2 +4k_2 \sigma \alpha + 2\alpha^2, \quad \text{and}\ \gamma &= 2k_1\sigma^2 +2\sqrt{2}k_2 \sigma \alpha + \alpha^2 \quad \text{where} \ \alpha &= \log\left(\frac{2+S}{2-S}\right), \quad S = \text{spread}, \ k_1 &= 4\log(2), ~\text{and} \quad k_2 = \sqrt{\frac{8}{\pi}}. \end{align} $$

阿卜迪和拉納爾多 (2017)

最後,您可以嘗試Abdi 和 Ranaldo (2017) 的方法。像 Corwin 和 Schultz 一樣,他們假設高點在出價,低點在出價。然而,他們也使用收盤價,並假設低點、高點和收盤價都有一些有效的價格 $ l_t^e, h_t^e, c_t^e $ . 然後他們假設有效低點和高點的平均值 $ (l_t^e+h_+t^e)/2 $ 是對有效收盤價的公平估計(儘管有一些有效價格過程的噪音)。此外,他們指出觀察到的高價和低價可能是平均的,因為半價差的正負抵消了。因此 $$ \eta_t = \frac{l_t^e + h_t^e}{2} = \frac{l_t + h_t}{2}. $$

他們接下來注意到 $ E(\frac{\eta_t + \eta_{t+1}}{2}) = E(c_t^e) $ . 因此,變異數 $ \eta $ 變化估計有效價格變異數 $ \sigma_e^2 $ 和變異數 $ c_t $ 相對於平均值 $ \eta $ 取決於兩者 $ \sigma_e^2 $ 和傳播 $ S $ . 這給出了一個容易求解的方程組(因為它已經是三角形的): $$ \begin{align} E[(\eta_{t+1}-\eta_t)^2] &= \left(2-\frac{k_1}{2}\right)\sigma_e^2, \quad \text{and} \ E\left[\left(c_t-\frac{\eta_t+\eta_{t+1}}{2}\right)^2\right] &= \frac{S^2}{4} + \left(\frac{1}{2} + \frac{k_1}{8}\right) \sigma_e^2 \end{align} $$ 在哪裡 $ k_1=4\log(2) $ ,就像在 Corwin 和 Schultz 的方法中一樣。

分析滑點

一旦您估算出買賣價差和波動率,您就可以輕鬆地嘗試將您的交易或回報擬合到各種價格影響模型。雖然我可以寫很多關於這些的文章,但我只是自我剽竊並在這裡提出答案,以指導您使用您的價差和波動率估計。

OHLCV 數據不足以估計滑點,因為它取決於執行和日內價格行為。

如何模擬滑點

不過,根據您的訂單大小和交易頻率,您可以對整體影響做出一些假設。例如,如果您不經常交易,沒有龐大的投資組合,並且交易流動性股票,請不要擔心。

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