Hi there,
In optimizing parameters for any trading system, to my understanding, one always needs to optimize some (atomic) value. This could be e.g. NetPnL, Sharpe Ratio, Calmar Ratio, ... (you name it).
My question is the following:
In any optimization there is a danger of an excessive overfit. However, this danger should decrease with the number of trades (as the same number of parameters with more trades means they have less chance to pick outliers - in the extreme case, with 2 trades, picking high and low should be easy, but with a 1000 trades, picking spurious highs and lows is rather more difficult). Hence, given two identical results with different number of trades, I would expect the one with more trades two diverge less in a forward test than the one with less trades.
Now for the statisticians: Is there a way to put this into a formula? And if yes, how should I modify my objective function?
Say e.g. my original object function is PnL. Then obviously with two identical PnLs I will prefer the one with more trades. But should the adjusted objective function be PnL * Turnover, or PnL * sqrt(Turnover), or something else entirely?
Does any of this make sense?
Thanks
In optimizing parameters for any trading system, to my understanding, one always needs to optimize some (atomic) value. This could be e.g. NetPnL, Sharpe Ratio, Calmar Ratio, ... (you name it).
My question is the following:
In any optimization there is a danger of an excessive overfit. However, this danger should decrease with the number of trades (as the same number of parameters with more trades means they have less chance to pick outliers - in the extreme case, with 2 trades, picking high and low should be easy, but with a 1000 trades, picking spurious highs and lows is rather more difficult). Hence, given two identical results with different number of trades, I would expect the one with more trades two diverge less in a forward test than the one with less trades.
Now for the statisticians: Is there a way to put this into a formula? And if yes, how should I modify my objective function?
Say e.g. my original object function is PnL. Then obviously with two identical PnLs I will prefer the one with more trades. But should the adjusted objective function be PnL * Turnover, or PnL * sqrt(Turnover), or something else entirely?
Does any of this make sense?
Thanks