I created a simple buy and hold trade to test the robustness of the current backtesting system.
From 2017-05-30 to 2017-10-20 with $120,761.00 initial capital.
500 shares of SPY at $241.52 were bought at the market close on 2017-05-30. No more trades afterwards.
The position value on 2017-05-30 was 500*$241.52 = $120,760.00, with less than $1.00 cash value.
I supposed the cumulative performance should be very similar to benchmark SPY, since I have already eliminated most of the possible error terms. Thus, a discrepancy between the actual performance and benchmark is expected be to less than 0.05% which could be reasonable. However, there was a big jump with larger than 0.5% errors between these two from someday in June then disappeared in August, then happened again on someday in September----in the context that the SPY itself had only 0.0%-2.5% returns during this period, and the 0.5% error could be HUGE!
I believe that the benchmark SPY used the daily adjusted closing price eliminating the influences of dividends, and I assume such discrepancy is not due to the after-hours or pre-market price fluctuation.
Some other user had similar issues as follows, there is no official response though.
So...I would wonder where does this error come from. If it is due to some specific methods calculating the performance data, I would be happy to know the math behind it; it there is a bug, then the performance numbers for all the products or algorithm based on this backtesting system might be doubtful, in consequence the parameter optimization and so on would be further influenced and unreliable.
|Returns||1 Month||3 Month||6 Month||12 Month|
|Alpha||1 Month||3 Month||6 Month||12 Month|
|Beta||1 Month||3 Month||6 Month||12 Month|
|Sharpe||1 Month||3 Month||6 Month||12 Month|
|Sortino||1 Month||3 Month||6 Month||12 Month|
|Volatility||1 Month||3 Month||6 Month||12 Month|
|Max Drawdown||1 Month||3 Month||6 Month||12 Month|