優化

如何在給定歷史收盤價的情況下最大化夏普比率?

  • September 13, 2017

我有歷史調整收盤價 $ k $ 庫存超過 $ n $ 天。我有一個預算 $ B $ 美元,我想為每隻股票選擇分配, $ a_{1:k} $ ,這樣我就可以最大化這段時間的夏普比率。

更正式地說:

$$ \begin{align*} \text{given } & c_{i, j} \text{ for } i=1…n, ; j=1…k && \text{adjusted close of stock } j \text{ on day } i \ \text{and } & B && \text{total budget} \ \text{find } & a_{1:k} && \text{allocations for each stock} \ \text{that maximize } & s = \frac{\mu}{\sigma} && \text{Sharpe ratio} \ \text{where } & \mu = \frac{1}{n} \sum_{i=1}^n r_i && \text{sample mean of the daily returns} \ & \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^n (r_i - \mu)^2} && \text{sample standard deviation of the daily returns} \ & r_1 = 0 && \text{return on day one is zero} \ & r_i = \frac{p_i}{p_{i-1}} - 1 ;; \text{for } i=2…n && \text{percent change in portfolio value on day } i \ & p_i = a^{\top} c_i && \text{portfolio value on day } i \ \text{subject to } & a_j \geq 0 \text{ for } j = 1…k && \text{only non-negative allocations for each stock} \ & \sum_{j=1}^k a_j = B && \text{must use total budget} \end{align*} $$ 我嘗試解決此問題的一種方法是簡單地設置 $ a_{1:k} = B \times \texttt{softmax}(w_{1:k}) $ 或者 $ a_{1:k} = B \times \frac{\texttt{relu}(w_{1:k})}{\texttt{sum}(\texttt{relu}(w_{1:k}))} $ , 對於一些潛變數 $ w_{1:k} $ ,然後使用 TensorFlow 執行梯度上升。這在實踐中效果很好,但我想知道是否有更好的方法(即,保證收斂到全域最大值的方法)。

幾條評論:

  1. 您正在尋找在金融和投資組合理論中稱為切線投資組合的東西。
  2. 您對問題的表述不精確/有問題。
  • 用投資組合的權重、收益和收益的共變異數來表述這個問題,而不是用價格來表述這個問題要清楚得多。
  • 沿著這些構想,收益的共變異數矩陣在哪裡?投資組合權重的投資組合變異數 $ w_1, \ldots, w_m $ 可以寫成 $ \sum_{ij} \operatorname{Cov}(r_i, r_j) w_i w_j $ 或使用共變異數矩陣 $ \Sigma $ 和投資組合權重向量 $ \mathbf{w} $ 作為 $ \mathbf{w}’ \Sigma \mathbf{w} $ .
  • 回報是 $ \frac{P_t + D_t}{P_{t-1}} $ ,也就是說,您必須包括分佈。(使用為您計算回報的數據提供者。)
  1. 網際網路上有關於 Markowitz 投資組合理論基礎的優秀資源。
  2. 一旦解決了線性系統,就可以很容易地找到這個問題的最基本形式的解決方案 $ \Sigma \mathbf{x} = \boldsymbol{\mu} $ 為了 $ \mathbf{x} $ . 使用梯度下降來解決這個問題讓我覺得很奇怪。
  3. 在實踐中,一個大問題是您對預期收益的估計是垃圾,並且對共變異數的估計很差。垃圾進垃圾出。可能的解決方案?顯式貝氏方法或正則化等……參見 Cochrane (2007) 和他關於古怪權重的部分。

一種直覺的數值方法,沒有賣空限制

這些來自 Eric Zivot 的幻燈片給出了概述。

金融投資組合理論將有效前沿定義為顯示可以實現給定預期收益的最低標準差的曲線。

通過求解優化問題,可以在數值上找到沿有效邊界的點。找到一個非負的投資組合權重向量 $ \mathbf{w}\succeq \mathbf{0} $ 達到預期回報的 $ \mu_p $ 以最小變異數,解決:

$$ \begin{equation} \begin{array}{*2{>{\displaystyle}r}} \mbox{minimize (over $\mathbf{w}$)} & \mathbf{w}’\Sigma\mathbf{w} \ \mbox{subject to} & \mathbf{w}’\boldsymbol{\mu} = \mu_p \ & \mathbf{w}’\mathbf{1} = 1 \ & \mathbf{w} \succeq \mathbf{0} \end{array} \end{equation} $$ 那麼投資組合變異數為 $ \sigma^2_p = \mathbf{w}’ \Sigma \mathbf{w} $ . 對於合理數量的資產,這個二次規劃問題幾乎可以立即解決,以獲得全域解決方案。從最小變異數投資組合開始,你可以用不同的方法多次解決這個問題 $ \mu_p $ 值來追踪有效邊界,然後你可以找到相切投資組合。

參考:

Cochrane, John,“投資組合理論”,2007 年,“投資組合理論”

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