槓桿投資組合的模擬夏普比率計算
我編寫了一些 VBA 程式碼來模擬借錢、投資和每天償還貸款的效果。
虛擬碼:
- 從 P = 1 的投資組合值開始
- 每天借入 P,投資 2*P,並獲得雙倍投資組合的對數正態回報。然後償還(1+每日利息)*P。
- 全年每個交易日重複
- 重複 numT 試驗
- 計算試驗結果的超額收益的均值和變異數。使用它來計算夏普比率。
我預計夏普比率在以無風險利率借款時與無槓桿夏普比率相同,而在以較高(較低)利率借款時較低(較高)。但是,我沒有達到預期的夏普比率。我試過用算術或對數來計算回報,但都沒有讓我匹配。
實際程式碼:
Sub margintest() Dim x&, y&, numT& Dim m#, my#, v#, vy#, p#, rf#, sum#, SqSum# my = 0.08 vy = 0.5 rf = 0.03 m = my / 252 v = vy / 252 ^ 0.5 numT = 10000 Debug.Print "Expected Sharpe:" & (my - rf) / vy For y = 1 To numT p = 1 For x = 1 To 252 p = 2 * p * Exp(WorksheetFunction.Norm_Inv(Rnd(), m, v)) - p - p * rf / 252 Next x sum = sum + p - 1 - rf 'sum = sum + Log(p) - rf SqSum = SqSum + (p - 1 - rf) * (p - 1 - rf) 'SqSum = SqSum + (Log(p) - rf) * (Log(p) - rf) Next y mean = sum / numT Var = SqSum / numT - mean ^ 2 Sharpe = mean / Var ^ 0.5 Debug.Print "Mean:" & mean & ", Var:" & Var & ", Sharpe:" & Sharpe End Sub
結果:預期夏普比率 = (.08-.03)/.5=.1
模擬夏普比率(對數回報):-0.1461820、-0.1531049、-0.1427345 模擬夏普比率(算術回報):0.2332556、0.2367405、0.2286082
夏普比率應該如何計算,為什麼以無風險利率借款時與預期比率不匹配?
我還沒有完全了解您的投資過程的邏輯,但我認為您用來將價格從一個時間步傳播到下一個時間步的術語是有缺陷的:
Exp(WorksheetFunction.Norm_Inv(Rnd(), m, v))
此函式生成具有均值的高斯隨機數 $ \mu t $ 和標準差 $ \sqrt{\sigma/252} $ . 這裡缺少的是 $ \sigma $ 漂移中的成分:
$ S_{i+1}=S_{i} exp((\mu-0.5\sigma^{2})\delta t+\sqrt{\delta t}\sigma z) $
其中 z 是 (0,1) 正態隨機數。要解決此問題,您必須相應地調整 VBA 程式碼中“我的”的定義。
我也沒有看過你的vba。但是,槓桿投資組合銳化比率與非槓桿賬面相同的假設是不正確的,也是一個有缺陷的假設。
讓火焰開始。請在燃燒之前搜尋由 Robert M. Anderson、Stephen W. Bianchi、Lisa R. Goldberg撰寫的槓桿投資組合績效的決定因素。
但是它超出了您的程式碼來模擬導致這種情況的回饋循環的複雜性。