Is there a way to exclude the best x trades from the RESULTS of an optimization.

Obioulsy I can run an opti find the best x trades and then exclude them from the dataset and then RERUN the optimization.

I realize that what I am asking is "weird" but if I have a strategy where a few trades are a substantial portion of the outperformance then those trades would skew my results.

EDIT: I guess I am also asking about whether this is possible in a simple backtest w/o optimization.

Thank you in advance for any helpful thoughts on this matter.

Obioulsy I can run an opti find the best x trades and then exclude them from the dataset and then RERUN the optimization.

I realize that what I am asking is "weird" but if I have a strategy where a few trades are a substantial portion of the outperformance then those trades would skew my results.

EDIT: I guess I am also asking about whether this is possible in a simple backtest w/o optimization.

Thank you in advance for any helpful thoughts on this matter.

Rename

With Tools >

*Filter Sets*, you can create various filter conditions based on performance metrics.
Thanks .. I'll take a look.

QUOTE:

I realize that what I am asking is "weird"

No, not at all.

It is well known that trading results (like profits of individual trades) do not follow the schoolbook "normal" distribution (i.e. a gaussian bell shaped curve) but instead have "too many" outliers at the far ends, i.e. there are "too many" very good and very bad trades.

This makes performance calculations based on the usual averages (like APR) ill defined and somewhat incorrect.

The idea to "exclude" these trades (or days in an equity curve) from performance calculations is therefore very correct and good.

But instead of "removing" these trades form the overall backtest results I'd suggest to calculate performance metrics in a way which virtually igores these extreme values.

The math behind this is called "robust statistics" (see https://en.wikipedia.org/wiki/Robust_statistics) an is unfortunately not tought in school.

It uses the

**Median**instead of the arithetic mean and

**Interquartile Range**instead of standard deviation and so forth.

With Formula ScoreCard (part of finantic.ScoreCards extension) it is possible to create performance metrics that way.

For example:

A robust version of "Sharpe Ratio" would be based on

* Median of daily returns divided by

* Interquartile Range of daily returns multiplied by

* Sqrt(252) to annualize the result.

If you use these metrics in your optimization you in fact exclude the extreme trades from the calculations.

Eugene Cone Glitch.... get on IT!!

:)

:)

If you’d like to see some new ScoreCard metrics you can submit a #FeatureRequest. We’re currently focused on wrapping up the TradeStation extension which is the number one most requested item.

I don't know the first thing about it...

I think the gentleman above does/might. @drkoch

I do know that optimizations where one trade makes or breaks the backtest are "dodgy' and should be avoided. EDIT: Obviosuly strategies like this may not be optimal either; however it is what every guy that has made a lot of money in markets (xcept the famous quant guys) has done. A couple of trades are actually the entire "track record"

Thank you for your attention.

I think the gentleman above does/might. @drkoch

I do know that optimizations where one trade makes or breaks the backtest are "dodgy' and should be avoided. EDIT: Obviosuly strategies like this may not be optimal either; however it is what every guy that has made a lot of money in markets (xcept the famous quant guys) has done. A couple of trades are actually the entire "track record"

Thank you for your attention.

Regarding the Robust Sharpe Ratio formula, mentioned above in Post #3:

Is this correct?

Thank you in advance!

QUOTE:

For example:

A robust version of "Sharpe Ratio" would be based on

* Median of daily returns divided by

* Interquartile Range of daily returns multiplied by

* Sqrt(252) to annualize the result.

Is this correct?

CODE:

Statistics.Median(DailyReturns)/InterQuartileRangeReturns*Sqrt(252)

Thank you in advance!

Your Response
Post

Edit Post

Login is required