In my current backtesting, I am using log returns as a proxy for simple returns via the relationship $\ln(1 + r) \approx r$ for small enough r. This gives me wonderful properties like time additivity, so that calculating rolling returns is as simple as applying a cumulative sum of the historical log returns.
This works for stocks, where the value of the stock is the dollar value of the security. However this is not true for futures. Take corn for example: corn trades at $12.5 per point.
In my thinking then, the close-to-close log return would not accurately represent the profit and loss of a portfolio. Instead, I think that calculating the delta in point value between two close values and applying that to your starting capital is a better method. Here is an example:
Given two days of data (for corn):
- 764.3600814
- 754.7100857
The log return is simple -
$ln(754.7100857) - ln(764.3600814) = -0.012705306$
So we lost money. But we are in futures, so this return is misleading. On a starting capital of \$10,000 our account is now worth \$9872.94694.
But if we calculate the point delta ($-9.64999577$) we see our starting capital has been reduced to \$9879.375 calculated with ($10000 + (12.5 * -9.64999577))$.
The error between the two is significant in the sense that over the course of thousands of rows of data the error could accumulate to quite a large sum.
Which of these is the preferred method for calculating returns on futures? I feel like the point value is the most accurate, but it complicates backtesting in that you need to base all returns on "capital returns" rather than just mindlessly summing your log returns.